Commit Graph
166479 Commits
Author SHA1 Message Date
Martin Trigaux e77cf7477d [I18N] l10n_it_edi: update Italian translations
Courtesy of Marianna (cima)

closes odoo/odoo#139239

X-original-commit: 3152a5029dcf676f723241b099196a8e8cb42720
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-10-20 09:35:25 +00:00
Rémy Voet (ryv) cae4e1b1cf [FIX] web: add fallback of display_name in formatMany2one.
Since https://github.com/odoo/odoo/pull/137098, we add a fallback for
false display_name in the form view, but we didn't add it for the list
view which doesn't instantiate the Many2one component. It uses
`formatMany2one` instead. Fix it to be consistent with the Many2one

closes odoo/odoo#139215

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
2023-10-20 09:35:23 +00:00
Rémy Voet (ryv) c3bbba7cdd [FIX] web: fix extraLines for false display_name
Since https://github.com/odoo/odoo/pull/137098, in
`Accounting > Bank > Tree View`, you get a traceback if one of the bank
statements in the view has a false as `display_name` (name is only
required in the view not in the model). The traceback comes from the
`extraLines` accessor in the Many2one component. The fix is the same
as in https://github.com/odoo/odoo/pull/138061 (FW of the first PR).

Part-of: odoo/odoo#139215
2023-10-20 09:35:23 +00:00
Michael (mcm) 8cf98fbe67 [IMP] *: remove core.bus
This commit removes the legacy global bus (core bus) and the places
where it was used.
The main users of this bus were the public widgets, they now use the bus
on Component.env.
Some of the uses were dead code and has been removed.

closes odoo/odoo#139076

Task: 3439226
Related: odoo/enterprise#49131
Signed-off-by: Francois Georis (fge) <fge@odoo.com>
2023-10-20 09:35:21 +00:00
Raphael Collet a38a5b77fb [FIX] account: make _constrains_code() scale better
The code was failing because the domain it generates is too large, which
makes the SQL "compilation" reach the recursion limit.

closes odoo/odoo#138019

Related: odoo/enterprise#48916
Signed-off-by: Raphael Collet <rco@odoo.com>
2023-10-20 09:35:18 +00:00
Raphael Collet 450f9f58ac [FIX] mail: _track_post_template_finalize() is broken when the record no longer exists
Part-of: odoo/odoo#138019
2023-10-20 09:35:18 +00:00
Raphael Collet f6b7899a06 [IMP] core: use SQL wrapper in _read_group()
Part-of: odoo/odoo#138019
2023-10-20 09:35:18 +00:00
Raphael Collet c041919f1b [IMP] core: introduce _order_to_sql() to replace _generate_order_by()
The new method should be used to generate an SQL object that represents
how to order by a field in an SQL query.  We introduced the auxiliary
method _order_field_to_sql() so that one can specify some SQL for
ordering by a given field with a simple method override.

Part-of: odoo/odoo#138019
2023-10-20 09:35:18 +00:00
Raphael Collet 026993775f [IMP] core: use SQL wrapper in expression
We take advantage of SQL objects to discard the use of domain operators
'inselect and 'not inselect'.  Indeed, as we now support SQL objects at
the right-hand side of a condition, one can replace conditions like
(lhs, 'inselect', (query, params)) by (lhs, 'in', SQL(query, *params)).

This commit also adds tests that ensure the correct behavior of the
adaptation of the implementation.

Part-of: odoo/odoo#138019
2023-10-20 09:35:18 +00:00
Raphael Collet 33d1303a2d [IMP] core: use SQL wrapper in fields
Part-of: odoo/odoo#138019
2023-10-20 09:35:18 +00:00
Raphael Collet 2c09f5ed68 [IMP] core: introduce _field_to_sql() to replace _inherits_join_calc()
The new method should be used to generate an SQL object that represents
the value of a field in an SQL query.  Later this method will add
metadata to SQL objects, and that metadata will be used to determine
which fields to flush before executing some SQL code.

Part-of: odoo/odoo#138019
2023-10-20 09:35:18 +00:00
Raphael Collet 31caff2834 [IMP] core: add named parameters to SQL wrapper
For very large bits of SQL code with potentially repeated terms, it is
useful to use named parameters instead of positional parameters:

    sql = SQL(
        "SELECT %(column)s FROM %(table)s WHERE %(column)s IS NOT NULL",
        table=SQL.identifier("foo"),
        column=SQL.identifier("foo", "bar"),
    )

