Before odoo/odoo#135502, the background of a record was colored if it
has some quantities or if it is read only, but this detail was lost.
This commit fixes that.
closesodoo/odoo#140255
Related: odoo/enterprise#49808
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Open a live session for the burger quiz, join as an attendee. Everytime
the host reveal the next question, the attendees get a traceback.
```js
TypeError: ... is not Iterable
```
A recent commit 7109f48 changed the controllers of survey, they used to
`return self._prepare_question_html(...)`, most of them now
`return {...}, self._prepare_question_html(...)`, with the notable
exception of the `survey_next_question` controller which continues on
returning only the `_prepare_question_html(...)`.
JS-side, the `self._prepare_question_html(...)` payload is retrieved via
`const [,result] = await nextScreenPromise;`, i.e. it excepts an array
of 2 elements and retrieve the second one.
As the other survey controllers have been modified inside 7109f48, the
`survey_next_question` should be updated too but was forgotten. Returns
an empty dict for the correct answers and the next page html.
Task-3374998
closesodoo/odoo#139204
Reference-to: 7109f48 ([IMP] survey: add scoring after each page)
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
Start the a live session, I used Burger Quizz, answer a question. On the
manager side, the current vote count for each choice should be visible
on top of each bar in the chart. That vote count is missing.
During the migration of chartjs from v2 to v4, the datalabel plugin was
updated from v0.7 to v2.2 in the same time. Using the new version of the
datalabel plugin, the plugin is not automatically loaded anymore, one
must explicitely loads it.
We also removed the datalabel plugin from the bundle to load it
explicitelly instead. The JS framework finds it cleaner this way.
Task-3537480
Reference-to: 7e3c1ecdb8 ([REF] *: Update Chart.js to V4.3)
Part-of: odoo/odoo#139204
Co-authored-by: Pierre Pulinckx <pipu@odoo.com>
Steps to reproduce
==================
1. Open marketing automation and select any campaign.
2. Click 'edit' on activity or click 'add new activity'.
3. Select existing mail template and open it to edit the template.
4. Select template on mail body page and click fullscreen from snippet.
The activity modal dialog appear at top of everything.
Technical
=========
In prior version, the 'owl_dialog.js' file includes a 'display' function that
applies the 'o_inactive_modal' class to the inactive dialog, adjusting its
z-index. However in master, the commit https://github.com/odoo/odoo/commit/036307ba260ef1a08e80a14f7cffe1ef9a24021c removes the'owl_dialog.js'
file, resulting in the class no longer being applied.
After this commit
=================
The 'o_inactive_modal' class is applied based on the state 'data' to
position the dialog below the fullscreen editor.
Task-3512850
closesodoo/odoo#139165
Signed-off-by: Jérémy Hennecart (jeh) <jeh@odoo.com>
When scheduling plans on employees, activities may be assigned to people who
don't have access to the record. It was managed locally in HR through a dummy
model aggregating activities. However, it was removed and we replace it here by
a generic solution that adds an entry in the systray: "Other activities". When
clicking on that entry, it displays a list view of the activities assigned to
the user for which he has no access to the related record. Those activities
were not visible to the user before.
Technical note: to allow displaying such records, we have modified the custom
acl defined in python to allow users to read activities assigned to them even
if they don't have access to the related record.
[IMP] mail: allow to mark as done activity without record access
When scheduling plans on employees, activities may be assigned to people who
don't have access to the record, but they still need to mark them as done. And
as marking as done (action_done on mail_activity) triggers a message post on
the related record, that action cannot be executed by a user without access to
the record.
We change that here to allow user having delete/archive right on the activity,
to be able as well to mark it as done (as the activity is archived/deleted at
the end of the method _action_done, the user must at least have the right to do
that to be able to mark as done the activity).
[IMP] mail: add custom view for "other activities"
When clicking on "Other activities" in the systray, a list of activities
assigned to the user for which he has no access to underlying record is
displayed. The default list allows to delete, archive, duplicate, ...
activities but what we want is a readonly view. We add here a new view that
doesn't allow any modification on the activities by removing those actions.
Unfortunately, archive and unarchive action is not controllable with an
attribute (nor by setting the active field as readonly in the view), so we
create a very simple extension of the list view to disable it.
We also add in the list view a button to mark an activity as done and a simple
form view to see the details of the activity (note, ...). The "mark as done is
not added in the form view as the activity is deleted causing an error because
the form is still displayed and the record is gone.
Note that those action are only removed from the client but the actions are
not forbidden on the server side.
[IMP] mail: limit performance impact of the systray
To limit performance impact of the systray, we fetch by default only the last
1000 activities. That value can be configured with mail.activity.systray.limit
config parameter. Note that this can also improve a bit the readability of the
other activities view (for the standard activity view a pager is already
present).
[IMP] mail: add fallback for not deployed action/view
To avoid crash on possibly not deployed action and related views
(mail.mail_activity_without_access_action), we temporary add a fallback on
existing action and views.
Task-3562098
closesodoo/odoo#139917
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
To avoid crash on possibly not deployed action and related views
(mail.mail_activity_without_access_action), we temporary add a fallback on
existing action and views.
Task-3562098
Part-of: odoo/odoo#139917
To limit performance impact of the systray, we fetch by default only the last
1000 activities. That value can be configured with mail.activity.systray.limit
config parameter. Note that this can also improve a bit the readability of the
other activities view (for the standard activity view a pager is already
present).
Task-3562098
Part-of: odoo/odoo#139917
When clicking on "Other activities" in the systray, a list of activities
assigned to the user for which he has no access to underlying record is
displayed. The default list allows to delete, archive, duplicate, ...
activities but what we want is a readonly view. We add here a new view that
doesn't allow any modification on the activities by removing those actions.
Unfortunately, archive and unarchive action is not controllable with an
attribute (nor by setting the active field as readonly in the view), so we
create a very simple extension of the list view to disable it.
We also add in the list view a button to mark an activity as done and a simple
form view to see the details of the activity (note, ...). The "mark as done is
not added in the form view as the activity is deleted causing an error because
the form is still displayed and the record is gone.
Note that those action are only removed from the client but the actions are
not forbidden on the server side.
Task-3562098
Part-of: odoo/odoo#139917
When scheduling plans on employees, activities may be assigned to people who
don't have access to the record, but they still need to mark them as done. And
as marking as done (action_done on mail_activity) triggers a message post on
the related record, that action cannot be executed by a user without access to
the record.
We change that here to allow user having delete/archive right on the activity,
to be able as well to mark it as done (as the activity is archived/deleted at
the end of the method _action_done, the user must at least have the right to do
that to be able to mark as done the activity).
Task-3562098
Part-of: odoo/odoo#139917
When scheduling plans on employees, activities may be assigned to people who
don't have access to the record. It was managed locally in HR through a dummy
model aggregating activities. However, it was removed and we replace it here by
a generic solution that adds an entry in the systray: "Other activities". When
clicking on that entry, it displays a list view of the activities assigned to
the user for which he has no access to the related record. Those activities
were not visible to the user before.
Technical note: to allow displaying such records, we have modified the custom
acl defined in python to allow users to read activities assigned to them even
if they don't have access to the related record.
Task-3562098
Part-of: odoo/odoo#139917
Steps:
- Install project, timesheet & website
- Open project module
- Select any task
- Set Allocated Hours
- Go to the task corresponding project & disable the timesheet
- Then appear in portal form view
Issue:
- In portal form view of project's task the 'allocated time' and the 'progress' fields shouldn't be visible if the 'timesheets' feature is disabled on the project.
Cause:
- There is no any condition for allocated time and progress field.
Fix:
- Added condition for both field in hr_timesheet & project respectively.
Task-3495253
closesodoo/odoo#141357
X-original-commit: 58040fed8b075b40cf6d2be73de53b600bf9f94d
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
Before this commit, partners that were not already loaded in the PoS
couldn't be retrieved using their phone number or email address. This
functionality is essential for customer recognition.
opw-3548843
closesodoo/odoo#140573
X-original-commit: 57eff2d338f96d80bf2332502a352601292109d1
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Robin Heinz (rhe) <rhe@odoo.com>
Signed-off-by: Pedram Bi Ria (pebr) <pebr@odoo.com>
Summary
-------
Currently, when `l10n_latam_check` is installed, third party checks'
number can be non-numeric.
Steps to reproduce
------------------
* install `l10n_latam_check`, and `l10n_ar`
* switch to an Argentinean company
* create and validate an invoice
* register a payment for that invoice using:
- Journal: Third Party Checks
- Check Number: anything that's not a number
The payment is created without issue, but it shouldn't. This ends up
causing tracebacks elsewhere because we expect the check number to only
contain digits.
Cause
-----
The `l10n_latam_check` module overrides `_constrains_check_number`, to
disable it on third party checks. The goal is to allow third party check
numbers to be non-unique. However, the code that checks whether the
`check_number` value only contains digits is in the same method. This
means that by skipping the uniqueness check, the code also skips the
value check.
Fix
---
This commit splits `_constrains_check_number` into two methods (one for
checking the value, and the other for uniqueness), and modifies
`l10n_latam_check` to override the uniqueness check only.
opw-3464012
closesodoo/odoo#141371
X-original-commit: 3e7b1f014af9b34473fe6eba07bc051b38a74c72
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Séna Serge Nshimiyimana (sesn) <sesn@odoo.com>
Before this commit, we used to rely on duplicates of streams and the
presence of streams to know if a session was streaming.
This commit changes this and make it so that we now use streaming
activity flags instead.
This is a prerequisite for https://github.com/odoo/odoo/pull/132153 as,
similarly to webRTC "unified plan", the SFU keeps the same streams for
the whole lifespan of a connection.
closesodoo/odoo#140053
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Prior to this commit, "Add a Reaction/emoji" and "View Reactions"
buttons had the same icon, which was confusing.
This PR adapts the "Add a Reaction/emoji" icon to make it more
recognizable.
task-3577008
closesodoo/odoo#140481
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
the variant field is `product_id`.
closesodoo/odoo#141289
X-original-commit: fddbc658e3cbb80ab155d1423a3c1a8f536ce014
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Currently for the "Total" measure on the invoice analysis report
the values in the currency of the invoice are used.
This is a problem in multi-currency environments: Different
currencies are added together leading to nonsensical sums.
This commit converts the "Total" measure to company currency (at the
time of the invoice).
In multi-company case the "Total" measure is further converted to the currency
of the active company (using the day of the report creation for the
conversion rate).
The "Total" will also be displayed in company currency when viewing
the invoices in the list view of an entry in the table (by clicking on the entry).
task-3537868
closesodoo/odoo#141277
X-original-commit: 28004b7e92f22cf0f0078d4512f8a5f59c82122c
Signed-off-by: William André (wan) <wan@odoo.com>
The on_hand filter is used from the product.product stat button.
It's dangerous to modify it because the quantity with the filter
would be different than the ones in the stat button.
closesodoo/odoo#141272
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
It's not possible to copy paste in the lot_name directly. It has been
remove since the import button.
Also add by default a search on hand in the quant view from the
stock.move.line. We don't want to show quant already send to customer
location or without quantity
Part-of: odoo/odoo#141272
Since commit [1] removed `legacyRejectPromiseHandler()`, trying to edit
a link leading to an HTTP error triggers an "Uncaught Promise" error.
This commit makes sure such links do not cause a traceback: the link
popover is just less detailed (no title, favicon).
[1]: https://github.com/odoo/odoo/commit/fcb16a3b1bd373726ffb54f0fbe41fb6d1784769
task-3584686
closesodoo/odoo#141225
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
The extra_info template was no more editable due to a t-call for the
CTAs in the template. To be able to add fields we need to remove the
t-call and apply the buttons manually.
This is due to the checkout redesign:
a5899db8e12af29bd311db75473ce76bfa91d641
This commit applies the previous navigation buttons while adapting the
styling to the checkout redesign.
task-3582219
closesodoo/odoo#140985
Signed-off-by: Valentin Chevalier <vcr@odoo.com>
When user enables or tests payment provider it will automatically
enable most used payment method in that provider.
closesodoo/odoo#140907
Signed-off-by: anko-odoo <anko@odoo.com>
In this commit https://github.com/odoo/odoo/commit/00dcc575b8af5bee5204c45b80290a8e59fe10f9
they added an invisible condition of the accounting tabs (in the product view).
After discussion with the PoS product owner, there is still some doubts on how
combos product will be manage for the accounting tab (specially with
localisation). But if we remove the Accounting/Invoicing tab, the user will be
completely incapable to configure sales and taxes when combo products include
products with different taxes.
As we have doubts, we prefer keeping the tab by default no matter what the
product type is.
closesodoo/odoo#140896
Task: 3581797
Signed-off-by: William André (wan) <wan@odoo.com>
To reproduce the issue:
1. In Settings, enable:
- Storage Locations
- Storage Categories
2. Create and confirm a receipt with one product
3. Open the detailed operation
4. Add a line
- To: WH/Stock/Shelf 1
- Done: 1
Error: Once the user sets the done quantity to 1, the destination
location will be automatically set to WH/Stock
Since the Storage Locations option is enabled, when updating the
done quantity of the SML, it triggers an onchange in charge of
applying the putaway rules. Since the Storage Categories option is
enabled, the putaway process starts from the SM's location (i.e.
WH/Stock). Then, since there isn't any putaway rule, the process
will simply return the initial location (WH/Stock) and we will use
it as new destination location of the SML.
Since the destination location has already been set by the user, we
should avoid overriding it, otherwise he will have to set the
location again.
OPW-3511560
OPW-3549579
closesodoo/odoo#141252
X-original-commit: ce9a1437de0093dd3c66152148d4c973915d00f4
Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
Signed-off-by: Adrien Widart (awt) <awt@odoo.com>
Steps to reproduce:
1. Activate Stripe and at least two payment methods
2. Click on the first pm
3. Click on the second pm
3. Select again the first one and try to pay
The bug was caused by reinstantiation of stripeJS for each payment
method. So that each stripe element was created from different
stripeJS object which raised the following error from Stripe:
"Invalid value for stripe.confirmPayment(): the 'elements' provided was
created by a different Stripe instance. Please use the same Stripe instance
to create the 'elements' and call stripe.confirmPayment()"
After this commit StripeJS object is instantiated only once.
closesodoo/odoo#141247
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
`purchase_tax_exp_0` tax is supposed to have 0 amount, which was changed in saas-16.2 to 18.0. This commit fixes the amount, changing it back to 0.0.
closesodoo/odoo#141192
X-original-commit: 7e4f5b702998e88faf056205d2b7aae319f094be
Signed-off-by: Josse Colpaert <jco@odoo.com>
Signed-off-by: Aliya Tastemirova (alta) <alta@odoo.com>
This revision extends the caching introduced in [1] to cache the
Pivot cells of a `PivotTable` for every combination of `includeTotal`
and `includeColumnHeaders`. the conditions for the `clickableCell` of
`ODOO.PIVOT.TABLE` cells fetch the pivot cells a LOT, which becomes
problematic for big pivots.
For a spreadsheet with a formulat `ODOO.PIVOT.TABLE` that spreads over
2562 (122*21) cells:
| | Before | After |
|----------------------------------|---------|--------|
| `getPivotDomainArgsFromPosition` | 1227 ms | 124 ms |
| load spreadsheet as dashboard | 7.97 s | 2.4 s |
| | | |
[1] https://github.com/odoo/odoo/pull/138594closesodoo/odoo#141116
Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
Current behavior:
The PoS receipt was always showing SN on receipt even when the tracking
method was set to Lot.
Steps to reproduce:
- Create a product with tracking method set to Lot
- Create a PoS order with that product
- Validate the order
- The receipt is going to show SN XXXX instead of Lot Number XXXXX
opw-3517788
closesodoo/odoo#141007
X-original-commit: fde614b80c90ce62598b6ddd3ddac4d3c6bb4dc7
Signed-off-by: Vlad Stroia (vlst) <vlst@odoo.com>
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
- We remove default floor on when demo data is active.
- We do the automatic creation of floor and table on a restaurant config during
the write method of the pos.config. It shouldn't be done in the
res.config.settings at onchange because of risk of retriggering the creation
multiple times.
Part-of: odoo/odoo#141001
1. Remove some options from the burger menu to make it more clear.
2. Make some actions on the journal's dashboard card conditional on
the Bank Feed type.
closesodoo/odoo#140164
Task-id: 3573286
Related: odoo/enterprise#49762
Signed-off-by: Laurent Smet (las) <las@odoo.com>
Prior to this commit, the navigation of `website_blog` wasn't correctly
aligned. This commit reworks the alignment to match the page layout.
This was actually a "bug" of our override of BS4/5 to match BS3 behavior
regarding container float-clearing. This fixes that override. It may
be backported in stable versions later if the need arises.
Related to task-3097005
closesodoo/odoo#137692
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Co-authored-by: Brieuc-brd <brd@odoo.com>
The goal of this pr is to remove the name of the file on the expense report.
closesodoo/odoo#141226
Task: 3473105
Signed-off-by: Quentin De Paoli <qdp@odoo.com>
This commit changes the default worklocation set for the employee from "office"
to false. Also, this commit adds the possibility to delete a default
worklocation from the calendar view.
A typo is also fixed from "exception" to "exceptions" which was causing a bug
returning the worklocations.
task-3584193
closesodoo/odoo#141209
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
Bug
A previous commit b1ec81ed fixed an issue relating to wrong progression
percentages when a survey was set as "one page per question" and
"random selection".
In doing so, it inadvertently added an issue in the following simplified case:
1. Create a new survey, and add 2 questions
2. Set layout (`question_layout`) to "one page per question" (`page_per_question`)
3. Set selection (`question_selection`) to "all questions" (`all`)
4. Now share the survey with a participant (send out the email)
5. As the participant, start the survey and answer question one
6. In the backend, go and modify the survey template by adding a new
question after question 2. Save modification.
7. Now, in the ongoing survey, answer question 2 and try to move on to
the next question.
This will create an error traceback. Example
'''
'page_number': page_ids.index(survey_data['question'].id)
ValueError: 108 is not in list
'''
The error arises because the added question will have an id that is not
in the `survey.user_input.predefined_question_ids` field. This list gets
initialized when the `survey.user_input` gets created and reflects all
the question ids of the original survey template (or the random ids in
case of a random selection).
So in other terms the set of questions given to a participant, starting
in `survey_survey._get_pages_or_questions` is not aligned with those used
for the references in the progression template
Proposed fix:
We add an extra check for `survey_sudo.questions_selection == 'random'`
to decide if we use `survey.user_input.predefined_question_ids` or
`survey.survey.question_ids` information to calculate the progession.
opw-3516304
closesodoo/odoo#141171
X-original-commit: 643fceff43770483f11e95bd57fae60e611f83d4
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
Signed-off-by: Joel Rodrigues Vitória (jorv) <jorv@odoo.com>
Steps to reproduce:
1. Create a company with currency as Euros.
2. Set up Adyen on that company with the test credentials and enable
paypal.
3. Create an invoice with the currency in Euros.
4. Generate a payment link.
5. Attempt to pay on that payment link with paypal.
After this commit the Adyen checkout configuration is correctly set up
which allows to pay with PayPal
opw-3543970
Part-of: odoo/odoo#140711
This commit fixes the layout of the hr attendance menu.
Prior to this commit, the layout was a bit cluttered and had a lack of
white space, making it difficult for the user to extract the information
he needed.
To fix these issues, we adapt the design of the menu, mainly by
reorganizing the layout and adding more white space.
With this commit, we were also able to clean the files, reducing the
number of lines needed to achieve a good visual result.
task-3577098
closesodoo/odoo#140454
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
We do the following improvement:
- some wording changes
- the activity templates can be edited directly in the list view instead of in
a popup except in hr because sub module add too many field to be edited in
directly in the list view.
- when scheduling a plan, the due date of the created activities are computed
as the plan_date_deadline + activity type delay and if the plan_date_deadline
is not specified, as today + activity type delay.
- there were 2 res_model fields in the mail_activity_plan_view_form that was
causing a selection box to appears on many form where the model shouldn't be
selectable. We remove one of them here.
Add activity plan menus and configuration to sale, project.
Re-add the launch plan button in HR. When generalizing the plan, we have
removed the custom "launch plan" button in the hr module. We re-add it here.
Task-3558929
closesodoo/odoo#138998
Related: odoo/enterprise#49414
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>