Commit Graph
117975 Commits
Author SHA1 Message Date
qsm-odoo e41bcb0e31 [MERGE] *: use SCSS as language for design (instead of LESS)
The main reason this is done is to prepare the migration to bootstrap 4.
It has other advantages though, like speed to compute the css and more
convenient language features (if/else/maps/...).

Detailed information about this merge can be found in the merge's
sub-commits.
2018-04-18 16:14:28 +02:00
qsm-odoo 16ddf4ae54 [REF] doc: adapt to mention scss instead of less 2018-04-18 15:59:26 +02:00
qsm-odoo e5b268827f [REF] web, web_editor, website: convert LESS editor to SCSS editor 2018-04-18 15:59:25 +02:00
qsm-odoo 6713d03ac8 [REF] theme_bootswatch: update themes to scss and review support
Remove support of:
- Theme Amelia: removed with bootstrap 3.3.0, but released in odoo at
  bootstrap version 3.2.0 (should have been removed since Odoo 9.0
  (boostrap version 3.3.5))
- Theme Readable: removed with bootstrap 4.0.0 so it is best to remove
  it now so as we are gonna migrate to bootstrap 4.0.0.

We may want to add new bootswatch theme with bootstrap 4.0.0 migration.

This commit also adds the missing LICENSE file.
2018-04-18 15:59:23 +02:00
qsm-odoo 67cace90a9 [REF] theme_default: adapt the scss convertion for everything to work 2018-04-18 15:59:22 +02:00
qsm-odoo cd2504c75f [FIX] *: wrap negated variables with parenthesis
* mail, web, web_editor, website_sale

Tricky difference between LESS and SCSS:
`0 -$var` will be one value in SCSS (the result of 0 - $var) but
two space-separated values in LESS.
2018-04-18 15:59:21 +02:00
qsm-odoo 6e4db7d13a [REF] *: review scss variables handling
Unlike LESS, SCSS variables are not lazy loaded. Our system has thus
to be updated. This commit creates new templates which are t-called
in assets bundles (to replace the old less_helpers template):

- web._assets_utils: regroups the mixins and functions which *can*
  (and so should) be available in every asset bundle

- web._assets_primary_variables: regroups the variables (or mixins
  used as variables) which *can* (and so should) be available in
  every asset bundle

- web._assets_secondary_variables: same as above but provides an
  environnement where all the 'primary' ones are accessible. This is
  for example useful to handle the community/enterprise split:

  // Community primary variables
  $o-pink-color: pink; // enterprise color
  $o-brand-primary: blue;

  // Enterprise primary variables
  $o-brand-primary: $o-pink-color;

  // Community secondary variables
  $o-my-darker-primary: darken($o-brand-primary, 5%);

  => If there was only one variable template, enterprise edition would
     have been able to define its primary color at the end but the
     darker primary would not have been updated. Using the "!default"
     system and putting enterprise definition above would not have
     solved the problem as the $o-pink-color would not have been
     accessible.

- web._assets_backend_helpers: regroups the variables, mixins and
  functions which *can* (and so should) be available in the backend
  asset bundle only. This is especially (only?) useful for bootstrap
  variables overriddes.

- web._assets_frontend_helpers: regroups the variables, mixins and
  functions which *can* (and so should) be available in the frontend
  asset bundle only. This is especially (only?) useful for bootstrap
  variables overriddes.

Note: bootstrap variables are not accessible in any of those anymore.
If you have variables that should depend on bootstrap, you have 3
solutions:

- Find another way: your variable is probably useless, use bootstrap
  variables directly or create a variable that will influence the
  value of bootstrap variables. E.g. instead of declaring:
  `$myvar: $bootstrapvar * 3`
  and using $myvar alone, declare:
  `$myvar: 3` and use `$myvar * $bootstrapvar` where needed.

- Declare a copy of the bootstrap variable and use that one. In that
  case, you should also force-set the real bootstrap one to be sure
  they match (this should be done in appropriate templates mentioned
  above). E.g.
  ```
  $o-boostrapvar: 5;
  ...
  $boostrapvar: $o-bootstrapvar;
  ```

- Set your variable to null and set it to your bootstrap expression
  in the file you will need it (where bootstrap variables are accessible)
  without forgetting to add the !default flag to allow overriddes.
  ```
  $myvar: null;
  ...
  $myvar: $bootstrapvar * 5 !default;
  ```