Part-of: odoo/odoo#138019
2023-10-20 09:35:17 +00:00
Raphael Collet 0627e9940d [IMP] core: type annotations in SQL wrapper and Query
Part-of: odoo/odoo#138019
2023-10-20 09:35:17 +00:00
Yannick Tivisse d68696e11e [IMP] hr: Make work address computed before save
closes odoo/odoo#138381

Related: odoo/enterprise#48295
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2023-10-20 09:35:14 +00:00
Lucas Perais 2b28009f5b [IMP] base_automation: better UX
This commit improves the general feel when creating or displaying base automations
The improvement relies mainly on correctly labelling the fields

task-id-3450200

closes odoo/odoo#135932

Related: odoo/enterprise#47609
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2023-10-20 09:35:12 +00:00
Lucas PeraisandDamien Bouvy b846d1ebe9 [IMP] base_automation: expose as webhook client
Allow third parties services to contact a base_automation via the route "/web/hook/<uuid>"
Base Automations now have an additional field "record_getter", which contains a python expression
that should return a record set on which the webhook will apply.

A base automation configured as a webhook takes in its eval_context, the "payload", that is, a shortcut
to the request's data.

task-id-3450200

Part-of: odoo/odoo#135932
Co-authored-by: Damien Bouvy <dbo@odoo.com>
2023-10-20 09:35:12 +00:00
Lucas Perais 542b455561 [IMP] base_automation: implement mail triggers
This commit implements mail triggers on base automation as follows:
- on_message_sent/on_message_received are new triggers on base_automation
- only reacts on message_post, an heuristic has been chosen to determine
whether a message has been sent to an external partner, or received from one.

task-id-3450200

Part-of: odoo/odoo#135932
2023-10-20 09:35:12 +00:00
Florian Damhaut ff917f5478 [IMP] sale,sale_management: Add invoicing journal to SO
Add the invoicing_journal field to SO and template.
If set, this journal will be used to when creating invoice
instead of the default journal.

closes odoo/odoo#133983

Related: odoo/enterprise#46621
Related: odoo/upgrade#5119
Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
2023-10-20 09:35:11 +00:00
Dylan Kiss (dyki) 59337af223 [REF] account_edi_ubl_cii,*: refactor UBL structure and add debit note
*l10n_account_edi_ubl_cii_tests,l10n_dk_oioubl,l10n_ro_edi,l10n_sa_edi

Since some localizations use the concept of debit notes (e.g. Peru), we
need to support the DebitNote UBL type in order to make these
localizations inherit their electronic documents from the generic
`account_edi_ubl_cii` module. In order to do so, we also refactored the
current UBL structure to inherit more in order to not make the
templates too complex when adding the debit note type.

task-3415758

closes odoo/odoo#132529

Related: odoo/enterprise#46014
Related: odoo/upgrade#5131
Signed-off-by: Laurent Smet (las) <las@odoo.com>
2023-10-20 09:35:06 +00:00
Sébastien Geelen (sge) 0a3f65e144 [FIX] web_editor: history dialog foreach key
Fix wrong Qweb foreach key reference in history dialog.

task-3560850

closes odoo/odoo#139188

Signed-off-by: Antoine Guenet (age) <age@odoo.com>
2023-10-20 07:22:49 +00:00
Julien Van Roy 5e6c94b9be [FIX] account: fix invoice_report_file_id if proforma pdf
When triggering the Send & Print with the allow_fallback_pdf=True, if an
error occurs (e.g.: no UNSCPC code on the product with CFDI), the
proforma PDF is generated instead and is assigned to
`invoice_report_file_id`. However, only a successful PDF should be bound
to this field.

task-3542881

closes odoo/odoo#138206

Related: odoo/enterprise#49137
Signed-off-by: Laurent Smet (las) <las@odoo.com>
2023-10-20 07:22:48 +00:00
Julien Van Roy acca2f71ad [FIX] account,portal: fix 'download' button in account portal
The 'download' button should download *all* the attachments linked to
the move. Depending on the localization, an xml might be needed in
addition to the PDF (e.g. the CFDI and the signed PDF in Mexico).

To do that, we open a headless Send & Print wizard with only the
`download` checkbox set to True.

Secondly, do not show the 'Download' button in the portal view if no
official attachment is linked to the move (the print button still
appears).

task-3542881

