* Remove recursive assets inclusions (i.e. assets_editor was including
assets_common, summernote, ...)
* Better construct the assets (link, then script + type attribute)
* Better include the assets (split js / css, always use t-call-assets)
* Simplifies the number of assets
* Move bootstrap js to assets common
* assets_frontend is now created by web module to allow using it on the
connexion page but also in the web_editor, where colors have to be
bootstrap/theme ones. Note: if a module depends on website, then keep
using the inherit_id="WEBSITE.assets_frontend"
* Convert some CSS to LESS
* Split/Join LESS files
* Remove duplicates between website and web_editor
* UI improvements
* Allow simple customizations thanks to LESS var&mixins for website
Before, the whole editor UI was redefined for web_editor, each
mass_mailing template, website builder, ... Now they all inherit
from the web_editor one.
When creating a new pos.session, the starting balance of created bank
statements where all the sames.
By creating bank statements with the same `journal_id` in context, they
all have the starting balance for this journal.
Create them manually to force having the starting balance for the
statement's journal.
CSV export was added in f146e2a and since then newline were not
exported.
But new line should be allowed if the string is quoted by " characters
which is done in Odoo.
closes#11005
opw-667853
The theoritical amount is computed as:
theo amt = ellapsed time / total time period * planned amount
where:
total time period is the difference between date_to and date_from defined
on the crossevered budget line.
ellapsed time is the difference between today and date_from.
The achievment(percentage) on a crossevered budget line is computed as:
percentage = practical amt / theo amt
where:
practical amt is the sum of all account analytic lines valid in the
crossevered budget line period.
When computing the report of a summary, the ellapsed time is equal
to the difference between date_to and date_from defined for the summary and
the practical amount only takes the account analytic lines in the summary
period.
opw:669545
When loading the registry, the parent store are defered at the end of
the registry initialisation. However, when modules should be removed, a
brand new registry is build without deleted modules, losing the list of
models on which parent store should be recomputed.
Properties depends on with which companies the records
are browsed.
When retrieving the fiscal position as sudo,
the company must therefore be enforced within the context,
to make sure to get the properties from the right
company.
This method can totally be accessed as sudo,
within the crons for instance.
Before this revision, the recurring invoices cron
could retrieve properties from the wrong company,
and therefore retrieve the fiscal position of another
company.
Closes#11039
During the conversion of the module
`account_asset` to the new API,
in revision 6120bab,
the variables `current_currency` & `company_currency`
have been changed from identifier integers to
browse records.
The currency passed in the `create` method
values must therefore be adapted according
to this change.
This prevented the correct use
of the assets when the currency of the assets
was not the same as the currency of the company.
opw-669571
During the conversion of the module
`account_asset` to the new API,
the currency conversion in `create_move` has been inverted.
```
amount = currency_obj.compute(cr, uid, current_currency, company_currency, line.amount, context=context)
```
has been converted to
```
amount = company_currency.compute(line.amount, current_currency)
```
while it should have been converted to
```
amount = current_currency.compute(line.amount, company_currency)
```
See:
https://github.com/odoo/odoo/commit/6120bab#diff-e35933343c229da0afceb2a3b9e3639bR356
opw-669568
In the case of a `raw_data` export, a boolean which has the value
`False` will not be exported correctly.
The fix handles the `False` value as a valid value for a field.
opw-666142
With a high number of pricelist items
(8.000.000 in the observed case),
the SQL request performed in `_price_rule_get_multi`
took a significant time (>3000ms)
to be executed without an index on the `pricelist_id`.
opw-670153
The product price unit should be rounded before being used in any
operation. The PoS calls the method `read` in order to get the necessary
fields. However, the product price is a non-stored calculated float. In
old API, such a field is not rounded by the `read` method. It means that
a product price of 28.067 (for example thanks to the use of a pricelist)
will be rounded to 28.07 at the server level but not rounded in the PoS
JS layer.
To lower the impact of the fix, the rounding is done at the JS level,
and not in the `_product_price` method.
opw-669024
The Dialog class destroys the modal (and so removes it from the DOM)
when the dialog closes but leaves the modal-open class on the body
element if there are still other modal(s) in the DOM.
The problem is that (maily on the frontend side) there may be others
modal(s) in the DOM (not handled by the Dialog class) but which are
not shown to the user, and in that case the modal-open class should
be removed.
If the help message is translatable,
there is no reason why the thanks message
coudln't be as well.
This is a following of the revision
f37a40c4c0
opw-670228
If there is no currency set on the journal,
the fallback currency must be the currency
of the journal company, not the currency
of the user company.
This would mean that when you change of company,
with another currency set,
the bank statement change of currency, this is non-sense.
opw-670187
When creating account move lines from an account move, the partner
set on the account move lines has to be the same than the one on the
account move.
opw:668322
When a product has no company set, it assumed it use the main company
currency. Read the main company currency as SUPERUSER as current user
may not have access to it.
Followup of 3622c0d12a.
tl;dr: accept both `None` and empty ('') results as
cache hits, then double-check that the file_size
is really 0
A. Valid empty files
When a LESS file compiles to an empty result
(e.g. `variables.less`), do not treat the empty file
as a cache miss. Those are valid because file_size == 0.
Note: empty files are not stored in the attachment
filestore and return a null (None) `datas` when read
from the database.
B. Invalid empty files
Under some circumstances (e.g. damaged filestore,
race conditions during deletion, etc.), cached
compiled assets may be deleted in the underlying
attachment filestore, while still present in the
table. The filestore implementation returns an
empty file ('') when they are later accessed.
Those can be considered **invalid**
because the expected file_size is > 0.
When a user attempted to edit his answer,
and had not enough karma to edit the tags
of the post, he was always restricted,
even if he made no changes within
the post tags.
opw-670090