Rendering a website template with auth='none' has as side-effect
to render the website template as sudo, therefore display "Administrator"
instead of "Sign in" when the user is not signed in in the website
user menu, as well as other issues, e.g. records browsed as sudo
while it's not required.
Emails are now send once by recipient. If there is a partner_id, use it as
recipient using the correct recipient_ids field, not partner_ids (not the
same meaning, recipients for emails use recipient_ids). Use the email_to
if there is no partner_id. Indeed this method is called with partner_id
and email being the same recipient.
Also added auto delete to generated emails. As partner_ids is not used anymore
the mails are not considered as notifications and stay in the mail_mail table.
There is no need to stock those emails.
A simple browse with `uom=` as parameter does not convert
virtual_available in the requested UoM. Therefore, we need to convert
manually in the standard UoM of the product.
Bonus: is_available depends on self.route_id
For some unknown reason, the salepocalypse project completely screwed up
the availability check of the product. This commit adds back the check
as it used to be.
opw-653991
`mass_mailing.unsubscribe` depends on
1. `web.ajax`, as it uses `ajax.jsonRpc`
2. `web_editor.base`, to explicitely wait
for all dependencies to be loaded,
so the DOM can contain `o_unsubscribe_form`
opw-654396
Before this, when you enabled invoicing a receipt was never printed. It
still makes sense to print a receipt when we invoice though. Especially
in combination with credit card payments this was problematic, because
reference codes of the credit card transaction were only present on the
receipt.
`fields.Date.context_today` can be used as default value
for Date fields,
but, for Datetime fields, it shouldn't be used, as
this doesn't contain the time, only the date.
`fields.Datetime.now` should be used, as this includes
the date (in UTC, as expected).
opw-657294
project.task: use an onchange to update date_start when changing user_id.
Indeed date_start is automatically updated in the create / write. Without
the onchange, this may lead to errors related to date_start being greater
then date_end.
project.issue: code in create and write now takes into account date_open
values given to the method and avoid erasing them.
In issue however the onchange is not added. Indeed the date_open and
date_closed fields are not visible in the view. They are automatically
computed and used to compute statistics.
This is a backport of a fix in 9, revision 890f1302c7.
In this revision a context key is added wshen evaluating server actions.
Notification emails created during a server action will be set in the queue
and not send directly.
Some fixes coming from V9 revision 2be1dfc1ed. The
purpose is to avoid to send emails in batch and to limitate automatic
subscription.
- add a context key to use the email queue for notifications linked
to allocations created in batch. This way emails will be send asynchronously
and will not create a deadlock when having a lot of allocations to process.
- also fixed a missing context in a browse
The attribute `data-oe-*` (`data-oe-id`, `data-oe-model`, ...)
must not be added when rendering the assets, to avoid
having different assets content,
e.g. a different content for the assets_common,
according if the user is signed in or not,
if the user can edit the website or not.
A different content for an assets according to the
users rights or the user being signed in or not means
that the assets are permanently re-written in the filestore,
which is against the point of the assets.
The content of the assets (assets_common) must not be
different from time to time, it must always be the same
(except when installing a new module, obviously).
Adding the `data-oe` attributes was pointless for the assets
anyway, and prevented having an identical content all
the time, therefore rewritting the assets all the time
in the filestore.
opw-657046
Synchronize the unread counter between chat windows, client action and the
actual value stored in DB. This adds robustness to the counter displayed in
chat window, and allows to synchronize the client action with the chat windows
when marking messages as read.
- emoji are no more clickable in threads (they are only in the popover)
- correctly update channel needaction counter
- don't display 'New message' notification when the channel in detached
- display in the ui channels that send emails and other channels
- prevent notifications in mass mailing channels
- increase bottom padding in client action thread
Buying a ticket is limited either the number of available seats on the ticket
and on the event. So compute the minimum between those two values to display
the selection.
The method `process_reconciliations` is written in api.v7.
Therefore, any calls done on ORM models must be done
in the 7.0 API in this method.
To reproduce the issue:
- Open a pos session, and sell something, select a partner
and choose to create an invoice.
- Come back to the back-end, and in the accounting dashboard,
in Customer Invoices > More > Matching payment,
hit ctrl-enter to reconcile all the balanced items in the sheet.
opw-654410
Fixes regression introduced at 4d9e36a459
that caused all custom (manual) models to be reset to "base" models.
This prevented the creation and proper use of custom models.
opw-657017
Closes#9670
Partial version of #9663
On website_quote, according to the translation, the label may become much larger than
the button width. By default the bootstrap btn class has the property 'white-space: nowrap'
Here the goal is to add a class which will be used for these kind of cases.
Coming from a bug in web_settings_dashboard. Invited user didn't have any rights
when created from the dashboard, which was leading to an error.
This bug leaded to a new discussion. Better to have basic employee having user
rights for all main applications. For bigger entreprises there is an admin that
will carefully remove extra rights, if necessary. The target is small businesses,
it makes sense that every way to create a user gives the same result.
In conclusion, each new user has a full access to the applications by default
How is it implemented ?
We added an inactive default user which original access right to the groups
'base.group_user' and 'base.group_partner_manager' in base. Each
application will extend the default user's access right by adding the maximal
access right for this application.
On user creation, we will use by default the 'group_id' field from the default
user. We will in the same time remove the ugly 'default_groups_ref' key which
was passed sometimes in the context for some fields in some views, and sometimes
nothing.
So, the user can modify the access rights for the default user, but he should be
aware that removing project user access rights for a default user will prevent
a *created on the fly in a task* user will not be able to access the task.
This commit concerns DM and livechat channels. Those channels are now
automatically detached on the receiver side. This allows users to directly
reply to DM's or livechats without coming back to the client action.
Note that they aren't detached if the user previously manually closed the
channel's chat window.
The livechat channels returned by the chat_manager's initial RPC were ignored.
Livechat channels thus weren't persistent in the client action.
This rev. cleans the returned object 'channel_slots' so that it only contains
arrays of channels. The additional mapping and partners array were useless as
the information they contained was directly stored in the DM channels.
We now simply iterate on each array returned and add each channel it contains,
including livechat channels.
DM channels are supposed to be pinned on each partner's side when a message
is post in the DM. This didn't work because we checked if the channel is a DM
by comparing its type to 'direct_message', which is not a valid channel type.
Also stop marking the DM as pinned in channel_join_and_get_info() as it is now
useless.