Part-of: odoo/odoo#138206
2023-10-20 07:22:48 +00:00
Julien Van Roy e433414cdd [FIX] point_of_sale: Send & Print upon invoice generation
Initial case to fix:

When a portal user requests an invoice using the QR code/5 digit code on
the receipt, an invoice will be generated from the pos_order, and the
PDF can be downloaded. The problem is that the PDF is currently not
signed by the government (for the localizations such as Mexico).

Fix:

The invoice should be sent to the government using the usual "Send &
Print" flow. The "Send & Print" happens right after posting the invoice,
inside `_generate_pos_order_invoice`. This means that any invoice
generated from the POS will go through the "Send & Print", as intended.

Previous fix: 2cc9a35860b59063f536eea9234a1e9c5fa2f00e

In this previous fix, the Send & Print was triggered when requesting the
PDF of the invoiced pos_order. It did not cover the above use case. We
partly revert this fix, since the Send & Print now occurs during the
`_generate_pos_order_invoice`. Hence, we only need to fetch the existing
attachment linked to the move.

task-3542881

Part-of: odoo/odoo#138206
2023-10-20 07:22:48 +00:00
Julien Van Roy dd1f808b49 [REV] account: bring 'Download' button back in the account/portal
partly revert 211a5bb13b

Part-of: odoo/odoo#138206
2023-10-20 07:22:48 +00:00
prye-odoo 2101cfcc46 [FIX] hr_holidays: handle tz attribute error if user timezone empty
When a user tries to create a leave request without linking an employee
with the user and without a configured login user timezone, a traceback
will be generated.

Steps to reproduce:
- Install the "hr_holidays" module.
- Create a new user, e.g., "Test user", and login with another browser.
- Login as an admin user and go to Settings > Users & Companies.
- Search for "Test user" and set Timzone as empty.
- Go to the Time Off menu and create a leave request; after that, a traceback
will be generated.
Error: AttributeError: 'bool' object has no attribute 'upper' 

When a user tries to create a leave request without linking an employee with the
user and without a configured login user timezone, the
_get_start_or_end_from_attendance() function of the "hr.leave" object will call
at that time timzone not getting.
Code reference:
https://github.com/odoo/odoo/blob/15.0/addons/hr_holidays/models/hr_leave.py#L111

Sentry-4441512696

closes odoo/odoo#134434

X-original-commit: 904edbdbbc5e11608d7e3f3f7d2d3001b6247ed2
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
Signed-off-by: Pradip Yenpure (prye) <prye@odoo.com>
2023-10-20 06:13:05 +00:00
Anh Thao Pham (pta) 50905d5691 [FIX] account: use account receivable/payable defined on partner for company partner
Steps to reproduce:
- Install Accounting & Contacts
- Go to Contacts and open partner linked to a res.company (e.g. YourCompany)
- Select another value for Account Receivable (e.g. Account Receivable (Pos))
- Go to Accounting and create an invoice for YourCompany
- Check Journal Items
The used Account Receivable is not the one configured on the partner,
but the default one from the company.
The issue only happens for the "res.partner" linked to a "res.company".

Cause:
When computing the available accounts, a dict is generated with the following
structure: {(model, id, account_type): account_id}.
dict of keys: tuple (model, id, account_type)
        values: int (account_id)
This dict is generated from several sources that are merged together.
One source (aka "properties") is the accounts configured on the partners.
In our example, such an entry is {('res.partner', 1, 'asset_receivable'): 35}.
Another source (aka "default_properties") is the default accounts configured on
the companies. From these data, entries are generated for the partners linked to
the companies.
In our example, YourCompany "res.partner" is linked to YourCompany "res.company
and the following entry is generated: {('res.partner', 1, 'asset_receivable'): 6}.
The key of this entry is exactly the same as the key of the entry from the other
source and is overriding its value in the final dict once merged.

Solution:
The data from "properties" should be the main ones and the data from
"default_properties" should be used as fallback.
This can be done by changing the order of the merge.

opw-3465767

closes odoo/odoo#139255

X-original-commit: ab47c12902087a2625fe079903ec3b1753ae7b3e
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Anh Thao Pham (pta) <pta@odoo.com>
2023-10-20 05:10:00 +00:00
Arthur Detroux (ard) 7594d71ca8 [IMP] *: remove jQueryUI draggable and droppable
*: mass_mailing, test_website, web, web_editor, website, website_event,
   website_sale

This commit removes jQueryUI draggable and droppable component to
instead use our own implementation of the feature. This replaces the
last use of the lib: the web_editor drag and drop. This takes advantage
of the code that was already written for other features of the backend.