This commit also partly changes the variable names to follow the
convention:
$o-<app_id>-<name> where 'app_id' is the current's app name or a
meaningful unique identifier ("theme" for all themes for example, as
no multiple themes can be installed).
2018-04-18 15:59:19 +02:00
qsm-odoo fbfd011904 [REF] *: get rid of introduced @​extend
During first scss convertion, classes called as mixins were changed to
an @​extend instruction which was the best approximation given the fact
there is no equivalent in sass to do that. The problem is that the
instruction is slowing the scss computation a lot and might also break
the style in unexpected ways because of the complex unwanted selectors
the instruction induces.

This commit removes the need of extends. This is done case per case.
Sometimes this involves adding classes in xml, sometimes to change the
style a little, ... The button rendering refactoring which was made
at the start of the LESS to SASS merge was also done in prevision of
this.

After this commit, sass computation is like 5-6 times faster than less
computation while it was like 10 times *slower* before this commit.
2018-04-18 15:59:18 +02:00
qsm-odoo 97aa0a8dec [REF] *: convert less content to scss content
Convert content so that the assets compile on app installation. The
style is still broken after this as the variables/mixins/... are not
defined in the right order (as it did not matter in LESS but does in
SCSS).

This commit basically changes:
- Variables: @​var_hello -> $var-hello
- Mixins: .mixin_world() {} -> @​mixin mixin-world {}
- Classes used as mixin: .my_class() -> @​extend .my_class
    - Here there were no other solution than to convert the use of
      a mixin call by the use of an extend as a first approximation
- LESS functions -> SCSS functions (e.g. fade -> rgba)
- Move first variable definition before the variable is used
    - Still need to make sure last variable definition is at the
      right place
2018-04-18 15:59:16 +02:00
qsm-odoo b04dec4025 [REF] *: rename all LESS files to SCSS
This is a simple renaming without adaptation.
2018-04-18 15:59:15 +02:00
qsm-odoo a6393130e6 [REF] theme_bootswatch: reorganize folder
Reorganize the theme folder to follow standard hierarchy. In particular,
the libs are now placed in a dedicated folder in the /static/lib folder
instead of the /static/src folder.
2018-04-18 15:59:13 +02:00
qsm-odoo 9435fe110c [REF] web_editor: convert summernote less to css
Summernote is using LESS and no SCSS version exists (at least
officially). As summernote is meant to be replaced in the future and
that the LESS file was already overridden directly by Odoo, this
commit converts the LESS file to CSS once and for all.
2018-04-18 15:59:12 +02:00
qsm-odoo a13ba24b3a [REF] web: change bootstrap datetimepicker source from less to scss
Note: the scss version of the lib file was not up to date, I manually
updated it to our current version (very small changes). The lib will
probably have to be changed with bootstrap 4 anyway.

Note 2: the file is left included in the common assets but it would
probably make more sense to put it both in backend and frontend instead.
2018-04-18 15:59:10 +02:00
qsm-odoo 6096f24501 [REF] web: change bootstrap source from less to scss
Note: bootstrap 3.3.7 in SCSS produces slightly different CSS
of bootstrap 3.3.7 in LESS... the DOM result should be the same
though.
2018-04-18 15:59:09 +02:00
qsm-odoo 1a007c1a96 [REF] *: stop mentioning "LESS" where this is not required
* web, web_editor, website, im_livechat
2018-04-18 15:59:07 +02:00
qsm-odoo 3f6ddd4a66 [REF] odoo: adapt scaffolding templates 2018-04-18 15:59:06 +02:00
qsm-odoo 587d7a50d0 [REF] update manifest and makefile 2018-04-18 15:59:05 +02:00
qsm-odoo a75e3980ce [IMP] website: define default template for scss files creation 2018-04-18 15:59:04 +02:00
qsm-odoo 434d5de9c8 [REF] http_routing: guess scss mimetype 2018-04-18 15:59:03 +02:00
qsm-odoo 2d63d2d75a [REF] test_assetsbundle: adapt bundle tests 2018-04-18 15:59:02 +02:00
Romain Derie c71be32c89 [IMP] base: add new sass engine
Adapt the assets bundle computation to work with SASS (scss). LESS is
still supported though the dependencies are not installed automatically
and the LESS variables are not available anymore (obviously).

SASS is computed thanks to the libsass program, wrapped by the
python-libsass package (no need to start a nodejs process anymore).
2018-04-18 15:59:01 +02:00
qsm-odoo bf3193ac5e [REF] setup: review dependencies
Include libsass instead of node-less

