This commit add the way to specify the Plausible shared key auth token and
the plausible domain on your website to have the Plausible Dashboard integrated
in your Website > Dashboard > Analytics menu.
Some custom event are already pre-configured as:
Push an event 'Shop' on confirmation on ecommerce (with amount bucket +/- 50)
Push an event 'Lead Generation' on:
'Thank you' page of contactus
Confirmation of subscription for an event
From this way, the end user can just add a goal 'Lead Generation'
or 'Shop' on Plausible to have the Goal values visible.
closesodoo/odoo#91058
Related: odoo/documentation#2007
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Instead of having 4 buttons to select a view in calendar, we start using a
dropdown button with the framework data-hotkey approach.
task-2704432
closesodoo/odoo#81705
Related: odoo/enterprise#23131
Signed-off-by: Arnaud Joset <arj@odoo.com>
The mailing html converter uses the `reduce` method of `Array` to
compute column size when converting Bootstrap grids to tables. However,
if that array is empty, given that no initial value was passed, the call
caused a traceback. This is fixed by providing an initial value of zero
as should be expected.
task-2853723
closesodoo/odoo#91683
X-original-commit: 4504d1a880032829fb46dbdeab996bd4e0f9ee97
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Prior to this commit cancelled time off were included in the leave
report calendar model and were shown as regular time offs.
They will now be hidden.
closesodoo/odoo#91675
X-original-commit: c8d17c760e27736d0cb809b59e9945f808b1138e
Signed-off-by: Kevin Baptiste <kba@odoo.com>
When a non-logged in visitor tried to validate answers on a quiz page but had
not answered all questions, the button seemed unresponsive.
In fact, the place was not there to show the error message; likely introduced
by 4a329da6a0.
However, instead of restoring the error message for this corner-case, we
considered it was acceptable to change the behavior a little and not block the
visitor who'd like to sign-in/join at this point, as the validation of the quiz
will still be blocked if not all questions are answered with an error message.
Also, as the quiz does get validated when the button is used even though
the user is not yet logged in, it makes sense to also label it 'Join & Submit'
instead of only 'Sign-in'.
Task-2821644
Part of Task-2663320
closesodoo/odoo#91674
X-original-commit: 1e568dab391db809235615a3a2b0dbe3fabc97cc
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
Since the migration from owl1 to owl2, a crash occured when clicking
save or discard in the partner dialog opened from mail composer's
suggested recipient.
This commit fixes the issue by simplifying the way we open that
dialog. With owl2, we introduced a standaloneAdapter which allows
to directly instantiate legacy dialogs inside owl components.
Task 2817547
closesodoo/odoo#91671
X-original-commit: 0c397eacb8784e2a127b1371f3e787dbccbda068
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Before this commit, when we click on the tag field in mobile view
it will display all the tags because in mobile view it will open
the kanban view on click of m2m field so 'search_read' called
instead of '_name_search'.
So in this commit, fixes the issue by applying the same filter
domain in search_read.
task-2790019
closesodoo/odoo#91670
X-original-commit: f23089f1fc14852fdd67916d38881746b15ebd19
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
The commit 6bf4d3cdceeb972733c1f680f2ad8a11495e6e9c
introduces an issue where the ChatWindow was hidden by the MessagingMenu
in mobile.
This commit fixes this issue.
task-2857078
closesodoo/odoo#91665
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
In some cases, `test_replenishment` fails "for no reason".
Two notions are needed to understand the issue:
The class of the method `test_replenishment` is a `TransactionCase`. So,
once initialized, a SQL transaction is started and is the same for all
tests:
https://github.com/odoo/odoo/blob/3d9a835379d07142748a366285894a5d0f6ded71/odoo/tests/common.py#L693-L696
Also, in a SQL request, the method `now()` does not really return the
current date:
> Notice that NOW() and its related functions return the start time of
the current transaction. In other words, the return values of the
function calls are the same within a transaction.
(https://www.postgresqltutorial.com/postgresql-date-functions/postgresql-now/)
So, suppose it's the end of day D01 and we start all the tests of the
class `TestBoM`. A SQL transaction is created and the tests are executed
one by one so it takes time: it is now the next day D02 and
`test_replenishment` is executed. At some point, it leads to:
https://github.com/odoo/odoo/blob/9ca9bcc51fa289ddb0548f81a795755d196e31ca/addons/stock/models/stock_orderpoint.py#L328-L333
i.e., we are reading the report `'report.stock.quantity'` at date
"`today()` + 3 months", which means "D02 + 3 months". However, the
report is a SQL view and is defined on an interval of "today +- 3
months". Here is the issue: we use `now()` to get the value of today.
For instance:
https://github.com/odoo/odoo/blob/2f0ad2c150e65806c5f0f3ca66f702cc74619074/addons/stock/report/report_stock_quantity.py#L96-L104
As explained above, `now()` returns the start time of the current
transaction: D01. Therefore, the report is defined until D01 + 3 months.
As a result, D02 + 3 months is outside of the range, the `read_group`
does not return anything, there isn't any need and the orderpoint is not
created -> the test will fail.
closesodoo/odoo#91602
X-original-commit: f3e4eeb8412fba5ee36679eece4cba9f51df543d
Signed-off-by: Arnold Moyaux <arm@odoo.com>
Purpose
=======
This commit brings a new community application to allow recycling
automatically/manually the existing records. Here is some business
examples that could be achieved using this tool:
- Delete all livechat sessions without any messages for more than
1 week.
- Archive all tasks on a given support project that are in Cancelled
stage for more than 2 years.
- Delete all applications that we refused 6 months ago.
The tools allows to delete/unlink spotted records based on a widget
domain (stage.name='Cancelled') and temporal fields (last_stage_update
is passed since 2 years). Either the recycling is done automatically
by a cron, or a notification report is sent to specified users letting
them know how many untreated records have been found.
This application is regrouped with the enterprise features of
data cleaning and data merging under the same application set.
closesodoo/odoo#89312
Taskid: 2827911
Related: odoo/enterprise#26568
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Purpose
=======
This commit brings a new tool to retrieve all the related pieces
of information about a customer, based on his name and/or email
address.
This could be useful for users who want to apply the right to be
forgotten (for example under the GDPR regulation), or simply to
retrieve all the records linked to someone (leads, contracts,
sales orders, ...).
The tools is actually a wizard, available from the contact/user
form view. The 2 main steps are the following:
1/ Lookup: We search all the references of the contact by scrapping
the existing models, either if his email address is written on a
supposedly email field, or if his name is written into a record
rec_name (aka name of a lead), or also if there is a M2O to a
res.partner that matches the email address or the name (For
readability purposes, we exclude the ondelete=cascade fields as
the record will be dropped with the contact itself.
2/ Management: For each one of the occurences, we display a line on
the wizard for which we allow 3 actions: Open the record, Archive
(if possible), Delete. Each time an action is performed that
altered the record itself, a anonymized log (jean.luc@example.com
becoming j***.l**@e******.com) is created/adapted for history
purposes.
Taskid: 2827911
Part-of: odoo/odoo#89312
Followup of: 623fdb15ce9a6f3f586254dca549a72869336729
The previous attempt at fixing the tour issue was non-conclusive as it still
breaks occasionally during runbot nightly builds.
That issue is near-impossible to properly debug, because it *only* happens
during nightly builds (cannot be reproduced locally and cannot be reproduced
with a multi-build configuration on the runbot).
We decided instead to slightly modify the tour step to click on the
"restart button" from the end of the conversation instead of the restart button
from the chat window header.
This should hopefully do the trick.
closesodoo/odoo#91656
X-original-commit: 50044dc7f547e2fcd7416f725987236b6185e6d6
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
- Create an invoice of 1200 MXN = 300 USD
- Register a payment, select USD at a date at which 1200 MXN = 400 USD
=> The amount is incorrect, a difference is computed but it should be zero.
closesodoo/odoo#91634
X-original-commit: d88f630dcb7f98a45c9efe7f2439a8732832c77c
Signed-off-by: Quentin De Paoli <qdp@odoo.com>
Before this commit, when doing the same project entry five times
that does not set the default value of project in timer header
of the timesheet because the demo data contains the future timesheet
entry with different project_id and timesheet entry are order by date.
So this commit fixes the issue by removing the future entry
from the demo data so that selecting the same project entry
five times, set the value of project as default
task-2790019
closesodoo/odoo#88431
Related: odoo/enterprise#26090
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
Purpose of the commit is to improve the empty help content
on activity type menu.
task-2737428
closesodoo/odoo#83877
Related: odoo/enterprise#23953
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
https://github.com/odoo/odoo/pull/85150 introduced the method
_render_qweb_pdf_prepare_streams called from _render_qweb_pdf
giving it its res_ids.
Two places in this method are assuming res_ids will be a list, but
it is not always the case. Plenty of call to _render_qweb_pdf is
giving it a single id as a parameter.
This will ensure that res_ids is a list by creating one for single ids
too before proceeding with the logic of the pdf rendering.
closesodoo/odoo#91631
Signed-off-by: Laurent Smet <las@odoo.com>
This PR prepares the ground for the one introducing the new environment in the discuss app.
Indeed, switching from `env.browser` to the wowl `browser` makes a lot of noise in the main
PR. In order to reduce this noise, this change is done now.
task-2582313
closesodoo/odoo#91622
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
- What is Broken ?
The file `web_editor.backend.scss` was incorrectly removed for every module by
the Knowledge `__manifest__`.
i.e.: The iframe in mass_mailing became too small, breaking the mailing preview.
- Fix
The file is restored.
Task-2853336
closesodoo/odoo#91385
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Other data are not actually used. This will improve performance a bit (less
queries, less data to return) until the need to return this list goes away (it
requires a bigger refactoring).
task-2847983
closesodoo/odoo#91576
X-original-commit: 61e472aa35ac825553144fd9a80fbf62e3e8b5e1
Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
Fixes a display issue in the hr.job kanban view with the content not extending to the card size on narrower devices.
TaskID #2849413closesodoo/odoo#91428
Signed-off-by: Kevin Baptiste <kba@odoo.com>
partner subscription
Before this commit, the domain used to count the number of SO of a partner was
not easlily overridable in the compute method.
closesodoo/odoo#91317
X-original-commit: 1f57f0c5f94a4f2a359e49280a5adf8cf8e307ee
Related: odoo/enterprise#27311
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Signed-off-by: Arnaud Joset <arj@odoo.com>
Before this commit, all the changes were applied to the line one by one.
X-original-commit: 68d3c308df15fccf8e132a2a6ba02542a961495f
Part-of: odoo/odoo#91317
Prior to this commit, the height of the `ComposerTextInput` was not the
same as the avatar height, which created an alignment inconsistency.
This commit adjusts the alignment to fix this inconsistency.
task-2852255
closesodoo/odoo#90956
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
PURPOSE
Improve some mail activity issues regarding keyboard navigation.
SPECIFICATIONS
When done an activity using the record list view, allowing user ENTER key
support on "Done" or "Done and Schedule Next" button to post feedback and
mark the activity as done.
Task-2528109
closesodoo/odoo#82879
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
PURPOSE
Oversight of: 0ba617ca87
That changed the mailing.mailing "subject" field to be non-translatable.
We forgot to also modify the "sms_subject" field in the mass_mailing_sms module
that is simply a related on "subject".
REFERENCES
More details about that related "sms_subject" field and its purpose:
f4bb3b77f2bf4749205ca83262623d304f7d7409
LINKS
Task-2845396
closesodoo/odoo#90733
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
When a login attempt is ignored, we add the user info for a better
understanding on the attack (brute force, credentials stuffing...).
closesodoo/odoo#91588
X-original-commit: 0f69448202244e808e1122a618be701806d606cf
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Issue:
When receiving a mail with a facturx XML file as attachment,
the datas in the XML files are not parsed.
Cause:
For security reason, if a mail attachment is a XML file, it will
be saved as plain text and therefore not be parsed.
Solution:
If attachment mimetype is `plain/text` and content starts with
`<?xml`, consider attachment as XML for the parsing.
opw-2655445
closesodoo/odoo#91609
X-original-commit: c402815652cedae1c0934edeefac7cd547b12d0a
Signed-off-by: William André (wan) <wan@odoo.com>
When we receive status changes of sent invoices, we send an
ack message to the proxy afterwards to indicate we received it
correctly.
However, as awaiting_outcome is the initial state for which no
message about the invoice state was received from the gov, we do
not need to ack it as it just says "we are still waiting for the
first msg from the gov"
In a scenario:
Normal flow:
- Odoo instance sends invoice to proxy, proxy to gov, which sends back transaction_id
- On the proxy, the state of the transaction_id is awaiting_outcome
- The gov sends a message back to the proxy that the invoice is approved (directly to the server), so the state becomes "approved"
- The odoo instance asks for the status, receives the "approved" message and then tells the proxy he received it
- The proxy deletes the "approved" message
What we want to avoid:
- Odoo instance sends the invoice
- Proxy: awaiting_outcome
- Odoo instance checks the status and the server returns "awaiting_outcome"
- The gov sends a new message
- The Odoo instance acks and says he received the msg (there is actually no message associated)
- The new message from the government gets deleted.
closesodoo/odoo#91608
X-original-commit: 7d992af9561c499ef1912453f3b697bad18e441f
Signed-off-by: William André (wan) <wan@odoo.com>
This commit fixes the Signup link under the quiz validation.
widget.url is not defined in widget.
Now we use the redirectUrl from the widget as redirect after the signup.
It has been detected by a number of hit on /web/undefined
closesodoo/odoo#91575
X-original-commit: 8d9f22dbe109015bf62e8b563dffa30f45773d26
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Signed-off-by: Jérémy Kersten <jke@odoo.com>
Lines cannot be deleted if the order is confirmed. However, notes/sections lines
still might be changed. So, let delete such lines too.
STEPS:
1. Create SO, add product and add note
2. Confirm SO
3. Remove note
---
opw-2852676
closesodoo/odoo#91552
X-original-commit: eaf34c85ae3db1c85a443ea57ee096e64d0bfbc5
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Signed-off-by: Ivan Elizaryev (iel) <iel@odoo.com>
Since 15.2, when creating an invoice containing both a recipient address and an invoice address, the addresses would both appear on the left, one after the other.
This made reading difficult and the invoice unclear.
Furthermore, the company address wasn't present by default on the invoice : it was only there if a layout had previously been selected.
This PR:
- reverts the behaviour of the company address, i.e. it appears even if no layout is (yet) selected ;
- aligns the delivery and the recipient address on each side of the page when necessary, while not changing the outcome if a single address is given.
Also displays a "title" above the addresses when necessary to make things clearer.
task-2809240
related : https://github.com/odoo/enterprise/pull/27240closesodoo/odoo#91487
X-original-commit: 1e745256fabbec4d6979180d8f792c99be463509
Related: odoo/enterprise#27383
Signed-off-by: Florian Gilbert <flg@odoo.com>
Task ID: 2717840
Currently:
- Generic_coa has country_id US, which is not valid for non-supported localizations. This creates a bug as the country on taxes and account_fiscal_country_id becomes different.
- Users who only have Invoicing installed can't change the fiscal country setting as it's only available in Accounting.
Desired:
- Set account_fiscal_country_id the same as country_id
- Remove base.us from l10n_generic_coa
- Adjust the error message to make the issue more clear for users
- Allow changing fiscal country in Invoicing
closesodoo/odoo#91363
Related: odoo/enterprise#27332
Related: odoo/upgrade#3264
Signed-off-by: Laurent Smet <las@odoo.com>
This commit shows the sum of field 'recurring_revenue_monthly' on
leads' kanban progressbar next to the sum of 'expected_revenue',
if the recurring revenu is enabled for logged in user.
taskID-2414576
closesodoo/odoo#66237
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
How to reproduce the bug ?
- install the inventory app
- open the app and try to import a file where at least one cell has a
wrong value
What is the bug ?
When you try to import a file in the inventory app where at least one
cell has a wrong value, the file won't be imported. In addition to that,
you will get an error saying that one python module is missing while
this might not be the case.
opw-2715625
closesodoo/odoo#91482
X-original-commit: cafd8699ff8ec8eb93aa283a4cac57317ce40708
Signed-off-by: Adrien Minet <admi@odoo.com>
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Simon Goffin <sig@odoo.com>
Before this commit, when searching something via the searchbar snippet
when it is in a mega menu, the dropdown that appears could not overflow
the mega menu dropdown and thus was mostly hidden.
opw-2779432
closesodoo/odoo#91512
X-original-commit: 4805b31e160493715f3c0647b6e8f2d5f6d50c0b
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
When the admin opens an email, they might get an error message if they
can not access one of the attachment of the email or because of the ACL on
mail message.
In this merge we avoid that issue by fetching only accessible attachments
and allow checking related email_from, reply-to and subject as sudo.
Task-2464212
closesodoo/odoo#78734
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Bug
===
When the admin open an email, he might get an error message if he can
not access the mail message.
Technical
=========
To allow to bypass mail message ACl without adding extra SQL queries, we
need to overwrite "_add_inherited_fields".
This trick add a related_sudo on the inherits fields, it can't be done with
>>> subject = fields.Char(related='mail_message_id.subject', related_sudo=True)
because the field of <mail.message> will be fetched two times (one time before of
the inherits, and a second time because of the related), and so it will add extra
SQL queries.
Task-2464212
Part-of: odoo/odoo#78734