task-3079246

closes odoo/odoo#136793

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2023-10-19 22:01:48 +00:00
Noe Antoine fae131e44c [IMP] website_slides: remove useless field slide_channel_all_ids
This field is not used at all. Remove it.

UPG PR: odoo/upgrade#5218
Task-3444633

closes odoo/odoo#130030

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2023-10-19 20:22:35 +00:00
Noe Antoine f2a2881e65 [IMP] website_slides: clean partner_all_ids field
Follow up of odoo/odoo#139104

After fixing the performance of ir rules, previously using
partner_all_ids on slide.channel, that field is not used
anymore except for tests. Adapt tests and remove it as well
as its search method.

Also adapt a search domain to use is_member field.

UPG PR: odoo/upgrade#5218
Task-3444633

Part-of: odoo/odoo#130030
2023-10-19 20:22:35 +00:00
vlst cd0d313a3d [FIX] l10n_sa_pos: add receipt header data
After the recent changes (commit d149b8a) in the `OrderReceipt`, we have to adapt the
`l10n_sa_pos` module.

In this commit we add the necessary code.

closes odoo/odoo#139208

Signed-off-by: Robin Heinz (rhe) <rhe@odoo.com>
2023-10-19 19:08:15 +00:00
Odoo's Mergebot da0db20388 [MERGE] mail, various: improve activity view, allow to keep done activities
[IMP] {test_}mail: allow to keep done activities and improve activity view

We add the option to keep the completed activities to allow the user to keep
track of the past action, especially the uploaded files which are displayed
along the completed activities. This feature can be activated per activity
type and is disabled by default.

We also improve the activity view to give a better overview of what has been
done and what is still to be done and by whom.

We also add tests for those new features:
- check activity data for the views (server-side test)

* Details about the activity view improvements:

** Improvement of the column header:

- progressbar: previously, only visible activities were counted in the
progression bar. Now all are counted.
- activity counter: instead of displaying the total count (next to the
progression bar), we display now a ratio as 2 numbers (only if keep done is
enabled):

** Improvement of the activity cells:

- add assignees in activity cells of activity view (limit to 2 having the
activity with closest deadline, if more a + is displayed). Note: to avoid
spacing between avatar, we add the optional props noSpacing to the avatar
component.
- add done activity in activity cell popover
- increase by 50% the popover height
- display done activity cell in grey
- instead of displaying the activity count if greater than 1, we display a
ratio ongoing / activity count. Note: we don't display the denominator if all
activities are done or all are ongoing.

** Progress bar filter

The activity filter is slighly modified. Previously, when clicking on a color
of the progress bar, all cell with a different color where hidden (ex.: if we
were clicking on the green area to filter planned activities, red cell which
represents overdue activities were hidden even if there was also a planned
activities for this record and activity type). Now we also display cells with
other "color" if there exist for that record and that type an activity
corresponding to the filtered "color".

[IMP] crm, {test_}mail: allows to filter record having "done" activity

To allow to search records having "done" activity (archived) assigned to
someone, we have modified the search method of the field activity_user_id 
(in the activity mixin) so that it matches also responsible of archived activities.
This field is mainly used when coming from the systray to display user
activities including "done" ones but could be also used in custom filters.

We have also modified the default domain when fetching record for the activity
view so that it matches records having at least one activity, archived or not.
This prevents to load more records than necessary to display the activity view.

We also adapt the test accordingly.

[IMP] mail, various: simplify the systray

The system tray has been simplified:
- only one clickable area per activity group
- by default, a click on an activity group open the list view, except for some
model (ex.: journal entries, project, task, documents where the activity view
is opened). This can be defined per model using the _systray_view attribute on
the model.
- the clock icon providing access to the activity view has been removed. As it
is the only action, we also remove "actions" returned by systray_get_activities
in res_users.
- the KPIs are no longer clickable

The tests have been updated (for example, because we open the list view instead
of the kanban view) and one removed "activity menu widget: activity view icon"
as we only have one clickable area now and no more icons.

[IMP] various: add activity view for different model

We add the activity view for:
- event.event
- maintenance.request
- mrp.production, mrp.unbuild
- repair.order
- stock.picking

[IMP] various: improve custom activity views