Thank you to @d-fence for testing this.
2018-04-18 15:58:34 +02:00
Martin Trigaux c74f975994 [FIX] base: correct Arabic iso_code
The Arabic we use on Transifex is "simple" Arabic, not the one from Syria.
The .po files we synchronise are named 'ar.po', not 'ar_SY.po'

Change the iso_code to match the one we actually use.
transifex module relies on the iso_code to make its URL
2018-04-18 15:51:30 +02:00
Raphael Collet 87b42ad9a8 [FIX] models: make group by date and order by date work together
The issue occurs when `read_group` is called with a date/datetime field to
group and order on, and the group_by is qualified, such as:

    model.read_group(..., groupby=['date:week'], orderby='date')

The ORDER BY clause in the query should use the same term as the GROUP BY
clause for the corresponding field.

OPW 1834148
2018-04-18 15:47:30 +02:00
len-odoo 7671e0c30d [FIX] calendar: fix event sorting function with relational fields
When working with relational fields, the sorting function would
compare empty recordsets with Strings (the field value),
crashing in the process.

This is essentially an addendum to previous commit
b6c962e62a
which fixed the sorting for non-relational fields.

opw 1831457
2018-04-18 15:15:47 +02:00
qsm-odoo 549f60b3c2 [REF] *: <a/> elements do not need the oe_link class
The 'oe_link' class is not linked to any style. The class is
automatically converted to 'btn-link' for <button/> elements but this
will not be done on <a/> elements as they are (nearly) unprocessed
node during views rendering.

Also there is minor difference between a '.btn-link' element and a
<a/> element anyway (and maybe there should not be at all).
2018-04-18 14:47:42 +02:00
qsm-odoo e88913bd28 [IMP] web, *: do not use 'oe_highlight' and 'oe_link' class in the DOM
* test_main_flows

The style of a primary/link button is given by the
'btn-primary'/'btn-link' class. The old 'oe_highlight'/'oe_link'
class should still be supported in views but not rendered in the DOM.
2018-04-18 14:47:42 +02:00
qsm-odoo 374af562e8 [REF] web: review button rendering
Button rendering was most of the time wrong, incomplete or performed
with duplicated code. This led to:
- Both primary and default classes were put on some statusbar buttons
- Icons were not able to be put for statusbar buttons
- Stat buttons and list buttons code were duplicated
- Classes and style were added twice
- ...
2018-04-18 14:47:42 +02:00
Christophe Simonis 2c1c9c21f1 [MERGE] forward port branch saas-15 up to 16ec176620 2018-04-18 14:43:35 +02:00
Vincent Schippefilt fca6ea37ab [FIX] web: lighten the focus effect in kanban
Also apply the same focus affect on "dashboard" kanbans and normal
kanbans
2018-04-18 14:18:31 +02:00
Martin Trigaux 41e7df7880 [FIX] transifex: adapt the URL scheme
The search patterns have changed on Transifex
While the URL is still backward compatible, it may change in the future
2018-04-18 13:59:56 +02:00
Christophe Simonis 16ec176620 [MERGE] forward port branch saas-14 up to 67054b6dcb 2018-04-18 13:49:24 +02:00
Jaykishan Solanki 5ea27d471e [IMP] account: Accounting Date on bank statement
This commits adds a field on bank statement that will be used to force the creation of the accounting entries at this date instead of the bank statement date (in the same way than on invoices). This is useful if the accounting period in which the entries should normally be booked is already closed.
This field is only visible in debug mode.

Was PR #22441
Was task 46892
2018-04-18 13:32:59 +02:00
Hetashree Chauhan e095733a3a [IMP] account: Correct term/amount information in aged receivable/payable.
Was PR #14820
Was task: 28716
2018-04-18 12:28:28 +02:00
Christophe Simonis 67054b6dcb [MERGE] forward port branch 10.0 up to 2f037a13ca 2018-04-18 12:14:53 +02:00
Florent de Labarre e155244007 [FIX] sale_stock: access rights when updating delivered quantities
If a user only has the stock user access rights, he's not able to
validate or write on a move that has to update the delivered quantities.

Closes #23782
opw-1835138
2018-04-18 11:56:36 +02:00
Yannick Tivisse a78442194a [FIX] fleet: Track driver modifications on vehicles 2018-04-18 11:53:32 +02:00
Arnold Moyaux a6e2830631 [FIX] barcode: do not trigger barcode on pending views
The check on the event target and the barcode target is done outside
the check on barcode found. That result in a warning for each modal/form
view that is pending.

