Before this commit, an user could only use the coupon form if he didn't perform
any ajax request (eg: change quantity, already sent a code..).
Since the cart html would be reinjected with theses ajax requests, the click
event would not work afterward until the page got fully reload.
Now, we changed the jquery click binding to work with dynamically injected DOM
Assuming that `field.cache_key(record)` is independent from `record.id`,
compute the cache key once for all records, and avoid using `browse` on all
record ids. This makes `get_records` about 20 times faster.
This has a good performance impact on `field.modified_draft()`, which is used
during onchanges for invalidating fields.
Before this commit:
1. If the website's homepage is unpublished and a public user naviguate on it,
it will log an access read error in the server. The user won't see the error
though.
2. If the user can't access '/', we serve the first menu's page instead.
This first menu's page can be an unpublished page, resulting in a 403, which is
not convenient.
3. Menus are sorted by sequence, then the ORM sort them by write_date.
Menu with same sequence will be sorted differently every time you edit one of
them. (This issue get hidden/solved if user edit and save the menus with
"Edit Menu" since it will recompute every sequence.)
- Create 3 pages 'A', 'B', 'C', with 'Add page in menu' enabled
- Menu is now 'A B C'
- Edit website.page B (in property dialog), it will write on the page's menu
aswell
- Menu is now 'A C B'
Now:
1. We prevent this error by ensuring the page is published and so can be read
by anyone before accessing its properties.
2. We serve the first menu's page that is published
3. We sort menu by id after sequence to keep original order
This closes#21259
Before this commit, if there was a menu entry linked to an unpublished
website.page, the menu would be shown. For restricted users, they would land on
a 403 forbidden.
Now, we dont show website.page's menu if user can't access it.
This closes#21328
An agenda for an event separates tracks by days and display them taking
into account the event timezone.
But when separating by day the timezone is not taken into account and a
track could be displayed on the wrong day.
opw-803610
closes#22170
Before this commit, if a website.menu had a URL set to null, it would throw an
error when displaying that menu.
It is normally not possible to do so in v11 but after a migration, menus can be
empty. (eg: Using an empty menu to display a divider in a dropdown menu)
Now we return an empty url instead of an error
Purpose
* move notify in message_post instead of always doing it at message
creation
Specifications
* message create should only create a message
* message post should be in charge of calling the notification process
As this class has grown a lot some methods have been put a bit anywhere
in the file. To prepare future improvements it is easier to regroup
them a bit.
remove_accent from mail_alias is also moved to tools in order to separate
tools from business or class specific code.
This commit b335ae0348 previously sent currency instead of currency_id on
/website_payment/transaction route resulting in a cast error.
Now, we send the currency_id as the route expect
This closes#19468, closes#22165
Recently, a few tours started failing in enterprise. The reason is that
there is some code in the e-commerce which folds the navigation bar
(with the page names), including the shopping cart counter. Some tours
depended on the presence of that counter, and fails in enterprise, when
more modules are installed and the folding code is more likely to
actually run.
In this commit, we do not fix the core issue (not hiding the cart
counter), but we work around the issue by slightly changing the tours to
make them pass. I believe that the website team will make that properly
work soon.
An activity is always created with sudo, so it's useless to set the
image and the name of the "Administrator" all the time.
Now the image and the title of the assigned person is displayed.
opw:802759
When adding more than one recipients on mails a traceback appears.
This was caused because instead of doing a name_get by providing the partners ids as a list, we send them as arguments.
Which wasn't valid because name_get except a single argument.
opw #804691
before this commit, the selection on res.company was by default hiding the country prefix. THe option was not available on res.company view.
We fix the default behaviour and add the option in the res.company view in debug mode.
Should be from hr.employee
At a8326cc6 source model inconsistence was introduced but the bug was revealed
only after 55549f1e where it kept the wrong one
Fixes#20203
PS: this action should be removed in master in favor of hr_org_chart module
Add a company field on the maintenance equipment, equipment categories, maintenance request
and maintenance team (maintenance users from a company do not see equipments, categories
and requests from another company and Equipment Manager can create the maintenance teams).
This field should be required.
This commits closes#21997
@kangol: diff in addons/website/models/ir_http.py is for existing db
It can be ignored in master because required will be apply
Revert 6cb12273e2 which reverted
08d48b0fff.
Issue was the support for sub-parameters (aka @param {type} foo.bar)
where the "parent" parameter was not formal (only present in a
function's docstring, but not in the function's parameters list),
subtype creation would fail to find a root parameter to attach the
sub-parameter to.
This has not actually been fixed, but for the specific case where the
formal parameters list is *completely empty* we fall back on a list of
the docstring's parameters, which works well enough for this case.
Steps to reproduce the bug:
- Create a routing with a Product Location of type view
- Create a MO with this routing
- Click on "Plan" without clicking on "Check for Availability"
- Complete the work orders
- Go back to the MO and try to put it in state "Done"
Bug:
Impossible to set the MO on state "Done". By clicking on "Mark as Done",
it returns:
You cannot take products from or deliver products to a location of type "view"
opw:803580
Current behaviour when duplicating a record:
apply copy override in the user language (e.g. "%s (copy)")
copy the previous term in all the other languages (including)
So if product was named:
cheeses (en)
kaas (nl)
fromage (fr)
Duplicating the product, while in French, will result into:
cheeses (en)
kaas (nl)
fromage (copie) (fr)
This is a problem if there is a unicity constrain on the field, it will be
raised (there is already a product named 'cheese')
After this PR:
Duplicating the product, while in French, will result into:
fromage (copie) (en)
kaas (nl)
fromage (copie) (fr)
This applies **only** if there is an override of copy
This is detected by comparing the old and new value for the user language
Fixes#7010Closes#22052