These menus were visible to all employees, but the reports use
hr.salary.rule.category that is only available to HR Officers/Managers.
As these reports are not meant to be available for employees anyway, we
hide them.
(this bug has been spotted by the nightly crawler that clicks on every
menu as demo user)
The variable `date` is compared to the field `name` in the selection
query. `name` is filled in with datetime data. In particular, in the
module currency_rate_live, datetime.now() is used in the name. It is
necessary to make an appropriate comparison to make sure we select the
updated rate right away.
This controller is mainly used by im_livechat which don't send html message. It is more secure to force it in plain text. If anonoymous user write html tags, it will be escaped and sanitize.
Posting message is done in 'html' since mention add html tag in body. Clickable url is done server to allow link in mail and chat message. Plaintext are transform into html, and html message are simply parsed to transform url into clickable link.
When adding a line to a confirmed sale order,
the procurements are automatically created, with
this product.
Therefore, the product of the line should no longer be changed,
as otherwise, the product on the procurement would no longer
be the same product than on the sale order line.
To be able to change the product of a line on a
confirmed sale order, you must therefore first
delete all procurements.
When using the editable list on the sale order form,
it was not possible to add a new line on a confirmed sale order,
while it should
(when `Allow to edit sales order` is chosen in the Sales settings).
The reason was that the fields `tax_id` and `product_id` were
set as readonly when the SO state was not draft.
When using the popup/dialog view, it worked by luck, because
the line `state`, which is a stored related field to the sale order state,
was not correctly computed, and was seen as `draft`, while it should
actually be `sale`, for a confirmed sale order.
We change the readonly condition of these fields,
which is now based on the fact wether or not
the line is already invoiced or not, which makes
more sense.
opw-651573
- Add recipients as followers, and automatically refresh the follower's list
(before this rev., one needed to reload the record to see the followes' list
updated)
- Don't display needactions on chatter's messages
- Simplify buttons of suggested partner's dialog, as it should only offer two
possibilities: Save or Cancel
- Replace unnecessary t-raw's by t-esc's
We search for USB devices that identify as a printer through their
DeviceClass or one of their InterfaceClasses. The issue is a lot of
printers use vendor-specific Device/InterfaceClasses.
Apparently the Epson TM-T88IV is one of those devices. So in order to
work around this, we now first look for a USB device that identifies as
a printer. If those do not exist, we pick the first Epson device, if
those do not exist we pick the first Star device.
Perhaps we should instead start using some kind of probe-based approach
to identify ESC/POS compatible devices.
When looking for a so_line linked to the task, the sale_service module accidentaly removed the already referenced so_line.
The desired behaviour is:
1/ Check if task is linked to so_line, if yes reference it
2/ If not, then let the dict as it was before, do not put False if there already was a value (for example something that sale_timesheet might have found)
The code used the key vals['company_id'] while it was not checked it was present
in the write call (and it should not necessary).
If a key is not present, browse the record instead.
Fixes#8906
Users not belonging to the project user group can not access the model
project.task.history.cumulative
Hide the dashboard for them
Fixes#8606Closes#8607
Fixes#8902
In order for the payment wizard to work, the accounts in invoice header, account_id, should have reconcile=True.
In l10n_br the accounts are, amongst others, "Clientes" and "Fornecedores", a the chart of account should make them by default as reconciliable.
- Extract sub-templates for client action's sidebar to ease the livechat
integration
- Handle livechat's channel_type and messages in chat manager
- Make scrollBottom work in the frontend
Introduce test rules in demo data instead of during the test, because their
creation/update restarts the registry. Moreover, the registry is only patched
after all installations. So the test must be run at post-install phase.
The `fiscal_position` in the values dict for the `create`
expects an id, not a browse record.
This prevented to automatically create purchase order
from a sale order in an inter company environment
when the fiscal position of the companies were set.
opw-651443
Previously, if there was a sale_order_id but it was wrong,
like when the sale order was deleted for example, the function
didn't return a sale order, even with force_create=True.
It used to pass the first 'if' as sale_order_id had a value, so
no new sale order was created. However, as sometimes the id was
referring to a non-existant sale_order, a sale_order.exists() test
was used later, resulting in the function sometimes returning None,
even with force_create = True.
Proposed solution is to test the existence of the browse record with
the given id earlier, instead of testing the existence of the id itself.
On initialisation summernote call update method with oStyle.range is undefined.
The range can be undefined because the update is call before any selection and attach method from summernote call the update without range.
The method summernote_table_update try to use the range and raise an exception.
fix: Check if oStyle.range exits.
Issue: when the user create a pricelist item, the function fields (name, price) are updated only on save (the form view) and not on change.
In the pricelist form view, the 'item_ids' one2many receive empty value from the modal (name, price).
Fix: update 'name' and 'price' field to the new v8 api.