This commit do the check before doing any operations in order
to directly stop if the event target is not similiar to listening
barcode target
2018-04-18 11:50:48 +02:00
Arnold Moyaux e5305ca8b7 [FIX] barcode: use the same process for quantity listener
The barcode scanner and the quantity listener do not use
the same proccess although they act for the same operation.
(For example the quantity listener trigger onchange server side
while the barcode scanner not if 'notifychange' key on the
active_barcode is set to False)

Since quantity listener is based on candidate we could directly
call the _barcodeSelectedCandidate method in order to have a common
behavior and code.
2018-04-18 11:50:48 +02:00
Christophe Matthieu 1f5d65e74a [IMP] bus: properly restart longpoll when necessary
Whenever we add or delete a channel in the bus/longpolling system, we
want the long poll to restart immediately, to be able to receive the
correct messages.

Before this commit, we had to wait for the longpoll timeout to finish
before receiving the correct messages.
2018-04-18 11:43:07 +02:00
Christophe Matthieu 77e5b82b7d [IMP] web: allow js code to abort xhr
We have a need to be able to abort a pending xmlhttprequest.  This is
necessary for the longpoll system so it can restart properly.

With this commit, we simply propagate the abort method from the jquery
deferred to the deferred returned by the session rpc method.

Note that this is not documented on purpose. The reason is that we do
not want to commit on maintaining this feature.

It is kind of awkward to have a deferred which can be aborted, but once
it is chained, the abort feature is lost. So, for now, this will stay a
lower level feature used exclusively for our needs.
2018-04-18 11:43:05 +02:00
Mathieu Duckerts-Antoine d082fa0d95 [REF] web: simplify calls to read_group in pivot model
The commit [3079415fb17232117b0d5059a23ae89232eaf5e8] allows the read_group groupby parameter not to be contained in the fields parameter. This makes possible the simplification made here. Similar changes could certainly be applied elsewhere.
2018-04-18 11:38:57 +02:00
Mathieu Duckerts-Antoine 1f5cce174c [FIX] models: remove useless assertion in _read_group_raw
For historical reasons, a field in the read_group grouby parameter was required to be in the list of fields parameter without any necessity. This is not the case anymore. A byproduct of this commit is that it fixes a bug in pivot view introduced earlier in [47395c6].
2018-04-18 11:38:34 +02:00
Christophe Simonis 2f037a13ca [MERGE] forward port branch 9.0 up to cf163d19ee 2018-04-18 11:32:27 +02:00
Lucas Perais (lpe) 20f5f625f4 [FIX] pad: prevent concat bool and string
Before installing pads, create a second company
On the first company, create a task and initialize its pad

Switch companies and try to edit the task

Before this commit:
There is a traceback because since the pad credentials of the second company are not set,
the url cannot be computed

After this commit, we prevent the Null field to concat with a string
hence there is no traceback

OPW 1837059
closes #24263
2018-04-18 11:03:22 +02:00
Arnold Moyaux 8b97721fb9 [FIX] mrp_bom_cost: update manifest
Rename 'price' to 'cost' since
the updated field is standard_price but the label is 'cost'
2018-04-18 10:31:02 +02:00
Arnold Moyaux 6fe4c673ab [FIX] stock_account: missing label
Since the field is now inside a div the label is not added automatically.
2018-04-18 10:31:02 +02:00
dbh c58db31732 [IMP] account: support of filtering on partner (category) in reports
This commit allow to filter easily on partners or partner categories in financial reports

Was PR #23364
Was task: 36626
2018-04-18 09:55:33 +02:00
Nicolas Martinelli ffdfbed42c [FIX] calendar: avoid memory overflow
On a DB with thousands of events including recurring ones, fetching the
complete list of events might lead to a memory overflow due to the
prefetching of all virtual events.

We reduce the memory footprint by handling no more than 50,000 records
at a time and clearing the cache at each step. This limit is purely
arbitrary, but seems to be a good compromise between performance and
memory usage.

opw-1832482
2018-04-18 08:17:50 +02:00
Alexandre Kühn cf163d19ee [FIX] board,web: edit custom views in place
Before this commit, whenever we do an operation on any of these custom views,
such as folding it, the custom view was saved by creating a new one.

This behaviour comes from a lost feature to undo operations on custom views.
Since we do not have this feature anymore, it makes no sense to create new
custom views on save, instead of applying the changes in place.

With this commit, custom views are edited in place.

Fixes #23712
2018-04-17 17:32:27 +02:00