[FIX] doc

This commit is contained in:
Flectra 2018-02-11 23:55:56 -08:00
parent 75b675cb95
commit dafaed76d5
158 changed files with 1373 additions and 1345 deletions

View File

@ -42,13 +42,13 @@ help:
clean: clean:
-rm -rf $(BUILDDIR)/* -rm -rf $(BUILDDIR)/*
STATICS = _extensions/odoo_ext/static STATICS = _extensions/flectra_ext/static
# TODO: add bootstrap files # TODO: add bootstrap files
LESSFILES = $(wildcard $(STATICS)/*.less) LESSFILES = $(wildcard $(STATICS)/*.less)
$(STATICS)/style.css: $(LESSFILES) $(STATICS)/style.css: $(LESSFILES)
$(LESSC) $(STATICS)/style.less $(STATICS)/style.css $(LESSC) $(STATICS)/style.less $(STATICS)/style.css
html: _extensions/odoo_ext/static/style.css html: _extensions/flectra_ext/static/style.css
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo @echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html." @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."

View File

@ -1,7 +1,7 @@
:orphan: :orphan:
====================================== ======================================
JSDoc parser/Sphinx extension for Odoo JSDoc parser/Sphinx extension for Flectra
====================================== ======================================
Why? Why?
@ -28,7 +28,7 @@ What?
If it were possible to generate JSDoc annotations from our relatively If it were possible to generate JSDoc annotations from our relatively
well-defined code structures, it was obviously possible to extract documentary well-defined code structures, it was obviously possible to extract documentary
information directly from it, hence this Odoo-specific package/extension information directly from it, hence this Flectra-specific package/extension
trying to do exactly that. trying to do exactly that.
This package should eventually provide: This package should eventually provide:

View File

@ -13,9 +13,9 @@ DECLARATOR_INIT_TO_REF = ('Literal', 'Identifier', 'MemberExpression')
class ModuleMatcher(Visitor): class ModuleMatcher(Visitor):
"""Looks for structures of the form:: """Looks for structures of the form::
odoo.define($string, function ($name) { flectra.define($string, function ($name) {
These are *Odoo module definitions*, upon encountering one the These are *Flectra module definitions*, upon encountering one the
matcher: matcher:
* creates a module entry, optionally associated with the module comment * creates a module entry, optionally associated with the module comment
@ -32,7 +32,7 @@ class ModuleMatcher(Visitor):
# we're interested in expression statements (toplevel call) # we're interested in expression statements (toplevel call)
if utils.match(node, {'expression': { if utils.match(node, {'expression': {
'callee': { 'callee': {
'object': {'name': 'odoo'}, 'object': {'name': 'flectra'},
'property': {'name': 'define'}, 'property': {'name': 'define'},
}, },
}}): }}):
@ -191,9 +191,9 @@ BASE_SCOPE = BaseScope(None, {
})), })),
] ]
}), }),
'odoo': jsdoc.UnknownNS({ 'flectra': jsdoc.UnknownNS({
'name': u'odoo', 'name': u'flectra',
'doc': u"Odoo", 'doc': u"Flectra",
'_members': [ '_members': [
('name', jsdoc.PropertyDoc({'name': u'csrf_token', 'type': u'{String}'})), ('name', jsdoc.PropertyDoc({'name': u'csrf_token', 'type': u'{String}'})),
] ]

View File

@ -1,6 +1,6 @@
:orphan: :orphan:
These files should be run via pytest_, simply install pytest and from the top These files should be run via pytest_, simply install pytest and from the top
of the Odoo project run ``pytest doc/_extensions``. of the Flectra project run ``pytest doc/_extensions``.
.. _pytest: https://pytest.org/ .. _pytest: https://pytest.org/

View File

@ -6,7 +6,7 @@ from support import params, parse
def test_classvar(): def test_classvar():
[mod] = parse(""" [mod] = parse("""
odoo.define('a.A', function(require) { flectra.define('a.A', function(require) {
var Class = require('Class'); var Class = require('Class');
/** /**
* This is my class-kai * This is my class-kai
@ -28,7 +28,7 @@ def test_classvar():
def test_classret(): def test_classret():
[mod] = parse(""" [mod] = parse("""
odoo.define('a.A', function(require) { flectra.define('a.A', function(require) {
var Class = require('Class'); var Class = require('Class');
/** /**
* This is my class-kai * This is my class-kai
@ -46,7 +46,7 @@ def test_classret():
def test_methods(): def test_methods():
[mod] = parse(""" [mod] = parse("""
odoo.define('a.A', function(require) { flectra.define('a.A', function(require) {
var Class = require('Class'); var Class = require('Class');
return Class.extend({ return Class.extend({
/** /**
@ -92,7 +92,7 @@ def test_methods():
def test_mixin_explicit(): def test_mixin_explicit():
[mod] = parse(""" [mod] = parse("""
odoo.define('a.A', function (require) { flectra.define('a.A', function (require) {
var Class = require('Class'); var Class = require('Class');
var mixins = require('mixins'); var mixins = require('mixins');
/** /**
@ -108,7 +108,7 @@ def test_mixin_explicit():
def test_mixin_implicit(): def test_mixin_implicit():
[mod] = parse(""" [mod] = parse("""
odoo.define('a.A', function(require) { flectra.define('a.A', function(require) {
var Class = require('Class'); var Class = require('Class');
var Mixin = require('Mixin'); var Mixin = require('Mixin');
/** /**
@ -127,7 +127,7 @@ def test_mixin_implicit():
def test_instanciation(): def test_instanciation():
[A, a] = parse(""" [A, a] = parse("""
odoo.define('A', function (r) { flectra.define('A', function (r) {
var Class = r('Class'); var Class = r('Class');
/** /**
* @class A * @class A
@ -136,7 +136,7 @@ def test_instanciation():
foo: function () {} foo: function () {}
}); });
}); });
odoo.define('a', function (r) { flectra.define('a', function (r) {
var A = r('A'); var A = r('A');
var a = new A; var a = new A;
return a; return a;
@ -147,7 +147,7 @@ def test_instanciation():
def test_non_function_properties(): def test_non_function_properties():
[A] = parse(""" [A] = parse("""
odoo.define('A', function (r) { flectra.define('A', function (r) {
var Class = r('Class'); var Class = r('Class');
return Class.extend({ return Class.extend({
template: 'thing', template: 'thing',
@ -163,7 +163,7 @@ def test_non_function_properties():
def test_non_extend_classes(): def test_non_extend_classes():
[mod] = parse(""" [mod] = parse("""
odoo.define('A', function () { flectra.define('A', function () {
/** /**
* @class * @class
*/ */
@ -175,11 +175,11 @@ def test_non_extend_classes():
def test_extend(): def test_extend():
[a, _] = parse(""" [a, _] = parse("""
odoo.define('A', function (require) { flectra.define('A', function (require) {
var Class = require('Class'); var Class = require('Class');
return Class.extend({}); return Class.extend({});
}); });
odoo.define('B', function (require) { flectra.define('B', function (require) {
var A = require('A'); var A = require('A');
A.include({ A.include({
/** A property */ /** A property */
@ -203,7 +203,7 @@ def test_extend():
@pytest.mark.skip(reason="Need to implement member/var-parsing?") @pytest.mark.skip(reason="Need to implement member/var-parsing?")
def test_members(): def test_members():
[mod] = parse(""" [mod] = parse("""
odoo.define('A', function (r) { flectra.define('A', function (r) {
var Class = r('Class'); var Class = r('Class');
return Class.extend({ return Class.extend({
init: function () { init: function () {

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """
Test various crap patterns found in Odoo code to ensure they don't blow up Test various crap patterns found in Flectra code to ensure they don't blow up
the parser thingie the parser thingie
""" """
from autojsdoc.parser import jsdoc from autojsdoc.parser import jsdoc
@ -8,7 +8,7 @@ from support import parse
def test_export_external(): def test_export_external():
[mod] = parse(""" [mod] = parse("""
odoo.define('module', function () { flectra.define('module', function () {
return $.Deferred().reject(); return $.Deferred().reject();
}); });
""") """)
@ -17,7 +17,7 @@ def test_export_external():
def test_extend_jq(): def test_extend_jq():
parse(""" parse("""
odoo.define('a', function (r) { flectra.define('a', function (r) {
$.extend($.expr[':'], { a: function () {} }); $.extend($.expr[':'], { a: function () {} });
$.fn.extend({ a: function () {} }); $.fn.extend({ a: function () {} });
}); });
@ -25,14 +25,14 @@ def test_extend_jq():
def test_extend_dynamic(): def test_extend_dynamic():
parse(""" parse("""
odoo.define('a', function () { flectra.define('a', function () {
foo.bar.baz[qux + '_external'] = function () {}; foo.bar.baz[qux + '_external'] = function () {};
}); });
""") """)
def test_extend_deep(): def test_extend_deep():
parse(""" parse("""
odoo.define('a', function () { flectra.define('a', function () {
var eventHandler = $.summernote.eventHandler; var eventHandler = $.summernote.eventHandler;
var dom = $.summernote.core.dom; var dom = $.summernote.core.dom;
dom.thing = function () {}; dom.thing = function () {};
@ -44,7 +44,7 @@ def test_extend_deep():
def test_arbitrary(): def test_arbitrary():
parse(""" parse("""
odoo.define('bob', function () { flectra.define('bob', function () {
var page = window.location.href.replace(/^.*\/\/[^\/]+/, ''); var page = window.location.href.replace(/^.*\/\/[^\/]+/, '');
var mailWidgets = ['mail_followers', 'mail_thread', 'mail_activity', 'kanban_activity']; var mailWidgets = ['mail_followers', 'mail_thread', 'mail_activity', 'kanban_activity'];
var bob; var bob;
@ -54,7 +54,7 @@ def test_arbitrary():
def test_prototype(): def test_prototype():
[A, B] = parse(""" [A, B] = parse("""
odoo.define('mod1', function () { flectra.define('mod1', function () {
var exports = {}; var exports = {};
exports.Foo = Backbone.Model.extend({}); exports.Foo = Backbone.Model.extend({});
exports.Bar = Backbone.Model.extend({}); exports.Bar = Backbone.Model.extend({});
@ -64,7 +64,7 @@ def test_prototype():
exports.Baz = Backbone.Model.extend({}); exports.Baz = Backbone.Model.extend({});
return exports; return exports;
}); });
odoo.define('mod2', function (require) { flectra.define('mod2', function (require) {
var models = require('mod1'); var models = require('mod1');
var _super_orderline = models.Bar.prototype; var _super_orderline = models.Bar.prototype;
models.Foo = models.Bar.extend({}); models.Foo = models.Bar.extend({});

View File

@ -9,7 +9,7 @@ def test_single():
/** /**
* This is a super module! * This is a super module!
*/ */
odoo.define('supermodule', function (req) { flectra.define('supermodule', function (req) {
var other = req('other'); var other = req('other');
}); });
""") """)
@ -22,13 +22,13 @@ def test_single():
def test_multiple(): def test_multiple():
[mod1, mod2, mod3] = parse(""" [mod1, mod2, mod3] = parse("""
odoo.define('module1', function (req) { flectra.define('module1', function (req) {
return 1; return 1;
}); });
odoo.define('module2', function (req) { flectra.define('module2', function (req) {
return req('dep2'); return req('dep2');
}); });
odoo.define('module3', function (req) { flectra.define('module3', function (req) {
var r = req('dep3'); var r = req('dep3');
return r; return r;
}); });
@ -54,7 +54,7 @@ def test_multiple():
def test_func(): def test_func():
[mod] = parse(""" [mod] = parse("""
odoo.define('module', function (d) { flectra.define('module', function (d) {
/** /**
* @param {Foo} bar this is a bar * @param {Foo} bar this is a bar
* @param {Baz} qux this is a qux * @param {Baz} qux this is a qux
@ -78,7 +78,7 @@ def test_func():
def test_hoist(): def test_hoist():
[mod] = parse(""" [mod] = parse("""
odoo.define('module', function() { flectra.define('module', function() {
return foo; return foo;
/** /**
* @param a_thing * @param a_thing
@ -95,7 +95,7 @@ def test_hoist():
def test_export_instance(): def test_export_instance():
[mod] = parse(""" [mod] = parse("""
odoo.define('module', function (require) { flectra.define('module', function (require) {
var Class = require('Class'); var Class = require('Class');
/** /**
* Provides an instance of Class * Provides an instance of Class
@ -109,13 +109,13 @@ def test_export_instance():
def test_bounce(): def test_bounce():
[m2, m1] = parse(""" [m2, m1] = parse("""
odoo.define('m2', function (require) { flectra.define('m2', function (require) {
var Item = require('m1'); var Item = require('m1');
return { return {
Item: Item Item: Item
}; };
}); });
odoo.define('m1', function (require) { flectra.define('m1', function (require) {
var Class = require('Class'); var Class = require('Class');
var Item = Class.extend({}); var Item = Class.extend({});
return Item; return Item;
@ -129,7 +129,7 @@ def test_bounce():
def test_reassign(): def test_reassign():
[m] = parse(""" [m] = parse("""
odoo.define('m', function (require) { flectra.define('m', function (require) {
var Class = require('Class'); var Class = require('Class');
/** local class */ /** local class */
var Class = Class.extend({}); var Class = Class.extend({});
@ -142,12 +142,12 @@ def test_reassign():
def test_attr(): def test_attr():
[m1, m2] = parse(""" [m1, m2] = parse("""
odoo.define('m1', function (require) { flectra.define('m1', function (require) {
var Class = require('Class'); var Class = require('Class');
var Item = Class.extend({}); var Item = Class.extend({});
return {Item: Item}; return {Item: Item};
}); });
odoo.define('m2', function (require) { flectra.define('m2', function (require) {
var Item = require('m1').Item; var Item = require('m1').Item;
Item.include({}); Item.include({});
return Item.extend({}); return Item.extend({});
@ -159,14 +159,14 @@ def test_attr():
def test_nothing_implicit(): def test_nothing_implicit():
[m] = parse(""" [m] = parse("""
odoo.define('m', function () { flectra.define('m', function () {
}); });
""") """)
assert m.exports is None assert m.exports is None
def test_nothing_explicit(): def test_nothing_explicit():
[m] = parse(""" [m] = parse("""
odoo.define('m', function () { flectra.define('m', function () {
return; return;
}); });
""") """)

View File

@ -5,7 +5,7 @@ from support import parse, params
def test_empty(): def test_empty():
[mod] = parse(""" [mod] = parse("""
odoo.define('a.ns', function (r) { flectra.define('a.ns', function (r) {
return {}; return {};
}); });
""") """)
@ -14,7 +14,7 @@ def test_empty():
def test_inline(): def test_inline():
[mod] = parse(""" [mod] = parse("""
odoo.define('a.ns', function (r) { flectra.define('a.ns', function (r) {
return { return {
/** /**
* a thing * a thing
@ -31,7 +31,7 @@ def test_inline():
def test_header(): def test_header():
[mod] = parse(""" [mod] = parse("""
odoo.define('a.ns', function (r) { flectra.define('a.ns', function (r) {
/** /**
* @property {Boolean} a a thing * @property {Boolean} a a thing
*/ */
@ -45,7 +45,7 @@ def test_header():
def test_header_conflict(): def test_header_conflict():
""" should the header or the inline comment take precedence? """ """ should the header or the inline comment take precedence? """
[mod] = parse(""" [mod] = parse("""
odoo.define('a.ns', function (r) { flectra.define('a.ns', function (r) {
/** /**
* @property {Boolean} a a thing * @property {Boolean} a a thing
*/ */
@ -61,7 +61,7 @@ def test_header_conflict():
def test_mixin(): def test_mixin():
[mod] = parse(""" [mod] = parse("""
odoo.define('a.mixin', function (r) { flectra.define('a.mixin', function (r) {
/** /**
* @mixin * @mixin
*/ */
@ -81,7 +81,7 @@ def test_mixin():
def test_literal(): def test_literal():
[mod] = parse(""" [mod] = parse("""
odoo.define('a.ns', function (r) { flectra.define('a.ns', function (r) {
/** whop whop */ /** whop whop */
return { return {
'a': 1, 'a': 1,
@ -97,7 +97,7 @@ def test_literal():
def test_fill_ns(): def test_fill_ns():
[mod] = parse(""" [mod] = parse("""
odoo.define('a.ns', function (r) { flectra.define('a.ns', function (r) {
var Class = r('Class'); var Class = r('Class');
var ns = {}; var ns = {};
/** ok */ /** ok */
@ -120,14 +120,14 @@ def test_fill_ns():
def test_extend_other(): def test_extend_other():
[o, b] = parse(""" [o, b] = parse("""
odoo.define('a.ns', function () { flectra.define('a.ns', function () {
/** @name outer */ /** @name outer */
return { return {
/** @name inner */ /** @name inner */
a: {} a: {}
}; };
}); });
odoo.define('b', function (r) { flectra.define('b', function (r) {
var o = r('a.ns'); var o = r('a.ns');
var Class = r('Class'); var Class = r('Class');
/** Class 1 */ /** Class 1 */
@ -151,7 +151,7 @@ def test_extend_other():
def test_ns_variables(): def test_ns_variables():
[mod] = parse(""" [mod] = parse("""
odoo.define('A', function (r) { flectra.define('A', function (r) {
var Class = r('Class'); var Class = r('Class');
var Thing = Class.extend({}); var Thing = Class.extend({});
return { return {
@ -166,7 +166,7 @@ def test_diff():
""" Have the NS key and the underlying object differ """ Have the NS key and the underlying object differ
""" """
[mod] = parse(""" [mod] = parse("""
odoo.define('mod', function (r) { flectra.define('mod', function (r) {
var Class = r('Class'); var Class = r('Class');
var Foo = Class.extend({}); var Foo = Class.extend({});
return { Class: Foo }; return { Class: Foo };

View File

@ -18,18 +18,18 @@ def setup(app):
else: else:
if getattr(app.config, 'html_translator_class', None): if getattr(app.config, 'html_translator_class', None):
app.warn("Overriding the explicitly set html_translator_class setting", app.warn("Overriding the explicitly set html_translator_class setting",
location="odoo extension") location="flectra extension")
app.config.html_translator_class = 'odoo_ext.translator.BootstrapTranslator' app.config.html_translator_class = 'flectra_ext.translator.BootstrapTranslator'
switcher.setup(app) switcher.setup(app)
app.add_config_value('odoo_cover_default', None, 'env') app.add_config_value('flectra_cover_default', None, 'env')
app.add_config_value('odoo_cover_external', {}, 'env') app.add_config_value('flectra_cover_external', {}, 'env')
app.add_config_value('odoo_cover_default_external', lambda conf: conf.odoo_cover_default, 'env') app.add_config_value('flectra_cover_default_external', lambda conf: conf.flectra_cover_default, 'env')
app.connect('html-page-context', update_meta) app.connect('html-page-context', update_meta)
def update_meta(app, pagename, templatename, context, doctree): def update_meta(app, pagename, templatename, context, doctree):
meta = context.setdefault('meta', {}) meta = context.setdefault('meta', {})
meta.setdefault('banner', app.config.odoo_cover_default) meta.setdefault('banner', app.config.flectra_cover_default)
def navbarify(node, navbar=None): def navbarify(node, navbar=None):
""" """

View File

@ -54,7 +54,7 @@
<span class="mdi-navigation-menu"></span> <span class="mdi-navigation-menu"></span>
</a> </a>
<div class="o_header_buttons"> <div class="o_header_buttons">
<a href="http://www.odoo.com/trial" class="btn btn-primary">Start Now</a> <a href="http://www.flectra.com/trial" class="btn btn-primary">Start Now</a>
</div> </div>
<ul class="o_primary_nav"> <ul class="o_primary_nav">
<li class="dropdown"> <li class="dropdown">
@ -68,12 +68,12 @@
<div>Build great user experience</div> <div>Build great user experience</div>
</div> </div>
<ul> <ul>
<li><a href="https://www.odoo.com/page/website-builder">Website Builder</a></li> <li><a href="https://www.flectra.com/page/website-builder">Website Builder</a></li>
<li><a href="https://www.odoo.com/page/e-commerce">eCommerce</a></li> <li><a href="https://www.flectra.com/page/e-commerce">eCommerce</a></li>
<li><a href="https://www.odoo.com/page/blog-engine">Blogs</a></li> <li><a href="https://www.flectra.com/page/blog-engine">Blogs</a></li>
<li><a href="https://www.odoo.com/page/community-builder">Forums</a></li> <li><a href="https://www.flectra.com/page/community-builder">Forums</a></li>
<li><a href="https://www.odoo.com/page/slides">Slides</a></li> <li><a href="https://www.flectra.com/page/slides">Slides</a></li>
<li><a href="https://adspike.odoo.com">SEA</a></li> <li><a href="https://adspike.flectra.com">SEA</a></li>
</ul> </ul>
</div> </div>
<div class="col-sm-3 o_sale_apps"> <div class="col-sm-3 o_sale_apps">
@ -82,18 +82,18 @@
<div>Boost your success rate</div> <div>Boost your success rate</div>
</div> </div>
<ul> <ul>
<li><a href="https://www.odoo.com/page/sales">Sales</a></li> <li><a href="https://www.flectra.com/page/sales">Sales</a></li>
<li><a href="https://www.odoo.com/page/crm">CRM</a></li> <li><a href="https://www.flectra.com/page/crm">CRM</a></li>
<li><a href="https://www.odoo.com/page/billing">Invoicing</a></li> <li><a href="https://www.flectra.com/page/billing">Invoicing</a></li>
<li class="dropdown"> <li class="dropdown">
<a href="#0" class="dropdown-toggle">Point of Sale</a> <a href="#0" class="dropdown-toggle">Point of Sale</a>
<ul> <ul>
<li><a href="https://www.odoo.com/page/point-of-sale">Shops</a></li> <li><a href="https://www.flectra.com/page/point-of-sale">Shops</a></li>
<li><a href="https://www.odoo.com/page/pos-restaurant">Restaurants</a></li> <li><a href="https://www.flectra.com/page/pos-restaurant">Restaurants</a></li>
</ul> </ul>
</li> </li>
<li><a href="https://www.odoo.com/page/subscriptions">Subscriptions</a></li> <li><a href="https://www.flectra.com/page/subscriptions">Subscriptions</a></li>
<li><a href="https://www.odoo.com/page/sign">Sign</a></li> <li><a href="https://www.flectra.com/page/sign">Sign</a></li>
</ul> </ul>
</div> </div>
<div class="col-sm-3 o_operation_apps"> <div class="col-sm-3 o_operation_apps">
@ -102,28 +102,28 @@
<div>It's all about efficiency</div> <div>It's all about efficiency</div>
</div> </div>
<ul> <ul>
<li><a href="https://www.odoo.com/page/accounting/">Accounting</a></li> <li><a href="https://www.flectra.com/page/accounting/">Accounting</a></li>
<li><a href="https://www.odoo.com/page/project-management/">Project</a></li> <li><a href="https://www.flectra.com/page/project-management/">Project</a></li>
<li class="dropdown"> <li class="dropdown">
<a href="#0" class="dropdown-toggle">Human Resources</a> <a href="#0" class="dropdown-toggle">Human Resources</a>
<ul> <ul>
<li><a href="https://www.odoo.com/page/recruitment">Recruitment</a></li> <li><a href="https://www.flectra.com/page/recruitment">Recruitment</a></li>
<li><a href="https://www.odoo.com/page/employees">Employees</a></li> <li><a href="https://www.flectra.com/page/employees">Employees</a></li>
<li><a href="https://www.odoo.com/page/expenses">Expenses</a></li> <li><a href="https://www.flectra.com/page/expenses">Expenses</a></li>
<li><a href="https://www.odoo.com/page/appraisal">Appraisal</a></li> <li><a href="https://www.flectra.com/page/appraisal">Appraisal</a></li>
<li><a href="https://www.odoo.com/page/fleet">Fleet</a></li> <li><a href="https://www.flectra.com/page/fleet">Fleet</a></li>
<li><a href="https://www.odoo.com/page/leaves">Leaves</a></li> <li><a href="https://www.flectra.com/page/leaves">Leaves</a></li>
</ul> </ul>
</li> </li>
<li><a href="https://www.odoo.com/page/warehouse">Inventory</a></li> <li><a href="https://www.flectra.com/page/warehouse">Inventory</a></li>
<li><a href="https://www.odoo.com/page/purchase">Purchase</a></li> <li><a href="https://www.flectra.com/page/purchase">Purchase</a></li>
<li class="dropdown"> <li class="dropdown">
<a href="#0" class="dropdown-toggle">Manufacturing</a> <a href="#0" class="dropdown-toggle">Manufacturing</a>
<ul> <ul>
<li><a href="https://www.odoo.com/page/manufacturing">MRP</a></li> <li><a href="https://www.flectra.com/page/manufacturing">MRP</a></li>
<li><a href="https://www.odoo.com/page/plm">PLM</a></li> <li><a href="https://www.flectra.com/page/plm">PLM</a></li>
<li><a href="https://www.odoo.com/page/maintenance">Maintenance</a></li> <li><a href="https://www.flectra.com/page/maintenance">Maintenance</a></li>
<li><a href="https://www.odoo.com/page/quality">Quality</a></li> <li><a href="https://www.flectra.com/page/quality">Quality</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -137,28 +137,28 @@
<li class="dropdown"> <li class="dropdown">
<a href="#0" class="dropdown-toggle">Communication</a> <a href="#0" class="dropdown-toggle">Communication</a>
<ul> <ul>
<li><a href="https://www.odoo.com/page/discuss">Discuss</a></li> <li><a href="https://www.flectra.com/page/discuss">Discuss</a></li>
<li><a href="https://www.odoo.com/page/discuss-groups">Mailing Lists</a></li> <li><a href="https://www.flectra.com/page/discuss-groups">Mailing Lists</a></li>
<li><a href="https://www.odoo.com/page/notes">Notes</a></li> <li><a href="https://www.flectra.com/page/notes">Notes</a></li>
<li><a href="#">Help desk</a></li> <li><a href="#">Help desk</a></li>
<li><a href="#">Appointment</a></li> <li><a href="#">Appointment</a></li>
</ul> </ul>
</li> </li>
<li><a href="https://www.odoo.com/page/timesheet">Timesheet</a></li> <li><a href="https://www.flectra.com/page/timesheet">Timesheet</a></li>
<li><a href="https://www.odoo.com/page/email-marketing">Email Marketing</a></li> <li><a href="https://www.flectra.com/page/email-marketing">Email Marketing</a></li>
<li><a href="https://www.odoo.com/page/events">Events</a></li> <li><a href="https://www.flectra.com/page/events">Events</a></li>
<li><a href="https://www.odoo.com/page/survey">Survey</a></li> <li><a href="https://www.flectra.com/page/survey">Survey</a></li>
<li><a href="https://www.odoo.com/page/live-chat">Live Chat</a></li> <li><a href="https://www.flectra.com/page/live-chat">Live Chat</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
<a href="http://www.odoo.com/apps/modules" class="o_store_link"><i class="fa fa-cube fa-fw"></i> Third party apps</a> <a href="http://www.flectra.com/apps/modules" class="o_store_link"><i class="fa fa-cube fa-fw"></i> Third party apps</a>
</div> </div>
</li> </li>
<li><a href="https://www.odoo.com/page/tour">Tour</a></li> <li><a href="https://www.flectra.com/page/tour">Tour</a></li>
<li><a href="https://www.odoo.com/pricing">Pricing</a></li> <li><a href="https://www.flectra.com/pricing">Pricing</a></li>
<li><a href="https://www.odoo.com/page/docs">Docs</a></li> <li><a href="https://www.flectra.com/page/docs">Docs</a></li>
</ul> </ul>
</div> </div>
<nav class="navbar o_sub_nav"> <nav class="navbar o_sub_nav">
@ -178,7 +178,7 @@
</ol> </ol>
<div class="call-to-action navbar-right hidden-xs"> <div class="call-to-action navbar-right hidden-xs">
<a href="http://www.odoo.com/trial" class="btn btn-primary">Start Now</a> <a href="http://www.flectra.com/trial" class="btn btn-primary">Start Now</a>
</div> </div>
<ul class="navbar-nav navbar-right nav o_sub_nav_actions"> <ul class="navbar-nav navbar-right nav o_sub_nav_actions">
@ -276,42 +276,42 @@
<div class="col-xs-6 col-sm-4"> <div class="col-xs-6 col-sm-4">
<span class="menu_title">Community</span> <span class="menu_title">Community</span>
<ul> <ul>
<li><a href="https://github.com/odoo/odoo">Github</a></li> <li><a href="https://github.com/flectra/flectra">Github</a></li>
<li><a href="http://www.odoo.com/page/download">Download</a></li> <li><a href="http://www.flectra.com/page/download">Download</a></li>
<li class="divider"></li> <li class="divider"></li>
<li><a href="http://runbot.odoo.com/runbot/repo/git-github-com-odoo-enterprise-7">Runbot</a></li> <li><a href="http://runbot.flectra.com/runbot/repo/git-github-com-flectra-enterprise-7">Runbot</a></li>
<li><a href="https://github.com/odoo/odoo/wiki/Translations">Translations</a></li> <li><a href="https://github.com/flectra/flectra/wiki/Translations">Translations</a></li>
<li class="divider"></li> <li class="divider"></li>
<li><a href="http://www.odoo.com/page/odoo-community">Mailing Lists</a></li> <li><a href="http://www.flectra.com/page/flectra-community">Mailing Lists</a></li>
<li><a href="http://www.odoo.com/forum/help-1">Forum</a></li> <li><a href="http://www.flectra.com/forum/help-1">Forum</a></li>
</ul> </ul>
</div> </div>
<div class="col-xs-6 col-sm-4"> <div class="col-xs-6 col-sm-4">
<span class="menu_title">Services</span> <span class="menu_title">Services</span>
<ul> <ul>
<li><a href="http://www.odoo.com/pricing">Editions</a></li> <li><a href="http://www.flectra.com/pricing">Editions</a></li>
<li><a href="http://www.odoo.com/pricing-online">Cloud Pricing</a></li> <li><a href="http://www.flectra.com/pricing-online">Cloud Pricing</a></li>
<li><a href="http://www.odoo.com/page/upgrade">Upgrade</a></li> <li><a href="http://www.flectra.com/page/upgrade">Upgrade</a></li>
<li class="divider"></li> <li class="divider"></li>
<li><a href="http://www.odoo.com/partners">Find a partner</a></li> <li><a href="http://www.flectra.com/partners">Find a partner</a></li>
<li><a href="http://www.odoo.com/page/become-a-partner">Become a partner</a></li> <li><a href="http://www.flectra.com/page/become-a-partner">Become a partner</a></li>
<li class="divider"></li> <li class="divider"></li>
<li><a href="http://www.odoo.com/page/education-program">Education</a></li> <li><a href="http://www.flectra.com/page/education-program">Education</a></li>
<li class="divider"></li> <li class="divider"></li>
<li><a href="http://www.odoo.com/page/security">Security</a></li> <li><a href="http://www.flectra.com/page/security">Security</a></li>
</ul> </ul>
</div> </div>
<div class="col-sm-4 mb64"> <div class="col-sm-4 mb64">
<span class="menu_title">About us</span> <span class="menu_title">About us</span>
<ul> <ul>
<li><a href="http://www.odoo.com/page/about-us">Our company</a></li> <li><a href="http://www.flectra.com/page/about-us">Our company</a></li>
<li><a href="http://www.odoo.com/page/contactus">Contact</a></li> <li><a href="http://www.flectra.com/page/contactus">Contact</a></li>
<li class="divider" /> <li class="divider" />
<li><a href="http://www.odoo.com/event">Events</a></li> <li><a href="http://www.flectra.com/event">Events</a></li>
<li><a href="http://www.odoo.com/blog/">Blog</a></li> <li><a href="http://www.flectra.com/blog/">Blog</a></li>
<li><a href="http://www.odoo.com/blog/6">Customers</a></li> <li><a href="http://www.flectra.com/blog/6">Customers</a></li>
<li class="divider" /> <li class="divider" />
<li><a href="http://www.odoo.com/jobs">Jobs</a></li> <li><a href="http://www.flectra.com/jobs">Jobs</a></li>
</ul> </ul>
</div> </div>
</div> </div>
@ -319,9 +319,9 @@
<div class="col-sm-5 col-md-4 col-md-offset-1 col-lg-5 col-lg-offset-1"> <div class="col-sm-5 col-md-4 col-md-offset-1 col-lg-5 col-lg-offset-1">
<p> <p>
<small> <small>
Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc. Flectra is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.
<br/><br/> <br/><br/>
Odoo's unique value proposition is to be at the same time very easy to use and fully integrated. Flectra's unique value proposition is to be at the same time very easy to use and fully integrated.
</small> </small>
</p> </p>
</div> </div>
@ -329,12 +329,12 @@
</div> </div>
<div class="o_footer_bottom"> <div class="o_footer_bottom">
<div class="container"> <div class="container">
<a class="small" href="http://www.odoo.com/page/website-builder">Website made with <span class="o_logo o_logo_inverse o_logo_15"></span></a> <a class="small" href="http://www.flectra.com/page/website-builder">Website made with <span class="o_logo o_logo_inverse o_logo_15"></span></a>
<div class="social-links pull-right"> <div class="social-links pull-right">
<a href="http://www.odoo.com/web/about/facebook"><i class="fa fa-facebook"></i></a> <a href="http://www.flectra.com/web/about/facebook"><i class="fa fa-facebook"></i></a>
<a href="http://www.odoo.com/web/about/twitter"><i class="fa fa-twitter"></i></a> <a href="http://www.flectra.com/web/about/twitter"><i class="fa fa-twitter"></i></a>
<a href="http://www.odoo.com/web/about/linkedin"><i class="fa fa-linkedin"></i></a> <a href="http://www.flectra.com/web/about/linkedin"><i class="fa fa-linkedin"></i></a>
<a href="mailto:info@odoo.com"><i class="fa fa-envelope"></i></a> <a href="mailto:info@flectra.com"><i class="fa fa-envelope"></i></a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -17,7 +17,7 @@ AQUA = "#5bc4bf"
BLUE = "#06b6ef" BLUE = "#06b6ef"
PURPLE = "#815ba4" PURPLE = "#815ba4"
class OdooStyle(Style): class FlectraStyle(Style):
"""Modified version of Paraiso Dark style to avoid Pygments version """Modified version of Paraiso Dark style to avoid Pygments version
annoyances. annoyances.
@ -120,7 +120,7 @@ class OdooStyle(Style):
import imp import imp
import sys import sys
modname = 'pygments.styles.odoo' modname = 'pygments.styles.flectra'
m = imp.new_module(modname) m = imp.new_module(modname)
m.OdooStyle = OdooStyle m.FlectraStyle = FlectraStyle
sys.modules[modname] = m sys.modules[modname] = m

View File

Before

Width:  |  Height:  |  Size: 322 KiB

After

Width:  |  Height:  |  Size: 322 KiB

View File

@ -1,4 +1,4 @@
// Based on http://www.odoo.com/openerp_website/static/src/less/footer.less // Based on http://www.flectra.com/openerp_website/static/src/less/footer.less
// ======================================================================== // ========================================================================
body > footer { body > footer {

View File

@ -1,4 +1,4 @@
// Based on http://www.odoo.com/openerp_website/static/src/less/header.less // Based on http://www.flectra.com/openerp_website/static/src/less/header.less
// ======================================================================== // ========================================================================
// ============= MIXINS // ============= MIXINS
@ -144,12 +144,12 @@
} }
} }
&.open > a { &.open > a {
color: @odoo-brand-primary!important; color: @flectra-brand-primary!important;
font-weight: @fw_semibold; font-weight: @fw_semibold;
&::before, &::after { &::before, &::after {
background-color: @odoo-brand-primary!important; background-color: @flectra-brand-primary!important;
box-shadow: 0 1px 1px fade(@odoo-brand-primary, 10%); box-shadow: 0 1px 1px fade(@flectra-brand-primary, 10%);
right: @w-header-arrow-length / sqrt(2) / 2; right: @w-header-arrow-length / sqrt(2) / 2;
} }
&::before { &::before {

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

Before

Width:  |  Height:  |  Size: 467 KiB

After

Width:  |  Height:  |  Size: 467 KiB

View File

Before

Width:  |  Height:  |  Size: 499 B

After

Width:  |  Height:  |  Size: 499 B

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Some files were not shown because too many files have changed in this diff Show More