An update by a list of commands is now guaranteed to have at most three SQL
queries to update the relation, whatever the number of commands and records.
* account, hr, hr_recruitment, maintenance, mrp, sales_team, stock
Adaptation of https://github.com/odoo/odoo/commit/a79d83e436e5e965d59663d4a06a0f8a62d8f694 for saas-18 new colors.
Also change back all color defaults to 0 instead of 1 (see
mentioned commit: they were changed from 0 to 1 as in saas-16
the color was applied to kanban headers which had to be gray
(the old color 1) by default).
Also add default violet color for 'Customer Invoices' and 'Vendor Bills'
dashboards.
In python3, items() and keys() returns iterators.
Modifying a dictionnary while iterating on it may trigger an error:
dictionary changed size during iteration
Go to General Settings, click on 'Change Document Template', and
in the opened dialog, click on a template.
Before this rev., it automatically closed the dialog, which was
not really convenient.
This rev. introduces a new field widget (image_selection) for
this use case, and ensures that the dialog doesn't close when
a template is selected.
Test written by @mba-odoo
In this commit, we make sure that if an onchange in a x2many modifies
another line, then the new data is properly shown. This is quite
tricky, because the field x2many ignores the full extent of the changes.
Also, we obviously want to preserve the editing state (focused field,
...)
So, what we actually do is to rerender the full x2many (minus the new
line) to make sure that we preserve the correct row order.
Note: thanks to MGE for the test and some preliminary work.
Since the rev. https://github.com/odoo/odoo/commit/2728fe1ec1ac7e99819d0f30f29a1814b00c82a4 the onchange create
command (0) send the virtual id as second argument. This argument is sent
back from the server and can then be used by the client.
As the client knows the virtual id, it can easily reuse the datapoint created
for this record and thus avoid creating a new one.
Creating a new datapoint can potentially lead to problems if the record has
for example specialData, that won't be kept.
In a situation where one transaction is updating a quant via
`_update_available_quantity`and another concurrent one calls
this function with the same argument, we’ll create a new quant
in order for these transactions to not rollback.
This commit adds a method to deduplicate these quants.
Purpose
=======
We shouldn't compare the validity date with the begin date of the pager to determine whether a quoation is expired or not
Furthermore we shouldn't let the template compute these kind of things.
Specification
=============
Add a computed field is_expired. Use it in the template.
Purpose
=======
When you want to send an email to a contact without an email address set, you get a wizard to enter the contact email.
In master, you get the full contact form
You should get the simplified form view (like in 10.0)
The FieldDomain allows to open a list in a dialog to display the
records matching the current domain. In this dialog, clicking on
a record should do nothing (this was the behavior before the new
views).
Before this rev., it actually tried to open the record and it
produced a crash.
Scenario: Go to any list or kanban view: go to next page and set a
filter that matches less that 'limit' record (e.g. less than 40),
but at least one. No record will be displayed, because the offset
is kept for the search_read.
This rev. ensures to reset the offset to 0 when a search is done
using the searchview.
The app switcher in the enterprise branch introduces a new way to whitelist the
element in the app switcher. This commit apply this mechanism to the mail windows.
aka 'Indian localization out of the box'.
Details:
GST introduced, module refactored.
Update GST chart of account, tags and SGST, CGST & IGST taxes.
Replace vat label with GSTIN in reports & views.
Added HSN Code field and display it on invoice form view & report.
Added pin number field in res_country_state.
Show the total amount in words based on Indian numbering system on form view of customer/supplier invoice/refund.
Arrange address format of India country.
l10n_in_schedule6: Introduce new GST taxes, chart of accounts & account tags.
l10n_in_sale, l10n_in_purchase, l10n_in_stock: added modules to add hsn code and replace vat with gstin in sale, purchase & stock reports
Was task: 33241. Was PR #18952
Here is what could (sometimes) happen in community:
- the point of sale tour is started by the runbot
- it loads the '/web' url
- this instantiate the mail client action (init)
- the tour sees that the POS link is in the dom and clicks on it
- the action manager destroys the discuss client action (before its
start method is called)
- the destroy method from the client action is called, this.$buttons
is not set, the destroy method causes a traceback
Since python3 compare boolean and string is not
possible anymore. Priority field on stock move line is
not required and thus it happens that we compare a set
priority with an unset one.
In order to correct it this commit only compares move line
that have priority and if tey are not use the default priority
1.
Orderpoint has been removed by this commit 0e4f3bb959
However it was still used in the overide of product write in
order to avoid archive a product that still have active orderpoint.
This commit readd the field orderpoint_ids
The rationale for the need of a merge move mechanism is that, with the new default view,
having multiple stock move for the same products is confusing. The idea is that if a move
is confirmed in a picking already having a move with the same characteristics, we update
the existing move and unlink the new one. That’s why it’s done at the end of `_action_confirm`.
In some cases, merging moves is unwanted (backordered moves for examples). Therefore, we chose
to add a kwarg to `_action_confirm` in order do control the mechanism.
Before when comuting state picking there was a computation
among all moves in order to guess the picking state.
However this code could be reuse in other scenario for
example in merge moves.
In order to avoid code duplication this commit move the
part responsible for the state computation among moves
in a specific method inside stock move file.
When the mockserver handles an unimplemented route, it just log an
error. This is annoying because it does not break the QUnit suite, so
if the developer does not look at the console, it will look like the
test suite pass. However, the runbot will see that as an error.
With this commit, we throw an error to force the test suite to fail in
that case.
Before this commit, there was a crash when sorting a one2many in a form view.
This is due to the fact that the event from the one2many bubbled up to
the main form view, which basically assumed that it was supposed to sort
some sub one2many.
It could be seen for example when editing a 'attribute' in a product
form view (need to activate variants), then sorting the 'attribute
values' sub one2many.
With this commit, we simply stop the event propagation at the correct
level.