The following summary view of the record in the activity views have been
improved:
- project_task: task state added
- project_project: project manager added
- event_event: responsible and the dates (date_begin_located and
date_end_located) added
- account_move: total amount, customer and state added
- sale_order: total amount and the state added
- purchase_order: total amount and the state added
- crm_lead: customer and stage added
- hr_applicant (hr_recruitment): recruiter added
- survey_survey: responsible added
- maintenance.request: added equipment and responsible
- stock.picking: added scheduled_date
- repair.order: responsible, schedule_date and product_id added
- mrp.production: added responsible
- hr_leave (hr_holidays): status is added and default deadline modified see
below

Ensures that "Schedule activity" is in one line by adding a colspan.

hr_leave activity: When a time off approval activity is created as a
consequence of the creation of a hr.leave, the deadline of the activity is set
to the date_from of the hr.leave minus activity type delay_count (default 15)
except if it leads to a date anterior to today. In that case it is set to
today. That way, in the activity view, the time off approval activities are
more or less sorted by related hr.leave date_from and the cell date is an
indication of when the time off is planned.

Technical note: on most activity view, the activity record was not occupying
all the horizontal space. To solve that problem the css has been modified and
the max-width (200) that was imposed on the sub div has been removed. And as
it was impossible to impose a max-width for a flex div (which is the common
case for the activity record), the max width is imposed on each text that might
be too long using the class o_text_block. That class has been modified to
impose a max-width. That's why that class has been added in most view.
Alternativly, we could have modified the activity compiler to add that class
when the attribute full was set (not done because not sure of the consequence).

[REM] project_todo: remove add todo from the systray

In order to simplify the systray, we remove the action "Add a To-do" from the
activity menu in the systray.

Technical note: We remove the following code in project_todo:
- static/src/web/activity: which add the "Add a To-do" in activity menu in the
systray with its logic
- controllers: which add specific controller for the "Add a To-do" in the
systray
- static/tests: which test the todo from the activity menu
- static/tests/helpers: that supports the test that we have removed (ex.:
simulate the removed controller)

Task-3300854

closes odoo/odoo#138135

Related: odoo/upgrade#5264
Related: odoo/enterprise#48685
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2023-10-19 19:08:12 +00:00
Pierre-Yves Dufays 5f4add917a [IMP] crm, {test_}mail: allows to filter record having "done" activity
To allow to search records having "done" activity (archived) assigned to
someone, we have modified the search method of the field activity_user_id (in
the activity mixin) so that it matches also responsible of archived activities.
This field is mainly used when coming from the systray to display user
activities including "done" ones but could be also used in custom filters.

We have also modified the default domain when fetching record for the activity
view so that it matches records having at least one activity, archived or not.
This prevents to load more records than necessary to display the activity view.

We also adapt the test accordingly.

Task-3300854

Part-of: odoo/odoo#138135
2023-10-19 19:08:12 +00:00
Pierre-Yves Dufays f54cb53df2 [REM] project_todo: remove add todo from the systray
In order to simplify the systray, we remove the action "Add a To-do" from the
activity menu in the systray.

Technical note: We remove the following code in project_todo:
- static/src/web/activity: which add the "Add a To-do" in activity menu in the
systray with its logic
- controllers: which add specific controller for the "Add a To-do" in the
systray
- static/tests: which test the todo from the activity menu
- static/tests/helpers: that supports the test that we have removed (ex.:
simulate the removed controller)

Task-3085077

Part-of: odoo/odoo#138135
2023-10-19 19:08:12 +00:00
Pierre-Yves Dufays 725e7ffae3 [IMP] various: improve custom activity views
The following summary view of the record in the activity views have been
improved:
- project_task: task state added
- project_project: project manager added
- event_event: responsible and the dates (date_begin_located and
date_end_located) added
- account_move: total amount, customer and state added
- sale_order: total amount and the state added
- purchase_order: total amount and the state added
- crm_lead: customer and stage added
- hr_applicant (hr_recruitment): recruiter added
- survey_survey: responsible added
- maintenance.request: added equipment and responsible
- stock.picking: added scheduled_date
- repair.order: responsible, schedule_date and product_id added
- mrp.production: added responsible
- hr_leave (hr_holidays): status is added and default deadline modified see
below

Ensures that "Schedule activity" is in one line by adding a colspan.

hr_leave activity: When a time off approval activity is created as a
consequence of the creation of a hr.leave, the deadline of the activity is set
to the date_from of the hr.leave minus activity type delay_count (default 15)
except if it leads to a date anterior to today. In that case it is set to
today. That way, in the activity view, the time off approval activities are
more or less sorted by related hr.leave date_from and the cell date is an
indication of when the time off is planned.

