When calling 'set_message_done' on a message which is a needaction for several
partners, the method was executed as root. This was an issue for the triggered
notification, as it was thus always sent to the admin.
For example, when Demo user marked such a message as read, he never received
the notification, but the Admin did, and its notification counter weirdly
decreased, while the one of Demo user remained the same.
The problem occured when the user in the backend (client action) closed the
livechat before the user in the frontend, because we performed the wrong RPC,
and the backend user was removed from the partners following the discussion.
Thus, the messages sent from that point by the frontend user were never
received.
When closing a DM or livechat, we should call 'channel_pin', when unsubscribing
from a channel, we should call 'action_unfollow'.
Commit 2bb55ec adds argument extra_info to the signature of channel_info() in
mail addon. However, this method is inherited from the im_livechat addon, and
its signature hadn't been adapted, causing tracebacks when im_livechat was
installed and channel_info() was called with an extra_info.
- vertically center date and messages separators in threads
- remove notifications in DM and livechat
- order mail demo data so that messages appear ordered (they are ordered by id)
- make sure that DM are pinned (they weren't on the receiver side)
- don't display DM until a message has been sent
- validate message body
- undo snackbar fine tuning
- fix Firefox scroll bug on sidebar rendering (the scroll position was often
lost when the sidebar was re-rendered, seemingly because the width of the
thread changed for a brief moment)
This rev. is related to 3dd79b3d65.
Both `journal_id` and `date` on `account.move.line` are
related from the `move_id` of the line.
Besides, the move associated to these move lines is
created with the same values, in
`_prepare_reconciliation_move`:
- The move `date` is set with `self.date`,
exactly the same than what was set in the `aml_dict`
- The move `journal_id` is set with `self.statement_id.journal_id.id`,
which is the origin field of the related field `self.journal_id.id`
used in the `aml_dict`
opw-656463
Add !important flag to the width:auto rule for a container inside a
fixed width parent. Notice that there should not be any container
inside another container (this would allow to remove this rule) but
this makes sense for the "readable" class.
This fix is made to solve website themes issues.
Summernote sometimes doesn't take into account HTML comment could be
embedded in the edited content, this can lead to issue since this
situation can happen in Odoo.
This commit patch the "isVisiblePoint" summernote's function to take
care of this issue.
opw-656332
The field `company_id` on `account.move.line`
is a related to the `company_id` field of the
`account_id` field on this move line.
Therefore:
- Forcing the company of the `account.move.line` to the
company of the `account.bank.statement.line` is pointless,
as this field is supposed to be a related from the `account_id`
of the move line. It's the `account_id` that must be set correctly,
to an `account.account` of the right company. This is the case, btw.
- Forcing the company of the `account.move.line` triggers the
write of the `company_id` on the related `account.account`, which
triggers the write of the `company_id` on all `account.move.line`
records having as `account_id` this `account.account`.
Therefore, the more you had move lines on an `account.account`,
the more the reconciliation was slow for move lines with this `account_id`.
opw-656463
6baf611d updated the image when showing the view form the first time,
but when reloading (e.g after a write) there was a difference which
would not cause the update.
second half of:
opw-654279
(follow-up of a8ae944)
On browser refresh, the bus sends the last notifications for the last
50secs. This is really annoying to deal with, especially in the chat
applicatiion. This commits ensure that duplicate notifications are
ignored. This is done by saving the id of the last notif in the local
storage.
Note: it is also necessary to clear the last message id in the local
storage to prevent problems when a developer resets his db, and will not
receive any notifications.
The problem was that the tab_manager compared its last heartbeat value with an
old value stored in the local storage (when being elicted master, the tab
writes a new heartbeat in the locat storage).
This solution makes sure to compare the actual value in the local storage with
the heartbeat value stored in the tab_manager.
Marking a message as read in the inbox doesn't remove needactions on all
channels anymore.
When joining a channel (other than the inbox) in which there are needactions,
those needactions are automatically marked as read and removed from the inbox.
When the user clicked on Undo in the snackbar, the messages weren't correctly
re-inserted in the inbox (in the JS cache).
When a warning is triggered by an onchange, clicking on "Save & Close"
will cause the warning to be closed as soon as it is shown. This fix
prevents the saving and closing if a warning message is detected.
opw-653503
`_bom_explode` expects a `product.product`,
not a `product.template`
```
@param product: Select a particular variant of the BoM.
If False use BoM without variants.
```
This `product` attribute is used in the method `_skip_bom_line`,
which get the `attribute_value_ids` of this `product`.
This field `attribute_value_ids` is available on
`product.product` only, not on `product.template`
opw-656061
The policy regarding the editable lists is:
- In a one2many list, editable bottom
- In a list, editable top.
So, when you hit the add an item (one2many list) / create (list),
you do not have to scroll a lot if there are a lot of lines.
opw-656363
When unfollowing the last followed subtype, a confirm dialog is shown to the
user to confirm that it will unfollow the document. If he clicked on 'Cancel',
the unchecked subtype wasn't correctly re-checked.
When creating a team.user record, there was an error to generate an url
for the image because the attribute "__last_update" didn't exist
on the record.
opw:653725
- put the mentionned partners and the attachment above the composer
instead of below
- debounce some links in thread.js to prevent double loading views when
double-clicking
- readd the # in front of the channelname of the title of the client action
- give the channel_id to the thread in a chat window, so it does not
display the channel name everytime it displays a message
- correctly close dm chat window when the dm channel is closed in the
main sidebar
- simplify the help messages when a channel is empty
Mainly concern the client action:
- Display needactions per channels
- For all channels except Inbox, clear needactions when opening the channel
- Add snackbar to undo needactions clearing
- Display a separator between read and unread messages in threads
- Fix active channel (for Inbox and Starred) display in sidebar
Various minor changes in chat_manager:
- Code refactoring of bus notification handler
- get_channel() don't fallback anymore on first channel
When moving lots, we should also take into account the information on the
pack operation: specific location, package to take it from and owner.
Also, in the get_preferred_domain for the pack operations, when not giving any pack,
we should check the quant is not in a pack. It is also better to copy the list
to avoid that the constraints added to the list would get into the next call.
Make sure to unreserve all quants before assignment. Indeed, the method
makes this assumption and does not take into account any existing
reserved quants. Therefore, without this fix, there is a possibility to
reserve more than needed.
opw-653904
The method get_salenote does not exist anymore. It is not necessary
anymore since the note is already translated in the appropriate language
on the SO.
opw-653600
The POS will asks the user to confirm certain things that could be a
user error. Examples of this are attempting to validate an order with a
very big payment compared to the amount to pay on the order. Another
example is paying an amount of 0 for an order with a total amount to pay
that is negative (manual refund).
The issue was that pos_mercury overwrote validate_order(), and didn't
call _super() correctly, losing the user confirmation for these type of
actions.
ir.actions.wizard were removed in 8.0 with a32bf72 (oct. 2013), but
they were still present in the interface to add a menu.
This fix removes them for good, and is only done in 9.0 since the
remains of existing ir.ui.menu with an ir.actions.wizard action should
be minimal.
opw-654215
- display star/mark as read icon next to the message title instead on
the far right
- display unstar all message in channel starred
- enable/disable the 'unstar all' and 'mark read' buttons depending on
the number of messages in the corresponding channels
- display star on the left sidebar in 'squashed messages'
- tweaks to padding in client action
- display hash in channel name in lighter tone
- light opacity in sidebar
- star icon in message sidebar is clickable + small less refactoring
- message sidebar is aligned with the message now
- messages are not squashed in inbox/starred
When we refresh, the bus will send the last notifications since the last
50s, so, the browser will receive notifications from a channel that we
already left. This commits tries to fix the issue by sending
explicitely the information that a channel was unsubscribed.
Also, and this is touchy, it ignores messages received in a channel that
it is not subscribed to (before, it joined the channel)
Also, it will synchronize channels opened and closed in various
tabs/browsers.
The issue was that the chat_manager was an async js module, so it could
be loaded quite late. Then the client action was loaded only after the
chat_manager was ready, and possibly before the action_manager read the
value in the action registry.
This commits prevent this problem from happening by turning the chat
manager into a sync module, so the chatter and the client action needs
to wait for him to be ready before doing their magic.
The bus is somewhat tricky. (at least, the crosstab version). It needs
to elect a leader, and to communicate with the server through it.
However, several tabs have a different event loop, so, we need to be
careful to avoid race conditions. The current version was not
race-condition-proof, and this commits improves on this.
The idea is to allow the bus to detect if some other tab is also
considering himself master. In that case, it is allowed to unelect
himself.
This should allow the bus to self correct those situations in a short
time.
The color field of a product.attribute.value enable users to choose a
color with its HTML color value (hexa, named, rgb, rgba).
In the many2many tags the color field on the model has a magic feature
which color the tag in several instances. But these color are numbered
from 0 to 10 and are incompatible with HTML color values.
So with with the model product.attribute.value, the many2many tags
widget would use the color system (since a field name color exists), and
when setting a color with it, it would be invalid and erase the wanted
named or HTML value color.
This fix ignore the setting of the tag color for this particular model,
a following fix (in master) should rename the column to properly fix
this.
opw-653124
Stock user should be able to create products. Indeed when targetting small
businesses, restricting the right to create products limitates the use of
the inventory app. It is possible to further restrict access to the product
model using record rules for big companies that have a lot of users and
managers, and where creating product should be limited.