Before this commit, website needed to be installed to edit
a HTML report because the context `inherit_branding` was not
correctly passed.
Credits to @sle-odoo
If node is not installed (missing dependency), the user is not aware of the
source of the issue as it can not be displayed in the css_errors or logger.
The error is
/usr/bin/env: ‘node’: No such file or directory
which contains unicode quotes.
Does not fix#15057 but at least say the source of the problem.
When a journal item duplicated, the matching number is duplicated as
well. This will create inconsistencies in the information displayed to
the user, and moreover it will not allow to reconcile the item anymore.
opw-704902
When a journal item duplicated, the matching number is duplicated as
well. This will create inconsistencies in the information displayed to
the user, and moreover it will not allow to reconcile the item anymore.
opw-704902
Since saas-10, you can customize the background size and position
of snippets. The "contain" option was not working for the s_banner
components as overridden to "cover" by the snippet specific style.
On a picking, the UoM of the weight is the default UoM for the weight
category. However, weights in Odoo are always considered to be
kilograms.
This might lead to inconsistencies between what is displayed on the
picking and what is printed on a shipper label.
opw-702564
`set_multi` uses the company of the current user.
As the property is created in sudo, the company of the admin may be different
than the one of the current user.
Before this commit, setting a different pricelist on a partner when logged in a
different company than the admin, the change had no apparent effect (was
creating a property for the admin's company).
Set `force_company` in the context to always set the one on the current user.
set_multi ignores if the same as the global rule to avoid bloating the table.
Closes#14984
The witdh and height auto has apply on image, when the mass_mailing
clean_for_save is called, the image is considered as invisible because
the with is temporary null.
opw-692805
- Y axis : according to 12 hour or 24 hour format
- Event title : following time format in preferenced language
NB: The conversion from 'A' to 'TT' to match fullcalendar v1 should be
removed when fullcalendar is updated to v2, as the syntax will change.
See : http://fullcalendar.io/wiki/Upgrading-to-v2/
Backport of commit c1d813ec1c
opw-704237
*street fields should be editable only if we modify the main partner address
*creating a res.city through the m2o should has default country and a domain
By default, the default warehouse of a sale order is the first warehouse
of the company of the user creating the sale order.
In the case of a sale order created from the website,
the user who is creating the sale order is the superuser,
a.k.a the administrator.
There was a big issue in the context of a multicompany database,
with an administrator changing of company:
the sale orders coming from the website would suddenly change
of company, which is wrong.
This was even more severe when the admin changed to a company
which had no warehouse defined:
It was then impossible to create the website cart, as no default warehouse
was found, while the warehouse is a required field on the order.
This revision ensures that the cart / sale order is always created
under the website company
opw-704557
This commit moves some code in order to compute all values of taxes from the tax template in _get_tax_vals(), to allow easier overwritting in localization. Courtesy of David Arnold. Was PR # 14982
The price suggested thanks to the "Compute from BoM" button only takes
into account the price of the products listed in the BoM lines.
In v9, there was a "Recursive" option that provided the possibility to
compute the prices of all products implied in the BoM, recursively. This
option has been removed since it was leading to a "black box" behavior
that was unclear to the users.
However, limiting the price computation to the BoM lines only is too
restrictive since it doesn't even take into account the phantom BoMs.
By using the `explode` method, we have access to:
- all products not manufactured
- all products manufactured which are not kits (phantom BoM)
It means that the cost of manufactured products (not kits) should still
be computed before the product itself.
opw-697866
When a product template UoM is different from its BoM UoM, the price
suggested thanks to the "Compute from BoM" is incorrect, since it doesn't
apply the conversion rate between the product template UoM and the BoM UoM.
This is because we try to fetch the product UoM through the BoM. However,
if the BoM is not specific to a product.product, the field bom.product_id
is empty.
The issue is introduced by revision
d465346f1e
Raphaël actually meant
`res_ids = data.mapped('res_id')`
Indeed, there is no `res_ids` field on `ir.model.data`,
but there is a `res_id`.
In addition, the same code is written correctly in the method
just above this one, `_object_find`
opw-704592
In 07bf7bf4f3 a fix was introduced for windows server UTC timezone.
It is possible it would be helpful in some situation to also have it in
setup/odoo (for example if odoo was installed on windows in some other
way than the Installation bundle).
opw-693764
Up to now, there was no possibility to format a date
within a specific language, such as the customer
language. The date was always displayed with the format
YYYY-mm-dd.
(There was for the datetime, thanks to format_tz, but
not for a simple date without time)
This revision adds this possibility, but doesn't change
the according email templates
(such as the invoice date on the invoice email template)
as it would require to update all translations, in
the .po files and on transifex.
If a user absolutely want this, he has to add
the call to `format_date` himself, manually.
opw-704260
With the previous condition, the `final_date`
was not recomputed when the number of repetitions
(count) was changed alone, without changing `recurrency`
(nor with other fields, such as start/stop date)
This revision makes sure to recompute the `final_date` when
there is a change in the number of repetitions without
changing the `recurrency` fields, when the event is recurrency
and the end type is `count`
opw-703812
The double inversion introduced by 6e063188 is done to catch default 0
values.
For example '>= -3' is transformed in "NOT what is found by < -3".
There was an issue with '> 0' and '< 0' since in these instance 0 don't
match and the inversion must not be done.
opw-703929
If the user enters an incorrect grouping format, login won't be possible
anymore since the web client will crash when parsing the field value.
For example, "[3, 0,]" will trigger the issue.
Complement of commit 5959c41631
opw-704388
Mixing the use of btn-xs and btn-sm was not good for design.
This commit use btn-xs for "add a filter" and "edit domain"
buttons to improve elements alignment.
The "in_dialog" option of the domain field was not working correctly
when the field value was falsy as it did not consider it to be
"[]" in that case (as it is done without the "in_dialog" option).
Same goes for the dialog which displays the matched records.
Some domain fields are initialized with a model which depends of another
form field value. Sometimes, this value is False and the domain selector
cannot be used during that time (and was even performing useless RPC).
Now, in this case, the field domain is fully replaced by a message
which explains that a model have to be set. If you don't want this
message to be shown, you still have the possibility to not show the
field domain when there is no model thanks to the "invisible" attrs.
* improve string of action that creates the 'more' menu entry;
still not the best label but at least less error prone
* improve help tab by adding comments for model and records
variables
* User renamed to Cron User which is the uid used to run
the scheduled action
* Clean 'repeat every' option to make it easier to understand
* Priority field should not be named sequence
In 3041efb, it was introduced a partner_id reset when project_id is
False, but this causes you can't apply default values to partner_id
directly.
One use case where happens:
* Go to Sales > Customers.
* Select one customer.
* Click on the smart-button "Tasks".
* Create new task.
Before this commit, the customer where you come from is assigned.
After this, no partner is selected.
If the user writes a password larger than 4096 characters at the login
screen, it causes a crash instead of displaying the "Wrong
login/password" message.
The Python library used to hash password (passlib) is by default limited
to 4096 characters. Above this limit, it raises an error (source:
https://pythonhosted.org/passlib/lib/passlib.exc.html).
Allowing a password larger than 4096 is not necessary, we just limit the
field maximum length since such a situation should happen because of an
incorrect copy/paste.
opw-704110
When you pass a dict to `.with_context()`, it completely replaces the context,
removing the language from it.
This causes that when the publisher publishes a slide in another language, the
template gets mixed languages rendering.
Closes#15017