Fixes 27280fefa9:
* `partner_id` is an `int` not a recordset
* qweb Response is lazy (the template is only looked up and rendered
when we actually need to send the content over the wire) => the error
would occur outside of the try..except block. Force rendering
(`Response.flatten`) so we can handle the issue here
* Uses the HttpCase interface to contact the server over a new socket
(same as tours & al) because using `werkzeug.test.Client` would not
use the correct cursor (?) and so the test data would not be visible
In case of custom field 'upload file', the attachement
name will be the technical name of the input tag of the
form (aka 'attachments'). It is more user friendly to have
the name of the uploaded file.
If the user selected 'use_create_lots', he should see the text field and
not the many2one. This improves the usability of the barcode scanning in
a receipt, where the lots were not displayed (as it only set the
lot_name).
1- When viewing for example journal items.
2- Now activate a filter that would display no record
Before this commit, the column aggregates of case 2 were the same as case 1.
After this commit, we recompute the aggregate, which ever case we are in.
OPW 777660
closes#20452
A list view can display the sum of all values for one field, using the
'sum' attribute. Before this commit, this sum was not updated whenever
a field was changed (but it worked when adding a line).
Before clicking on 'Change Password' button, a new password must be
written. Otherwise an error was raised: TypeError: secret must be
unicode or bytes, not bool.
opw:777921
- Install Website Live Chat
- Publish a Livechat on the website
Crash on rendering:
```
<img t-att-src="user.image_small and ('data:image/png;base64,' + to_text(user.image_small)) ...
```
Commit 1df6f4c741 fixes a P2/P3 compatibility by including the helper
`to_text` in the QWeb context. However, it was included only for reports
(in `ir.actions.report`), while it is necessary for the rendering of all
templates.
opw-777681
opw-777630
Create an accout.voucher with "Pay Directly" as payment.
You get something like:
D | C
--------------------
Expenses: x |
Cash: | x
However, the expense line doesn't appear in the reconciliation widget
because the payment_id is missing in the account.move.line and then, doesn't match
the search domain for the reconciliation.
To solve it, a payment_id is created for this line in case of "Pay Directly" payment.
-opw: 775167
When showing a list in Calendar, it is always sorted at least by
id. If the recordset mixes real and virtual (recurrent) events, this
will blow up as sort() will try to compare the int-typed real event
ids and the string-typed virtual event ids.
Generate a type-compatible id key for both real and virtual events in
order to properly sort.
Closes#20278
Between v9.0 and v10.0 a pricelist refactoring made it so negative
discounts no longer worked correctly. They should always be
included in the unit price of the product (not to be displayed as a
negative discount even if the option to display the discount is
enabled).
This commit also corrects currency conversion issues when basing the
price on another pricelist with a differnt currency, and when making
the sales order in a company with a different currency than the
pricelists currency.
If the user change a filtered field, the record is not always displayed.
Wrong domain construction. The automatic filter must be use to filter and
remove items from the view for the unselected and not display the selected.
Complement of 5b50284127
The mentioned commit works well when adding a product, but
- changing the quantity
- changing the customer
won't trigger the fix of the included price.
opw-776530
Countries with several official languages often have multiple names for their
states. Allow to translate the state name for such countries.
Some monolingual countries but, yet, with a need of translation of the addresses
such as China or Germany can add the same flag in their respective l10n_* module
Closes#19481Closes#20259
With this commit, we allow an onchange coming from a field to modify the
same field. This was not working for field widgets derived from an
input field.
It could happen in some cases that a rpc coming from a view was not made
with the context of the view (and from the action). For example,
- enable "Lots & Serial Numbers" in the inventory settings
- create a stockable product tracked by lot
- go to the inventory dashboard, on the "receipts" card click on the
three dots and then on "planned transfer"
this link forces the context key "planned_transfer" in the action
https://github.com/odoo/odoo/blob/11.0/addons/stock/views/stock_picking_views.xml#L725
- now add a stock move to move some quantity of the product you just
created
- see that no button appears on the one2many list
- save
- see that a button appears on the one2many list
This is an issue because the read on the o2m at the end is made with the
wrong context. The reason is that when we fetch x2m, we create a new
datapoint of type 'list' which did not reuse the context of its parent.
When we have two moves of the same product and procurement method
different on both, we don't want to merge them, because if a mto and a
mts move are merged together, it is possible to wait for an incoming
that will nerver come as a part the merged move should be taken from
stock
Purpose
=======
Utm links are really useful for website owners but this feature is hidden in Odoo apps. There is nothing pointing to that.
Specification
=============
- Add new module to generate utm pie chart in website_sale dashboard to track website utm link
- Add new option in website settings to install "website_links"
Title: Link Tracker
Subtitle: Track clicks on UTM links
Tooltip: Analyze the efficiency of your marketing campaigns by using trackable UTM trackers (campaigns, medium, sources). Create trackers and follow clicks from the Promote menu of your website. Those trackers can be used in Google Analytics or in Odoo reports where you can see the opportunities and sales revenues generated thanks to your links.
- Add utm chart to dashboard, using nvd3 such pie chart should be easy to implement
- If no data to display > Display a default picture with "There isn't any UTM tag detected in orders".
- Set a real icon to app "utm" since it shows up in homepage debug mode
Use case to reproduce
- Set a product to be expensed
- set the expense_policy to something else than no
- Do a delivery order with a picking
- Validate the picking
-> Delivered quantity to 0 and impossible to create an invoice
if the invoice_policy is delivered_quantity
It happens due to this commit 48ea59d46e
What does it do:
- The move could be generated by an expense.
- If the move has 'no' as expense policy thus we won't add it in the invoice
Problem we can't guess if the move come from an expense or not (limitation).
This commit increments the delivered quanity if the product can
not be expense anymore
opw-777139
The 'new views' refactoring introduced the usage of the "disabled"
attribute in addition to the associated bootstrap class. As a
side-effect, tooltips are never rendered when the mouse is on a disabled
button, since disabled elements do not fire mouse events.
In particular, no tooltip is shown when hovering over a disabled button
of the statusbar in debug mode. This can be observed when opening the
form view of a Manufacturing Order.
We fix this issue by requiring that disabled buttons in a status bar
never be the target of mouse events, triggering them on their
respective parent elements instead.
Before this commit, creating a base_action_rule with model X from module
A and then uninstalling module A would make the database crash because
the algorithm would look for an uninstalled model during the Registry
reinitialization.
i.e. Install project and base_action_rule, create a base_action_rule
depending on model project.task, try to uninstall Project -> BOOM!
This is fixed by checking if the model obtained is None, in which case
we log a warning (for cleanup) and skip to the next iteration (continue)
opw-777301
The image of the form view is set to be `image_medium`. However, the
method `image_resize_images` which is called during create or write
won't resize the image provided.
Therefore, the `image_medium` is not resized, leadnig to potential
issues if the user uploaded very large images.
We change the view to `image`, so that all images are properly resized.
opw-776943