The `stock.picking`.`state` field is set
to track the change of values
(`track_visibility='onchange'`)
It's supposed to write the state changes
within the picking thread.
It does not work properly for function fields,
as the onchange tracking is designed to work
only with direct user changes, direct
`write` operations on the record, while,
here, the state value changes according to the
picking moves changes, for instance.
To solve this, the tracking changes have to be
hooked within the `create` & `write` methods
of the model on which this function depends on.
Therefore, from now, when changes are
performed in the moves, on the fields that
could lead to the picking state change, we
force the tracking of the picking state.
In addition, we had the `mail_notrack` key
in the context when creating back orders,
to avoid displaying the back and forths
in the state
e.g. when transferring 9 units on 10, the
changes were displayed as below:
Draft -> Waiting availability
Waiting Availability -> Ready to Transfer
Ready to Transfer -> Draft
Draft -> Partially available
Partially Available -> Waiting availability
Waiting Availability -> Transferred
opw-666317
sometimes, the web client receives unsubscribe notification and an extra
notification on that channel. This is then followed by an attempt to
rejoin the channel that we just left. This commit prevents that
situation to occur.
For that, it needs to know the notifications received by the bus in one
batch, not one at a time.
The mail template rendering system use "autoescape" for subject, body,
email_to, ...
Using autoescape is good for the body, but for the subject it means
variables insertions have to be marked as safe.
This commit add another environment without autoescaping enabled for the
subject field.
From https://tools.ietf.org/html/rfc2822:
The "Subject:" and "Comments:" fields are unstructured fields as defined
in section 2.2.1, and therefore may contain text or folding white space.
2.2.1. Unstructured Header Field Bodies
Some field bodies in this standard are defined simply as "unstructured"
(which is specified below as any US-ASCII characters, except for CR and
LF) with no further restrictions.
closes#10547
opw-659231
opw-666801
opw-665863
In most backend views using CTRL+P to use browser printing would only
print an header without the content.
stumbled-uppon-when-checking: opw-659430 opw-660763
In function _compute_expense_totals, the debit and credit of an account
move is computed in the right currency rate according to the date.
Then in function _prepare_analytic_line, the amount of an analytic line
must also be computed in the right currency according to the date.
opw:666538
The action "Technical Translations" was not retrieving the correct translations.
Since 9.0, the translations names no longer contains the name of the model (in
the form "field:<model>,<name>") but are records on ir.model.fields (in the form
"model:ir.model.fields,field_description:<model>_<name>").
The translations of type selection are style a different type (type 'selection').
Create a method that will find the linked fields and retrieve the correct
translations.
Fixes tw:reis_pt/status/687419541199187969
In most backend views using CTRL+P to use browser printing would only
print an header without the content.
stumbled-uppon-when-checking: opw-659430 opw-660763
When a PO is created automatically from a procurement, the currency is
the currency of the connected user, which might be different from the
currency of the pricelist.
The fix set the currency to the currency of the pricelist.
opw-665573
To read a quotion, the user must have the access rights or the token
of this quotation. Then if a quotation is sent by email with a link
to access it, the token of the quotation must be in the link.
opw:666618
when a user is disaninactivated, it makes sense to disaninactivate his/her
corresponding res_partner. This had the unfortunate effect of changing
the result of the channel_slot call for the direct messages with this
user. As a result, the discuss interface was not happy. This commit
does what it needs to keep the discuss interface happy. That's what we
want, right?
When deleting the resource associated to a mail statistic,
e.g. deleting the lead associated to a statistic,
the statistic could not longer be opened.
opw-656738
Since rev. 100d604, the web.session module is always loaded in external pages,
even if no operator is available. Thus, server_url should always be computed.
@navbar-height was used in chat_window.less since rev. 8397abd but wasn't
defined in the external_lib bundle (light bundle to embed im_livechat in
external pages).
This rev. also fixes some glitches of the chat window due to missing
font-awesome, and global rule 'box-sizing: border-box' on all elements.
The progress bar in the web kanban module uses the option 'title' in
order to display the title of the gauge. However, this option is not
taken into account when it comes to translation, because the translation
of such option is not accessible at the JS level.
The fix defines the title of the gauge as the parameter `title` of the
widget. Indeed, such a parameter is in the list of parameters translated
and made accessible in the JS layer (see variable TRANSLATED_ATTRS in
translate.py). With such a modification, the translation is accessible
on the node.
opw-666577
The company currency should be the company currency of the invoice, not
the company currency of the account journal linked to the payment.
The following use case causes an issue:
- invoice in GBP
- journal of the invoice in AED
- journal of the payment in CHF
In this case, residual_company_signed will be considered to be in CHF
while it was recorded in AED.
opw-666595
When clicking on 'load more', the kanban view only needs to add tags
for new records displayed by load more ; the existing records already
have their tags so one duplicates them.
The client action had a weird issue: going back from a breadcrumb to the
client action made the searchview (filters/favorites) buttons disappear. This
is caused by a weird behavior of the control panel. This fix is the safest
for now, but working on the control panel behavior would be a better long term
solution.
Issue: On the front-end try to see the statistics and change tab, the graph is very messy.
(The chart width equal 5px when the bootstrap tab is closed)
Use trigger resize to update graph but use trigger is an error, must call all update directly.
opw-666405
When doing a copy of a google drive spreadsheet (in google_drive.py's
copy_doc method, using the following google API call
https://developers.google.com/drive/v2/reference/files/copy). Google
server return an error if we used the old spreadsheet KeyId.
The new FileId is available in the AlternateLink and this commit updates
it.
similar-to: 00c2a99
opw-647222
Basically, this apply what was done in 87090c1b8b
everywhere where the events begin & end dates are displayed,
so all the events dates displayed in the front-end are the same,
so they are all within the event own timezone instead of the
user browser time zone.
opw-667065
This is related to revision 2ebbcba33a
The above revision introduces a regression: the ability
to configure pricelist items applied on product categories.
If you configured a pricelist with items applied
on products categories, then the first item with a product
category matched all products, even if the products were
not in the according category.
This is because the condition checking that the product
is within the pricelist item product category has been
completely removed, by the above commit.
opw-666059
Apple devices have a patented feature called rubberbanding that allows
the user to scroll past the end (or beginning) of a document. Browsers
on IOS have this same feature.
This is not an issue most of the time. But sometimes the rubberbanding
happens to the entire document.body of the POS, which is not
ideal. Rubberbanding is already disabled partially by
Chrome.disable_rubberbanding(). But it is not perfect. The most
important issue that remained is what happens when a scrollable element
is either at it's top or bottom and the user *initiates* a scroll past
its beginning or end. So scrolling an element all the way to the top and
then continuing to scroll did not trigger the problem. If however the
element was already at the top and you would initiate a scroll up the
scroll would fall through to the document instead and the entire POS
would scroll.
What aggrevates the issue from a UI point of view is that as long as the
rubberbanding animation is not finished, any subsequent scrolls will
target the entire document as well. Normal treatment of scrolling
resumes only when the animation has finished and the document is in the
center of the screen again.
Stopping this behavior is not trivial. The only know solutions are all
built around stopping touchmove events, which we already did.
This patch makes it so that we also stop all touchmove events that
trigger the unwanted behavior described above. It ensures that we stop
touchmove events that would scroll an element above it's top or below
it's bottom. To do this we have to manually determine whether or not the
element is scrolled all the way to the top or bottom and we have to
manually determine the direction the user is swiping.
To read a quotion, the user must have the access rights.
Then if a quotation is sent by email with a link to access it,
the user who clicks on the link must be redirected to the login
page.
opw:666618