Technical note: on most activity view, the activity record was not occupying
all the horizontal space. To solve that problem the css has been modified and
the max-width (200) that was imposed on the sub div has been removed. And as
it was impossible to impose a max-width for a flex div (which is the common
case for the activity record), the max width is imposed on each text that might
be too long using the class o_text_block. That class has been modified to
impose a max-width. That's why that class has been added in most view.
Alternativly, we could have modified the activity compiler to add that class
when the attribute full was set (not done because not sure of the consequence).

Task-3300854

Part-of: odoo/odoo#138135
2023-10-19 19:08:12 +00:00
Pierre-Yves Dufays 723b0ff5d5 [IMP] various: add activity view for different model
We add the activity view for:
- event.event
- maintenance.request
- mrp.production, mrp.unbuild
- repair.order
- stock.picking

Task-3300854

Part-of: odoo/odoo#138135
2023-10-19 19:08:12 +00:00
Pierre-Yves Dufays 3f2f3c1beb [IMP] mail, various: simplify the systray
The system tray has been simplified:
- only one clickable area per activity group
- by default, a click on an activity group open the list view, except for some
model (ex.: journal entries, project, task, documents where the activity view
is opened). This can be defined per model using the _systray_view attribute on
the model.
- the clock icon providing access to the activity view has been removed. As it
is the only action, we also remove "actions" returned by systray_get_activities
in res_users.
- the KPIs are no longer clickable

The tests have been updated (for example, because we open the list view instead
of the kanban view) and one removed "activity menu widget: activity view icon"
as we only have one clickable area now and no more icons.

Task-3300854

Part-of: odoo/odoo#138135
2023-10-19 19:08:12 +00:00
Pierre-Yves Dufays b6c236df54 [IMP] {test_}mail: allow to keep done activities and improve activity view
We add the option to keep the completed activities to allow the user to keep
track of the past action, especially the uploaded files which are displayed
along the completed activities. This feature can be activated per activity
type and is disabled by default.

We also improve the activity view to give a better overview of what has been
done and what is still to be done and by whom.

We also add tests for those new features:
- check activity data for the views (server-side test)

* Details about the activity view improvements:

** Improvement of the column header:

- progressbar: previously, only visible activities were counted in the
progression bar. Now all are counted.
- activity counter: instead of displaying the total count (next to the
progression bar), we display now a ratio as 2 numbers (only if keep done is
enabled):

** Improvement of the activity cells:

- add assignees in activity cells of activity view (limit to 2 having the
activity with closest deadline, if more a + is displayed). Note: to avoid
spacing between avatar, we add the optional props noSpacing to the avatar
component.
- add done activity in activity cell popover
- increase by 50% the popover height
- display done activity cell in grey
- instead of displaying the activity count if greater than 1, we display a
ratio ongoing / activity count. Note: we don't display the denominator if all
activities are done or all are ongoing.

** Progress bar filter

The activity filter is slighly modified. Previously, when clicking on a color
of the progress bar, all cell with a different color where hidden (ex.: if we
were clicking on the green area to filter planned activities, red cell which
represents overdue activities were hidden even if there was also a planned
activities for this record and activity type). Now we also display cells with
other "color" if there exist for that record and that type an activity
corresponding to the filtered "color".

Technical note: mail_activity.get_activity_data returns now for the activity
types a list of dictionary instead of a list of list. This simplifies the
reading as we can now uses name instead of index (type[1] becomes type.name
for example).

Task-3300854

Part-of: odoo/odoo#138135
2023-10-19 19:08:12 +00:00
Guillaume (gdi) 05dbe28bed [IMP] website: add tooltips in settings tab for heading 1
This commit adds tooltips in the settings tab of the website in order
to inform the user that some options impact the Heading 1.

task-1958098

closes odoo/odoo#129791

Related: odoo/enterprise#44986
Related: odoo/design-themes#682
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2023-10-19 19:08:11 +00:00
Guillaume (gdi)andqsm-odoo 97b14eef9b [IMP] web_editor: apply custom font size as rem
This commit permits to apply custom font size as rem instead of px. The
users still use px to define and to read the font size but the editor
will convert it to rem.

task-1958098

