When a user connect to /web/database/manager directly without the
login page before, the request don't have registry.
When the user click to backup a db, a traceback was raised:
return request.registry['ir.http'].content_disposition(filename)
TypeError: 'NoneType' object has no attribute 'getitem'
Because it was impossible to call content_diposable from ir_http
without registry.
Now content disposable has been moved in http.py and is callable from
anywhere.
This commit closes#13192
This commit closes#11583
The call to the web_editor is made through an iframe with some get
parameters. While not really a problem in itself, this has the
disadvantage of generating long URIs. In some case, since all the
fields in the views are included as a GET parameter, URIs can be
generated that go up to several thousand characters. Most servers will
return a 414 for such URIs, preventing the edition of the mail
template in the view.
To avoid this problem, this commit extends the 'html_frame' widget and
blacklist 2 fields that can get too long once encoded.
Ideally, it would probably be better to stop sending all the fields and
simply add the *needed* fields one by one, but since it's difficult to
know exactly what fields might be needed and this is stable, I'm gonna
go with this 'workaround' but conservative fix.
opw-685646
When you backup 3 dbs with the database manager, you had 3 times the warning.
Underscore is not loaded, so _.once not available.
This commit closes#13173
When action_done is called with moves without pack operation, the pickings
linked to the computed moves must be in state done and the date_done must
be set on each picking.
opw:685145
In purchase, a special key is set in the context to simplify the name
of the picking type: instead of the normal name, only the name of the
warehouse is used. This is problematic if more than one incoming picking
type exists for a given warehouse, as it prevents you from being able to
differentiate them. Asking users to modify the view to remove the
context key seem a bit too much to ask for something that should be
simple.
It is my understanding that this was implemented only for cosmetic
reasons, but I am willing to assume that having to select
"YourCompany: Delivery Orders" instead of simply
"YourCompany" for people who only have one picking type should not
be too disruptive or obscure.
opw-685751
The form builder offers the possibility to add a "Custom File Upload"
field. When the user clicks on "Send", an error occurs ("An error has
occured, the form has not been sent.").
This is because we try to send a mail linked to "mail.mail", which
doesn't make sense.
The case was actually taken into account in the code, there was just an
oversight in the code.
opw-684040
* This new button is a behavior change, but this is needed for big databases with a lot of statement lines to process. Indeed, in that case we prefer to load the widget as soon as possible and thus let the user process the lines manually or click on that button (but at that time he knows why it takes time).
* Opimization of various method in order to speed reconciliation and view opening : added indexes, direct use of sql queries...and also removed the code that was looping on open debit/credit to propose a sum of entries to match the statement line's amount, because it was a little greedy and wouldn't give accurate results most of the time.
This is a following of revision
ab8a93c852
This revision solves a new case:
when quickly performing a second search
after one which has not been resolved yet in a kanban view, and the second
search is resolved before the first, it was not possible to load the form
by clicking the card of the kanban, it leaded to a
`Could not find id in dataset` web client error
This was because the ids of the dataset were altered with
the ids of the first search (the one that lasted longer), while
the records displayed were the ones of the second search
(the one that finished first)
opw-682362
Properties depends on with which companies the records
are browsed.
When retrieving the fiscal position as sudo (from a cron), we should force
the company from the context.
After https://github.com/odoo/odoo/commit/4162b8f as the context is force in get_fiscal_position,
we should call this method with a company (and not pass the company in the context).
This has been forgot in https://github.com/odoo/odoo/commit/fe92dea
opw-684802
During the import of a file, if the connection is closed (timeout,
server shutdown...), a traceback appears.
This is because `error.data.arguments` is not defined in this case.
opw-682104
Inspired from e2d16ea
When cancelling a voucher from a customer payment receipt,
the voucher lines linked to the deleted account move lines
have to be updated by clicking on button "unreconcile".
opw:683258
Use case:
- Have a stockable product A, with enough quantity on hand
- Have a stockable product B, without enough quantity on hand but
configured on "Make To Order"
- Create a SO, confirm.
The picking is in status "Waiting Availability", althought one product
is available. The picking should be in "Partially Available", which is
actually the case if we simply "Reserve" it manually.
opw-683974
When double-clicking on the statusbar widget, two calls to write are
performed. This can cause unwanted behavior, and when the `write` method
takes a lot of time to process, it's not possible to prevent it
server-side.
Courtesy of @gurneyalex and @aab-odoo
Closes#13134
opw-686025
FORWARD-PORT UP TO SAAS-6!
When double-clicking on the statusbar widget, two calls to write are
performed. This can cause unwanted behavior, and when the `write` method
takes a lot of time to process, it's not possible to prevent it
server-side.
Courtesy of @gurneyalex and @aab-odoo
Closes#13135
opw-686025
When a request fail due to a database concurrency error, the request is
replayed. However, the `mail` overwrite of /longpolling/poll requests
modified its arguments inplace, which lead to a sanity check to failed
in case of retry.
Fixes#13121
An issue occurs in the following use case:
- Enable "Bring goods to output location before shipping (Pick + Ship)"
- Create a SO with 2 lines. 2 Deliveries are created, Pack and Ship.
- Go to "Procurement Exceptions", and cancel one of the 2 lines
- Go to the OUTgoing shipping, "Force Availability", and "Validate"
An error occurs: "Cannot unreserve a done move". The system tries to
unreserve a move which is actually cancelled.
Actually, it should not be necessary to unreserve this move, since no
quants were actually reserved in a first place. The fix ensures that, in
this situation, we don't try to unreserve a move with no quant reserved.
This should be safe to do it in all cases, but better be safe by adding
the condition `if 'no_state_change' in context` to impact only this
specific use case.
opw-685650
Inspired from e2d16ea04a
When cancelling a voucher from a customer payment receipt,
the voucher lines linked to the deleted account move lines
have to be updated by clicking on button "unreconcile".
opw:683258
Before rendering the radio button, the radio button must be unchecked
to ensure to take the last value checked.
Step to reproduce:
-From main menu, click on 'Contacts'
-Click on 'Create'
-Select 'Company' value on company_type field
-Save or not the contact
-Return in the main contact view (click on breadcrumbs)
-Click on 'Create'
Bug:
The default value on company_type field is 'Company'
but the fields that should be hidden are visible (example : parent_id field)
After the fix:
The value of company_type field is 'individual'
opw:684847
An issue occurs in the following use case:
- Create an automated action
- Choose a Related Document Model
- Select records to filter (click on "Select Records")
- Do not save, but cancel instead
- Create an automated action once again
The filter domain keeps the same value than previously, forcing the user
to refresh the page to get rid of it.
opw-683214
At the bottom of each blog post there is a link to the next blog post
of the blog. If the current blog post is the last, the next blog post
which appears is the first one, which is ok. However, if there is only
one blog post in the blog, when viewing it, the next blog post which
was proposed was the current one (now nothing is proposed as next blog
post anymore).
Use copysign to take into account the sign of the base amount which includes the sign
of the quantity and the sign of the price_unit
Amount is the fixed price for the tax, it can be negative
Base amount included the sign of the quantity and the sign of the unit price and when
a product is returned, it can be done either by changing the sign of quantity or by changing the
sign of the price unit.
When the price unit is equal to 0, the sign of the quantity is absorbed in base_amount then
a "else" case is needed.
opw:684459
This test is ran in the backend and, if we do not mark it as post
install, the dependencies of the web module are not installed.
The webclient will then errors like "View type 'kanban' is not present
in the view registry".
The _constaints definition is done at server load, not when a user is triggering
the check. The constrains are already translated, no need to try translating it
again.
In the dashboard view, it's possible to use the "Group By" feature.
However, when clicking on a link on any dashboard, a traceback might
show up.
This is because the context key `group_by` is kept when clicking on an
action. If the destination view is a list/kanban, and the destination
model doesn't have the field, the system will try to make a grouping by
a field which doesn't exist.
The solution is to remove the `group_by` key from the context, since it
doesn't make sense to send it the the destination model.
opw-684568
When a user try to create a new page info, he is redirected
to the /page/info because the xmlid already exists...
The problem is that this view need to be rendered via the
controller /website/info which gives some extra values (version, ...)
The fix for v8 is to redirect /page/info to /website/info.
In V9, the behavior is changed and one page info-1 will be created.
But this fix is also required for direct access to /page/info.
To do in master: maybe use another xml_id that this basic name 'info'?
This commit fix issue #8022
A traceback can occur since we build labels for 6 periods but we get
data for 7 periods.
This reverts commit 48fa0a5f6c and fix the
unreachable condition.
Steps to reproduce:
- Enable advanced routes on the Warehouse config
- Set the route "Pick+Pack+Ship" on the YourCompany Warehouse
- Set the route "Pick+Pack+Ship" to be selectable on the SO-Line
- Create a SO with the SO-Lines containing this routes, confirm, 3
pickings are created
- Force the availability of the Picking to the customer, transfer.
The Picking is set to draft, a backorder is created containing all
products which should have been transferred. It is not possible to
transfer this newly backorder neither, the same thing happens on the
backorder.
When rereserving while doing the transfer, it should not change the
state of the move as it would forget when availability was forced.
opw-683740
/!\ This is a backport from saas-10
When duplicating a question in the FAQ Roller snippet, the cloned
question was opening the original answer instead of its own answer.