We force to recompute the taxes on all lines when we change the fiscal position.
That was already done in backend, with the onchange.
But @api.contrains allow to do it on each write on fiscal_position_id field.
@api.Depends will not work because it is not a computed field.
m2m_tags in list editable view try to get color on validation, the field is invalid because the mutex is pending.
Fix: use internal_set_value (don't re-rendering)
Issue: steps to reproduce:
- Create a new instance, install "sale"
- Create a product "prepayment", service, invoice on ordered qties
- Create aproduct "project phase", service, invoice on delivered qties, manually track delivered qties
- Create a SO with once prepayment, and twice a line with "project phase". ( the name (description) of the lines should be "phase 1" and "phase 2" )
- Create invoice => The prepayment is invoiced
- Go back to the SO, try to change the delivered qties of the first phase to 1
- Save => error, odoo doesn't let you save.
This allow to keep route with an SignedIntConverter with more
priority than a StringConverter.
The default wight is 100, so force the weight to 50 (default intConverter)
was also a fix. But we decide to rewrite the SignedIntConverter based on the
intConverter of WerkZeug.
So now, a controller '/module/<string:xmlid>', will be matched after
'/module/<int:id>". (Same behaviour that before the commit 800ae13712)
Part of the number formatting overhaul done in
5c9b4556e3,
4b003afd0a,
261ccf7c56 and
6e945de681. The only place left where we
didn't correctly format the numbers was in the tendered column on
the payment screen. This fixes that by not directly displaying the
inputbuffer anymore. Instead we pass the payment line amount through
format_currency_no_symbol() and display that instead. We also give a
default amount of 0 to parse_value so it doesn't return false for an
empty string.
When receiving an email containing two attachments(.docx, .odt) with the chatter
the icons displayed for the two attachments were the icon of a zip file instead
of the icon of a document file.
ps: the dictionnary "mapping" with the mimetypes and the signatures has been
changed in a tuple of tuples to keep the order of the mimetypes because
all the document files (.docx, .dot) begin by 'PK\x03\x04' and all the
zip files by 'PK'.
opw:658706
Searching on res.partners with domain [('user_ids' , '!=', False)]
will currently be translated into a huge "ID IN <...>" query,
with the IDs of all existing users.
On a database with a lot of users, this can be measured
in seconds (e.g. 3-4 seconds with 500k+ users),
leading to significant delays in email delivery.
Using a direct lookup in res.users is more direct and faster.
With a UPS delivery type carrier,
`ups_get_shipping_price_from_so` can return a `ValidationError`,
making the carrier unavailable for this order.
Nevertheless, the iteration checking the availability of the remaining
carriers must be ensured.
opw-657161
When a user clicks on the `Send to all` button in a mass mailing form,
then all emails (sometime thousands) are sent inmediatly.
With this fix, a confirmation dialog appears
and the user is asked to confirm this operation.
This simple fix prevents common human errors.
opw-659117
Closes#9796
If a kanban tile is moved to another column, in case of failure it
would stay in that column giving the false idea that it somewhat worked.
This commit refresh the kanban view in such an instance.
closes#9837
first half of opw-657863
If an event is moved at another time, its appearance would only be
refreshed if it was successful. But in this particular instance, the
refresh may even be more useful when the change failed.
part of #9837
second half of:
opw-657863
When editing an email template with the wysiwyg,
the `<` and `>` operators are automatically converted
to `<` and `>`, even for the Jinja2 conditions,
therefore breaking these conditions, and the render
of the email templates.
We avoid to use these operators in the email
template, so users can customize the notification
email template without having an advanced
knowledge on how to edit an email template containing
Jinja2 code.
Besides, the line return at the end of the email template,
just after the `% endif`,
is done on purpose as well: the wysiwyg adds automatically,
at the time of this revision,
`<p></p>` at the end of the email template source, but
this cannot be added on the same line than `% endif`,
otherwise this is considered as Jinja2 code, and it's not.
opw-659113
t-field expects a UTC datetime which it then localizes to the current
viewer's timezone (using context tz from the browser), but goal here was
to display the event's own local time, so t-field was provided an
already localized datetime and would parse it as UTC then re-offset it
based on the user's timezone, resulting in a completely nonsensical
displayed datetime.
Just display the localized datetime without reprocessing it (save to
slice off the seconds count)
When making a account.analytic.line(aal) which matches with a SO line with
a product set with invoice_policy != 'cost' then these aal have to be linked
to this SO line.
opw:658821
If the method do_enter_transfer_details is called form the new API, the context
is a frozendict and can not be updated and the previous code would crash.
Copying it before updating.
Closes#9872
The method `product_id_change` has become quite a mess with time as it
gathers a lot of onchanges. Therefore, previous commits were made in
order to prevent unwanted side effects, such as af07b2a0, 1cedcf6a and
136bd723.
This revision fixes the weight which was lost with commit af07b2a0.
opw-658712
When rounding globally, we should not round the tax with the currency rounding since it might introduce some errors.
Also add the field on the company view for user to change the computation method as they want.
* add the branding in translation mode
* change javascript to add the lang in the context (automatically removed in the rte => allow to create record and edit when use an other default language of en_US)
* avoid double saved
When creating a new event,
with just you as attendee,
then edit again the event and add someone else,
the user is twice in the attendee of the event.
This reverts the part done in `calendar.py` of revision 8483ca5
Even when you create an event for a job interview,
this is not mandatory to set yourself as attendee.
You can maybe be added by default, but you cannot
force the user to be set as an attendee of the event.
e.g. An HR officer can schedule a meeting for a job interview,
with the department manager and the job applicant alone, without
himself, thus.
opw-658528
Once set for the loading of terms for a lang,
the flag `overwrite` was propagated to all
other following languages, even if not actually needed.
Use case:
- Installed languages: en_US, de, fr_CH, it
- Update of the `sale` module
- In `load_module_terms`, the system iterates through the languages:
1. en_US: No problem
2. de: No problem
3. fr_CH: The flag `overwrite` is set to `True`,
because the sub-language `fr_CH` should overwrite the `fr` terms
4. it: The flag is still set to `True`, because of the previous iteration,
while it must not.
opw-654042
When attempting to define a goal
using a model that does not have any `inherits`
- which happens most the time-,
it was not possible to choose the
`Field to Sum` and the `Date Field`,
due to the domain set in the view
which is no longer working in 9.0.
The domain is no longer working because:
- The onchange result for a one2many for which
the value is set to `[(6, 0, [])]` is now `[]`,
while, in 8.0, the tuple with the command `6` and the empty
list was preserved
- the empty list `model_inherited_model_ids` is considered as `True` by py.js,
and therefore it fallbacks to `model_inherited_model_ids[0]`, but
as this is an empty list, it crashes.
The solution proposed in this revision solves the issue, while
making the domain applied on these fields less fragile.
opw-658892