Part-of: odoo/odoo#129791
Co-authored-by: qsm-odoo <qsm@odoo.com>
2023-10-19 19:08:11 +00:00
Guillaume (gdi)andqsm-odoo c32e7b27fe [IMP] website, *: prevent abuse of h1 and use font size classes
*: website_event, website_forum, website_livechat, website_mass_mailing,
   website_slides

This commit permits to reduce the risk to have a wrong h1 tag or
multiple h1 tags on the same page. This commit replaces some h1 tags
with a h2 in snippets. In addition, this commit removes some font sizes
written in the style attribute and replaces them with a font size class
now that they are possible to use and edit as an user.

task-1958098

Part-of: odoo/odoo#129791
Co-authored-by: qsm-odoo <qsm@odoo.com>
2023-10-19 19:08:11 +00:00
qsm-odoo da8fec249a [IMP] web_editor: make oe-toolbar design closer to right panel select
The code of this commit is ugly: it only forces extra new rules to make
dropdowns in the right panel toolbar closer to the we-select design.
This should be refactored. Mass mailing should have the same visual,
CSS rules should be shared, etc etc.

task-1958098

Part-of: odoo/odoo#129791
2023-10-19 19:08:11 +00:00
Guillaume (gdi) c91f5fdc47 [IMP] web_editor: rebuild the text style dropdown
This commit improves the text style dropdown by adding new styles with
responsive font sizes. This will allow to solve the biggest responsive
font-size problem we have right now: users add a cover snippet with
a big font-size (it is currently hardcoded as 62px font size in
snippets). On mobile, it stays 62 and it's too big. Using displayN
classes of bootstrap will allow to solve that problem. Previous commit
also changed the way custom font-sizes work, so after this commit, and
after snippets are adapted every text will now be responsive.

task-1958098

Part-of: odoo/odoo#129791
2023-10-19 19:08:11 +00:00
Guillaume (gdi)andqsm-odoo 194f73a9bb [IMP] website, *: prevent hardcoded font sizes
*: web_editor, mass_mailing

This commit changes the way the font size selector works. Before this
commit, the font size selector applied a hardcoded font size using the
style attribute of the selected element. The purpose of this commit is
to change this to apply a class on the selected element, making it
responsive and customizable.

In all Odoo applications, the font size selector will now apply a class
on the current selection. An exception is made for mass mailing where
the class would not make much sense as not related to the custom heading
sizes (probably needs to be refactored in the future to use the standard
font-size classes) and fonts cannot be responsive in mails anyway (so
there would be a difference between preview and sent mail).

Those classes are:
- `display-N-fs` with N in [1 => 4]. The sizes are stored in the
`$display-font-sizes` map.
- `hN-fs` with N in [1 => 6]. The sizes are stored in the
`$hN-font-size` variables.
- `small` for the small font size. The size is stored in the
`$small-font-size` variable.

The font size selector shows the value of the class (which is dynamic)
that will be applied.

In the website application, the value of each class is configurable
thanks to a previous commit. The user can choose the size of each font
size class in the website settings.

Note that many alternatives were considered for this feature, this is
the chosen compromise. For the record, here is a very short summary of
the alternatives:

- Doing nothing: voted as the worse idea. Users see a font-size selector
  they will use it one way or another. The font-size won't be
  responsive, breaking their mobile website. And there are real use
  cases you could not do: a big "promotion" paragraph on your product
  page? Not possible: you either break your mobile page (using the font
  size option) or possibly hurt your SEO (using the font-style option
  and turning your paragraph into an h1).

- Removing the font-size selector: we did not want the loss of the
  feature as there are correct usecases to use it (as mentioned above).

- Using the Bootstrap hN and display-N classes instead of making new
  ones. Closed to be the chosen idea but discarded because those classes
  comes with colors (that the user can configure) and it would feel
  weird to have the color change when changing the font-size. Also, in
  the end, we also did not want the line-height, margins, etc of those
  classes (only the font-size).

- Instead of X new classes, have only one: o-fs, which would be applied
  alongside a bootstrap hN or display-N class, when chosen by the user,
  to cancel the unwanted style of those. It works but it forces us to
  always have an added `<span>` to apply the font-size, which we don't
  want in the future (mainly because of display-N classes, see next
  commit). It is actually very needed to be able to use proper
  line-height when reducing the font.

