Mixing positive and negative values in a pie chart is not possible.
However, in this case, a crash occurs instead of displaying an error
message.
opw-786137
Archive the associated analytic account when a project is archived. Once
a porject is archived, it is assumed that we don't want to use the
analytic account anymore.
Moreover, it might be tempting for a user to delete these "useless"
analytic accounts, and therefore it would delete the archived projects
and tasks without notification.
Closes#21224
opw-784685
When creating by products during a workorder the move lines
for the final moves are not created and the user has to manually
create them on the manufacturing order view.
This commit adds an automatic action in order to create
the correct move lines with the consumed quantity for the
by products not tracked by lot or SN.
This commit also fixes a bug where the consumed move lines where
not linked to the by products move lines
When the user do a work order with a final product
tracked by lot or serial number. A serial number is
asked at the end of the first workorder. The purpose is
to link consumed products with the SN/lot produced.
However it could happens that no component are consumed
during the first and following work order.
This commit allows to by pass the lot/SN registration if
nothing is consumed.
Let's have:
- on res.company a binary file field named x_file
- on res.users a related binary field to company_id.x_file, and make it readonly
On the res.users form view, display the new field
Before this commit in create mode, upon clicking on download the file, the server crashed, because the record id was empty.
Then, the JS crashed in turn because of the unhandled 404 from the server.
Since the id of a new record will always be unset, we choose to disable the download event in this very specific case
OPW 777042
* create product correctly (via form) & enable crossdock route
otherwise no purchase order is created (surprise!)
* silence logger when creating SO as apparently stock warning can not
be disabled even when it makes no sense
* suppress warning about cost methods when creating a product
category, that's apparently normal (happens every time on runbot)
If purchase happens to be installed before MRP is, the "buy" route is
set by default on products *and* takes precedence over the MRP
one (because created first and same sequence).
This leads to purchase trying to buy products (which have no seller)
instead of MRP trying to manufacture them, which is what we're trying
to do & test.
Fix by clearing the route_ids field before adding the MRP routes.
* warn on onchange warning instead of error
* fallback on a node not having modifiers attributes
* required field should apparently fail on False but not 0 or 0.0
* improve error message when adding an incorrect object or model to an
o2m
* remove useless test_move_explode
Useful to better test business flows & replace yaml test files:
instantiating records & calling onchanges by hand is very
error-prone (it's easy to miss onchanges, or to manually set fields
which can't be set through the view we're interested in, ...)
odoo.tests.common.Form implements the basic *creation*
flow (fields_get, default_get, onchange) up to saving the record,
including proper handling of the required and readonly modifiers &
their domains.
* edition of existing records, including filtering out unmodified
fields when saving
* possibly buttons
* ensuring the API is convenient
Remove the possibility to define the number of digits for the accounts in the accounting settings.
People can do a export/import to do that.
Was PR #16587. Was task 32750
The label of the setting was linked to the invisible m2o field to
choose the start category instead of the start category setting
itself. The problem was that when clicking the label, instead of
checking the config checkbox, it opened the m2o's dropdown though
it was invisible.
opw-784599
Purpose
=======
Currently the wage reduced by a superior amount of 20 holidays is not taken into account in the brut2net computation.
Specifiation
============
Take also the wage deduction into account
- make delegate/undelegate events private
- remove $el before start
- make replaceElement private
- remove one _ from __render_and_insert... method
- update documentation
- remove make and improve make_descriptive (also, it is private)
- ...
... to allow them to be called several times without having to
wait for the delays.
This was already done for _.throttle, by default for the whole
test suite, and it couldn't be parameterized in individual tests.
This was enough for _.throttle, but the same solution couldn't be
applied for _.debounce, because some tests actually test that some
handlers are correctly debounced.
Those function are now patched in addMockEnvironment, and two
parameters can be set: 'debounce' (default: true) and 'throttle'
(default: false).
Before this commit, it was not possible to save a page
containing a snippet with a SVG tag.
To support SVG elements, we need to use 'Element.getAttribute'
and 'Element.setAttribute' as mentionned in the documentation:
https://developer.mozilla.org/en-US/docs/Web/API/Element/className
For more information, see GH-14485
This file, like many others, does not return a reference to its main
widget, which implies that it cannot be modified/extended. This may be
fine for Odoo itself, but some other may (and do) need to extend/include
this widget.
- Create 2 FPos (1 & 2)
- Create 3 customers:
Customer A has no FPos
Customer B has FPos 1
Customer C has FPos 2
- Set-up the POS so that FPos 1 is the default FPos (FPos 2 is not
accepted in the POS)
Issue 1
- Select Customer A
The FPos is set to blank, while one would expect to keep the default
FPos.
Issue 2
- Select Customer B
- Deselect Customer B
The FPos is set to blank, while one would expect to keep the default
FPos (as it was before selecting B).
Issue 3
- Select Customer C
The FPos is set to blank, while one would expect to keep the default
FPos since his FPos is not accepted.
opw-782855
Purpose
=======
Landed Cost usability improvement
Specification
=============
1/ No need to show the check box landed cost on the landed cost type (hide that, by default it consider landed cost type product)
2/ At the time of creating a Landed Cost, the product type should be 'Service' by default
3/ Remove edit & create option from picking selection (shouldn't be able to create a picking from scratch from the landed cost)
4/ Add regular stat button for 'active'/'Inactive' : https://drive.google.com/file/d/0B7X0nDa4oGandEpNR3Q2dmRzTms/view?usp=sharing [OK]
Purpose
=======
From the sales dashboards, there is no way to access the credit notes, while we can access the invoices.
Should be possible to access the credit notes too.
Specification
=============
Sales->Reporting->Sales Channels/More/View/Invoices-> Display all invoice and credit notes from this sales channel
Due to a previous commit (@d2e1a1de), if a date was selected in
search filter, the time was converted to UTC to the server.
For negative offset, the search was then executed for the day before.
Now, we avoid to convert the searched date to UTC.
We only need to convert datetime fields.
Commit 763d714 introduced cron job locking for databases which had
modules with states set to 'to x', however if an
installation/uninstallation/upgrade fails, the state will stay at 'to
x', and it may stay in that state for an indefinite amount of time,
meaning that cron jobs could stay locked forever.
This commit fixes this in part by adding a cleanup function to loading.py that
will be executed whenever load_modules fails, the function will change
every 'to x' module to their original state, effectively unlocking the
execution of cron jobs.
This however only works to prevent "zombie" transient states for
brand new databases, however for existing databases which already
contain some modules in a zombie state it won't do anything unless
a module is installed/uninstalled/upgraded, which may never happen.
This is where the second part comes in (ir_cron.py), when failing to
execute crons, we check if the failure was due to bad module state
and if an arbitrary amount of time (5 hours as of this commit) has passed
since the last time it was supposed to be executed, if it is the case, it means
that the cron execution failed around 5 * 60 times (1 failure per minute for 5h)
in which case we assume that the crons are stuck because the db
has zombie states and we force a call to reset_module_states.