- Using a combination of an inline `em` font-size + a class to clamp it
  on mobile. Was probably the best next idea but rejected for several
  reasons. The main one probably being the inconsistency when changing
  the whole size of a title/paragraph (not part of it) and later
  changing the related theme size later. E.g. have an `<h1>` followed by
  a `<p>`. The h1 is 40px, the paragraph is 20px. Force the title to
  20px, because you want it smaller, same size as the paragraph. Real
  use case but also users could simply use the font-size controls by
  mistake. We would thus apply 0.5em to do that. Later, change the theme
  font-size of h1 to 36px (small change). The 0.5em one is now 18px,
  smaller than the following paragraph. Preventing that would require
  more checks which would "break" other things / possibilities.

- Probably others that were forgotten.

In the end, there was no good or bad answer. "Anything works", as long
as the feature "I want this text smaller/bigger" is there. The
surrounding features are always compromise (some users would expect some
behavior, some users would expect others). This commit focused on
solving the unresponsiveness of those custom font-sizes, which was a
problem for many users.

task-1958098

Part-of: odoo/odoo#129791
Co-authored-by: qsm-odoo <qsm@odoo.com>
2023-10-19 19:08:11 +00:00
Guillaume (gdi) 9d753397f6 [REM] web_editor: remove useless code
This commit removes the code that removes some attributes when the
font size selector is closed. We don't need this code because bootstrap
already does it for us.

task-1958098

Part-of: odoo/odoo#129791
2023-10-19 19:08:11 +00:00
Guillaume (gdi)andqsm-odoo 8b56123ebd [IMP] website: add display-N settings in theme tab
This commit adds a set of new options in the theme tab to allow the user
to customize the style of the display-N classes. He can now choose the
font family, the font size, the line height and the margins top/bottom
for the display-N classes (1 to 4). Note that we will not use display-5
and display-6. A further commit will allow the user to use those classes
in their content via the editor UI.

task-1958098

Part-of: odoo/odoo#129791
Co-authored-by: qsm-odoo <qsm@odoo.com>
2023-10-19 19:08:11 +00:00
Zelong Lin 7efc948c99 [FIX] mail: translation for channel creation text
closes odoo/odoo#139230

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-10-19 18:02:24 +00:00
lejeune quentin 36eaec069f [IMP] point_of_sale: New build for IoT v23_11
Adapts the build of the iot to meet the requirements of version 17 of Odoo
notably python >=3.10

closes odoo/odoo#139226

X-original-commit: 81d42e38beec510a0971685d3e58dcdee8da7951
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
2023-10-19 18:02:23 +00:00
Adrien Dieudonné 1158c45e4a [REF] *: remove .oe_left and .oe_right
The first intention of this commit was to remove ´@extend´ but
it actually makes sense to remove ´.oe_left´ and ´.oe_right´ classes.

Since grid we can avoid "float" elements (see .oe_subtotal_footer)
and we only have to remove this class.
For the other case, we have to use ´.float-start' and ´float-end´
to replace ´oe_left´ and ´oe_right´.

closes odoo/odoo#139199

Related: odoo/enterprise#49211
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
2023-10-19 18:02:21 +00:00
Adrien Dieudonné 38651ad20e [REF] survey: remove @extend in survey question form
Because of the ´@extend´, the following rules has been created:

.o_form_view .o_survey_question_view_form .o_form_renderer .o_survey_question_validation_parameters
.o_survey_question_view_form .o_form_renderer .o_form_view .o_survey_question_validation_parameters
.o_form_view .o_survey_question_view_form .o_form_renderer .o_field_widget.o_survey_question_validation_parameters > *
.o_survey_question_view_form .o_form_renderer .o_form_view .o_field_widget.o_survey_question_validation_parameters > *

As you can see, no one match the selector where it should be applied;
.o_survey_question_view_form .o_form_renderer .o_survey_question_validation_parameters

This makes this ´@extend´ useless.

Steps to reproduce:
- Go to Survey
- Questions & Answers -> Questions
- In the form view, select "Date"
- Go to the "Options" notebook
- Check "Validate entry"

Part-of: odoo/odoo#139199
2023-10-19 18:02:21 +00:00
Adrien Guilliams (adgu) 983a966365 [IMP] point_of_sale: add tracking_number as searchable field in ticket_screen
In this commit, we add the tracking_number of an order as a searchable
field in the ticket_screen. This is useful when using pos_self_order
for example. If a mobile is made with service at table and pay at
cashier after each order, the cashier can search the order by its
tracking_number in the history of orders.

closes odoo/odoo#139187

Related: odoo/enterprise#49200
Signed-off-by: Vlad Stroia (vlst) <vlst@odoo.com>
2023-10-19 18:02:17 +00:00