Commit Graph
2453 Commits
Author SHA1 Message Date
Benoit Socias 3bbce756c6 [IMP] website, web_editor, *: save dropped images as attachments
*: mass_mailing

When images are dropped from outside the browser into a website page
text paragraph, they are stored as an inline base64-encoded source.

This commit marks those images to be saved as attachments when it
happens in website. The save happens upon page save similarly to what is
done when images are transformed.
This commit also applies this behavior for pasted images.

task-2928495

closes odoo/odoo#98801

Signed-off-by: Romain Derie (rde) <rde@odoo.com>
2022-12-23 19:19:06 +01:00
Antoine Guenet 9521a4b5d6 [FIX] mass_mailing: remove link background color option
Commit [1] introduced a "custom" type of button as the only type of
button whose background color we are allowed to change. But the option
to change any button's background color exists in mass_mailing so we end
up with the same option in two different places. This removes that
previously existing default option.

[1]: https://github.com/odoo/odoo/commit/a010c91b5ee119cf54ed1a68a6ea06b2bc5f3978

task-3096806

closes odoo/odoo#108269

Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2022-12-20 11:29:21 +01:00
Antoine Guenet c62d248e32 [REM] mass_mailing: remove the mass_mailing_sizing_x snippet option
mass_mailing had a special snippet option just for resizing images
horizontally. Since this exists in the website builder as well, there is
no need for a separate snippet with a different behavior for
mass_mailing.

task-2615373

closes odoo/odoo#84061

Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2022-12-19 17:53:54 +01:00
FrancoisGe 1f0e840238 [IMP] *: converting custom list views adding a doAction button
In this commit, we will convert all the customisations of the list view
consist in adding an always present button in the control panel that
performs an action/calls a model's method.

To do this, we will use the new display="always" parameter applicable
to buttons in the header of list views. This allows us to define a
button that is always visible in a list view.

closes odoo/odoo#106519

Taskid: 3082303
Related: odoo/enterprise#34387
Related: odoo/documentation#3044
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-12-16 18:39:56 +01:00
dhba-odoo 9c1c1af57f [FIX] mass_mailing: theme selector is added in sidebar.
Before this commit:

Use the top right arrow to navigate from a record that is in the draft stage
to the record that is in stage sent and use the arrow to come back to a record
that is in the stage draft. The theme selector is added to the sidebar.

After this commit:

Now theme selector will not be added to the sidebar.

Task-3016118

closes odoo/odoo#108026

X-original-commit: 44e388bbb2749b342985b11b71d50535bb5a5c1c
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2022-12-15 13:40:51 +01:00
Adrien Dieudonné 3d6599ac1f [FIX] mail, mass_mailing: chatter should take all width
In some case, we want that chatter takes the all space
available.

Steps to reproduce:
- Go to Email Marketing
- Click on any record
- Go to the Chat tab

closes odoo/odoo#107928

X-original-commit: cbbbc23800e2a00aab9af45087b5d3f7698823d8
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2022-12-14 15:36:45 +01:00
Jérémy Hennecart (jeh) 348265db3d [FIX] mass_mailing: send at least one a/b test if possible
When there is not enough recipients for the A/B testing percentage,
we pick a minimum of one recipients (if there is at least one) to
avoid sending a/b test to no one.

task-2713198

closes odoo/odoo#107488

X-original-commit: e1fa7b10250efc790452f02490ab84d2183698ff
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
2022-12-08 13:38:25 +01:00
dht-odoo 6bfe126313 [FIX] mass_mailing{_sms}: respect mailing_type when comparing a/b mailings
Before this commit
- When we were comparing versions, there was no such filter as
  mailing type. Due to this it will display both SMS and mail
  type records in it.

With this commit
- We have added '('mailing_type', '=', self.mailing_type)' in domain
  of compare version.

TaskId-2713198

X-original-commit: e8542e24597ad25b68104c03d4d4ed41e1efac82
Part-of: odoo/odoo#107488
2022-12-08 13:38:24 +01:00
dht-odoo 91a223bd52 [FIX] mass_mailing: disable A/B testing cron by default
Before this commit, the A/B testing cron was active by default.
It doesn't matter if A/B testing is true or false in settings.
So, with this commit, we set active equals to false by default
in the A/B testing cron. It will be active when the user sets
`group_mass_mailing_campaign` to True.

TaskId-2713198

X-original-commit: b348f8658f87c15d0fe4ee72888e99da2a529700
Part-of: odoo/odoo#107488
2022-12-08 13:38:24 +01:00
Pierre-Yves Dufays 0f69da6ebf [FIX] mass_mailing: fix mail template iframe height + font sizing
The view height of the mail template was too small (30px) when accessing the
mailing view form from the mail campaign menu. This solves the problem.

Note: To get better view and similar to previous version (15.3), font size has
been adjusted.

Technical note: this has been solved by adding a min-height in the css
definition of the class (o_field_mass_mailing_html) used to display the iframe.
This is the same value as the one already used when the template is not yet
chosen.

Task-3067603

closes odoo/odoo#107331

X-original-commit: 38ad5bf080a6948c30b34be57beb073eb377dfd9
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
2022-12-06 17:12:19 +01:00
Jorge Pinna PuissantandMichael Mattiello (mcm) c7c2959449 [IMP] web, *: simplification and standardization of the settings arch
The aim of this commit is to simplify and standardize the settings archs.

To do this, a small DSL exclusively for the settings was created. This
new DSL introduces 3 tags: `app`, `block` and `setting`.

The `app` tag is used to declare the application on the settings view.
It creates an entry with its logo on the sidebar of the view. It also
acts as delimiter when searching.

```xml
    <app string="CRM" name="crm">
    ...
    </app>
```

- `string` : The "display" name of the application.
- `name` : The technical name of the application (the name of the module).
- `logo` *optional* : The relative path to the logo. If not set, the
        logo is created using the `name` parameter :
        `/{name}/static/description/icon.png`.

The `block` tag is used to declare a group of settings. This group can
have a title and a description/help.

```xml
    <block title="Title of group Bar">
    ...
    </block>
```

- `title` *optional* : The title of the block of settings (the old h2),
        you can perform research on its text.
- `help` *optional* : The description/help of the block of settings
        (the old h3), you can perform research on its text.

The `setting` tag is used to declare the setting itself. The first field
in the setting is used as the main field (optional). This field is
placed on the left panel (if it's a boolean field) or on the top of the
right panel (otherwise). The field is also used to create the setting
label if a `string` is not defined. The `setting` tag can also contain
more elements (e.g. html), all of these elements are rendered in the
right panel.

```xml
    <setting string="this is bar">
        <field name="bar"/>
        ...More elements
    </setting>
```

- `type` *optional* : By default, a setting is visually separated on two
        panels (left and right), and is used to edit a given field. By
        defining `type='header'`, a special kind of setting is rendered
        instead. This setting is used to modify the scope of the other
        settings. For example, on the website application, this setting
        is used to indicate to which website the other settings apply.
        The header setting is visually represented as a yellow banner on
        the top of the screen.
- `string` *optional* : The text used as label of the setting. If it's
        not defined, the first field is used as label.
- `title` *optional* : The text used as tooltip.
- `help` *optional* : The help/description of the setting. This text is
        displayed just below the setting label (with classname
        `text-muted`).
- `company_dependent` *optional* : If this attribute is set to "1" an
        icon is displayed next to the setting label to explicit that
        this setting is company-specific.
- `documentation` *optional* :  If this attribute is set, an icon is
        added next to the setting label, this icon is a link to the
        documentation. Note that you can use relative or absolute path.
        The relative path is relative to
        `https://www.odoo.com/documentation/server_version`, so it's not
        necessary to hard-code the server version on the arch anymore.

closes odoo/odoo#106425

Task-id: 3081367
Related: odoo/enterprise#34337
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Co-authored-by: "Michael Mattiello (mcm)" <mcm@odoo.com>
2022-12-02 14:40:25 +01:00
shsa-odoo bd1850d30f [FIX] mass_mailing: should not crash when loading snippets
Current behavior before fix:

In mobile view when we click invite button on events module which loads the
snippet, at that time there was a traceback.

Desired behavior after fix:

Now the snippet gets loaded without any traceback.

Task-2994261

closes odoo/odoo#106734

X-original-commit: 634f6ae4d4208f0551bc2b81c359915eb47316b5
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2022-11-28 18:51:49 +01:00
Patrick Hoste 58fa3d1ece [FIX] mass_mailing: fix unsubscription_date when opt_out on create
Before this commit when creating a mailing contact with a mailing
list opt_out at creation the unsubscription_date wasn't set.
Indeed, from the mailing contact view the mailing list uses an
editable list that passes all the values at create even when not set
contrary to when one update the contact only the changed values are
passed. This commit fix this issue.

Task-3070852

closes odoo/odoo#106682

X-original-commit: e7c22094068ce5cdff7f30178cea6d4f39f09137
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
Signed-off-by: Hoste Patrick (pko) <pko@odoo.com>
2022-11-28 15:53:23 +01:00
Thibault Delavallée 16bc1b7153 [IMP] mass_mailing: show blacklist button by default on portal
PURPOSE

Improve and ease subscription and exclusion list portal pages and management

SPECIFICATIONS

We now consider being able to blacklist their email is a default behavior for
users being redirected to the subscription management portal page.

Task-2150462 (Mass Mailing: Unsubscribe flow improvement)

Part-of: odoo/odoo#106568
2022-11-25 18:55:21 +01:00
Thibault Delavallée efe53fbe88 [IMP] mass_mailing: improve routes naming
Rename main routes, and keep a legacy for the main unsubscribe route to
keep retro compatibility for existing mailings.

Task-2710804 (Mail: Clean MailThread API)
Task-2669037 (Mass Mailing: Subscription page code cleaning)
Prepares Task-2150462 (Mass Mailing: Unsubscribe flow refactoring)

Part-of: odoo/odoo#106568
2022-11-25 18:55:21 +01:00
Thibault Delavallée 6185f14807 [REF] mass_mailing: rename hash methods
PURPOSE

Overall cleaning of subscription and exclusion management code from portal.

SPECIFICATIONS

In this commit we rename methods generating tokens (for recipients and report
management). Otherwise it is hard to distinguish them as naming is not really
convenient to use

  * _unsubscribe_token -> was actually generating token for a given recipient
    on a given mailing;
  * _get_unsubscribe_token -> was actually generating token for mailing
    users to deactivate D+1 KPI reporting;

Hash for mail tracking is also moved in its own method to avoid having the
same code twice. Better delegate it to a tool sub method.

Task-2710804 (Mail: Clean MailThread API)
Task-2669037 (Mass Mailing: Subscription page code cleaning)
Prepares Task-2150462 (Mass Mailing: Unsubscribe flow refactoring)

Part-of: odoo/odoo#106568
2022-11-25 18:55:21 +01:00
Thibault Delavallée b4559e55d2 [REF] mass_mailing: rename templates and controller methods
PURPOSE

Overall cleaning of subscription and exclusion list management code from portal.

SPECIFICATIONS

Rename templates to better understand their purpose. Current naming is not
crystal clear.

Rename controller methods in order to be clearer and more aligned with current
guidelines. Notably namespace by mailing, try to be clearer about their
purpose, ...

No change should occur with this commit.

Task-2710804 (Mail: Clean MailThread API)
Task-2669037 (Mass Mailing: Subscription page code cleaning)
Prepares Task-2150462 (Mass Mailing: Unsubscribe flow refactoring)

Part-of: odoo/odoo#106568
2022-11-25 18:55:21 +01:00
Thibault Delavallée 225b487a3c [IMP] mass_mailing: add helper field when targeting mailing lists
Currently there are several checks on mailed model directly in code due to
mailing list specific behavior. In order to be easier to manipulate and
a bit less low leve, a computed field is introduced for that purpose.

Indeed there are some behavior changes when the mailing runs on mailing lists
instead of directly on records. There are notably some changes in display
(choose mailing lists but mail contact is the real contact model), and in
subscription page (directly unsubscribe from mailing lists).

Task-2710804 (Mail: Clean MailThread API)
Prepares Task-2150462 (Mass Mailing: Unsubscribe flow refactoring)

Part-of: odoo/odoo#106568
2022-11-25 18:55:20 +01:00
Thibault Delavallée f0bbe9561f [REF] mail, mass_mailing: improve logging of emails exclusion
Purpose of this commit is to use the newly introduced feature to log a message
when adding or removing an entry in block list of emails in email marketing
application.

Logging itself is improved, as it now contains

  * source of the request (unsubscribe link, or manual ask through the portal
    unsubscription page);
  * link to the source mailing;
  * link to the document that generated the click (a mailing contact, a sales
    order, ...);

Task-2710804 (Mail: Clean MailThread API)
Prepares Task-2150462 (Mass Mailing: Unsubscribe flow refactoring)

Part-of: odoo/odoo#106568
2022-11-25 18:55:20 +01:00
Thibault Delavallée f72621a445 [FIX] mass_mailing: use frontend assets in subscription page
PURPOSE

Overall cleaning of subscription and exclusion management code from portal.

SPECIFICATIONS

Unsubscribe page uses a custom layout allowing a portal-like behavior for
mass mailing without any link to website or portal. However it currently
uses the complete backend assets. This leads to a lot of unnecessary css
and js being loaded.

When having frontend pages like the one used in mass mailing it should rely
on frontend assets with some custom assets if necessary for the page to
be correctly displayed.

In this commit we choose to use frontend assets like other portal-like pages.
Mailing layout now uses the frontend layout defined in web and adds its own
subset of assets (mailing_assets). Some custom css is moved or added as well
as few tweaks to ensure layouting is globally the same as before this commit.

Task-3082546 (Mass Mailing: Fix assets and unsubscribe page)
Task-2669037 (Mass Mailing: Subscription page code cleaning)
Prepares Task-2150462 (Mass Mailing: Unsubscribe flow refactoring)

Part-of: odoo/odoo#106568
2022-11-25 18:55:19 +01:00
Mahamadasif Ansari c4d6984641 [FIX] mass_mailing: allow upload a file when the contact list value is empty
Currently, in mass mailing, the user cannot be redirected to the next
page after clicking "upload a file" in the import mailing list.

This is because the contact list field is mandatory, so when the user
clicks "upload a file" with an empty contact list, it is unable to
be redirected to the next page, as it saves the wizard before executing the
action.

This commit fixes the above issue by making the contact list field
not mandatory anymore in the wizard view.

Oversight of: aa183fa29d609d2b608fa451ee48a35e3d1549b2

taks-3070829

closes odoo/odoo#106237

X-original-commit: 21272221ebf22b3075c79a759c8ad8f72825b1ef
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
2022-11-22 13:46:07 +01:00
Thibault Delavallée 3d5b012501 [REF] mail, various: cleanup usage of options in render mixin
Due to recent improvements (Jinja -> Qweb, safe rendering) rendering API
supports several ways of giving options to the rendering process. Those
have mainly two usage

  * ``preserve_comments`` : keep comments in rendered HTML, used notably
    in mass mailing or digest to keep browser-specific comments;
  * ``post_process`` : perform a post processing on rendered HTML, used notably
    to process local links and add tracking to shortened links;

All those are now given directly inside an optional ``options`` parameter
given to ``_render_field`` and its sub-method ``_render_template``.

They can also be defined as field level, using ``render_options`` field
parameter. Some fields are updated

  * composer mixin body (which impacts all inheriting models, notably
    mail composer, survey and elearning invite wizards as well as appraisal
    and appraisal feedback): post processing is now always done by default.
    It was already done manually in calls that can be simplified;
  * mail template body_html: post processing is now always done by default. It
    was already done manually in calls that can be simplified;
  * mailing body_html and preview are now post processed by default. It was
    already the case in testing wizard. Preview is updated to avoid post
    processing of links, as it was before. Remaining use case is the sending
    which uses the mail composer, therefore was already post processed;

Finally some 'compute_lang' are explicitly added in _render_field calls in
order to be explicit on what we want, instead of being unsure.

Task-2710804 (Mail: Clean MailThread API)
Prepares Task-2088884 (Mail: Use editable computed stored fields in composer)

Part-of: odoo/odoo#106072
2022-11-21 19:55:13 +01:00
Pierre-Yves Dufays f6e1095c92 [FIX] mass_mailing: fix mobile preview
The preview of a mailing was displayed twice:
- after a save and when clicking on the preview button
- when double-clicking on the preview button
This solves those problems.

Technical notes: quick explanation of the fixes:
- double display after a save: the click event was registered twice (same for
the code preview button), the fix unregister the click before registering it
again.
- double display when double-clicking quickly on the button: the modal is not
displayed immediately and the button remains active a brief moment allowing a
second click. The fix disables the button when the button is clicked and
reenables it when the modal is closed.

Task-3047479

closes odoo/odoo#105974

X-original-commit: 0403938c3e0103d97ae828afdae06fcda06bd406
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-11-21 09:51:13 +01:00
Thibault Delavallée 709a65997d [LINT] mail, various: perform a quick code linting
Purpose is to try to have code easier to read and to update by having a
common way of sorting / writing code. Reorder some fields definitions and
dictionaries, update docstrings, ... in mail applications or when invoking
mail thread API.

Additional stuff worth noting here

  * add some tagged in tests helping debugging / choosing tests to execute;
  * in a test about mail generation with server action: correctly check
    body_html field, not body which comes from the mail.message inheritance
    (currently filled due to a side effect but actual field to check is the
    html one);
  * add same check on input for ``_render_template_qweb`` as done on other
    rendering methods (even if rendering on [False] should be supported);
  * move code translation update from specific tests into main test class
    (code update due to new translations, followup of odoo/odoo@f8c2b02abe);

Some test linting done here

  * reorder mail_render tests, remove some duplicated tests;
  * reorder mail_template tests, remove some duplicated tests;

Task-2710804 (Mail: Clean MailThread Posting API)

closes odoo/odoo#106025

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-11-18 14:00:30 +01:00
Mahamadasif Ansari a821237a81 [FIX] mass_mailing: include the correct file reference in the demo data
Currently in mass mailing, the logo is missing in template id "mass_mail_1" of
the demo data. This is because there is a wrong file reference in the template.

With a recent refactoring (see commit[1]), it renames the "s_default_image_logo"
with "s_default_image_header_logo" but not change the file reference in
the demo data.

This commit resolves the above issue by including the correct file reference
in the demo data template.

commit[1] -https://github.com/odoo/odoo/commit/a559fe4
task-3054248

closes odoo/odoo#105817

X-original-commit: 9711103632521d111d7ce4e179d298a95d32e759
Related: odoo/enterprise#33972
Signed-off-by: Stéphane Debauche (std) <std@odoo.com>
2022-11-16 07:32:39 +01:00
Mahamadasif Ansari dfdec50617 [FIX] mass_mailing: fix missing logo in welcome message template
Currently in mass_mailing when the user selects the welcome message
template in the mailing body, the logo is missing.

This is because the name of the logo image does not match the format, so
it converts the extension of the source image from png to jpg.

With a recent refactoring (see commit[1]), it renames the "s_default_image_logo"
with "s_default_image_header_logo", so when loading the template, the format of
the file name does not match with "s_default_image_logo" so it converts the
extension of the source of the image in the template from png to jpg, and
as a result, the image is not found.

This commit resolves the above issue by adding the "header_logo" context,
which prevents it from converting "s_default_image_logo" png to jpg. 

commit[1] -https://github.com/odoo/odoo/commit/a559fe4
task-3054248

X-original-commit: b41e8685f9b0462154f859441eebfd3a660c616c
Part-of: odoo/odoo#105817
2022-11-16 07:32:39 +01:00
niyasraphy 868f40a9f9 [FIX] mass_mailing: typo in closing tag
closes odoo/odoo#105605

X-original-commit: 19f42ec08780c889a3ee25db4092a5ed78051722
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2022-11-15 13:01:32 +01:00
Patrick Hoste 2504a0bd2b [FIX] mass_mailing: change favourite filter helper icon
This commit changes the favourtie filter helper icon to
match the one in the mailing.mailing view.

Task-3048050

closes odoo/odoo#104756

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-11-14 14:20:36 +01:00
Adrien Schoffeniels 3bee8ae039 [FIX] mass_mailing: fix alert in full-width form view's header
Purpose:
--------
In the full-width form view of mailing, the alert-info message was not
displayed correctly: it did not fill the whole empty space in the header

This message is now always filling the gap between the buttons and the
status widget of the header.

Task-3010933

closes odoo/odoo#104868

X-original-commit: f216b7e6cf607e18fd54655aca1a0df5a951ce76
Signed-off-by: Stéphane Debauche (std) <std@odoo.com>
2022-11-03 16:43:29 +01:00
niyasraphy 8aa43bd7e5 [FIX] mass_mailing: do not crash when importing a void contact list
Mass mailing has a wizard to import contacts from a text input. It currently
crashes when trying to import a void field, while it should not.

We fix that by two means
  * make field required in view (as model cannot be modified);
  * while it is not updated, simply consider a void input should not crash and
    is considered as an input without valid input found;

Task-3053031

closes odoo/odoo#104769

X-original-commit: aa183fa29d609d2b608fa451ee48a35e3d1549b2
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-11-03 08:42:44 +01:00
Renaud Thiry 84b4af755d [FIX] mass_mailing: remove gold color in stats
Commit a170b7265e158323d3769f1631314f06c96a6e4b
applies the star color to all stars in the form view

The star in the stats bar should remain black.

task-3044832

closes odoo/odoo#104210

X-original-commit: b2f37a06546638fde69d392dfec3d76fc15ca0e3
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-10-26 19:03:58 +02:00
qsm-odoo c6561929f3 [REF] web_editor, *: review data-js + data-option-name duplicate
*: mass_mailing, website

Commit [1] introduced data-option-name allowing to name snippet options
without data-js so that their automatic snippet-option-XXX class was
not snippet-option-undefined. This was indeed useful to target specific
options in tours.

The attribute is however a complete duplicate of data-js (if you use
one or the other, it does exactly the same thing). Indeed, you can
define a data-js without a linked JS class (as it is already done). And
if you define both expecting the class using data-option-name but the JS
used from data-js that won't be the case, data-option-name is simply
ignored.

This removes data-option-name. This prepares refactorings that will be
done in the future:

- The way to define option in XML will be reviewed (probably client
  side definitions, probably OWL templates).

- Adding data-js will probably require a JS class to exist, but all
  option definitions of Odoo will declare one to ease extensions and
  stable fixes.

Those are theoretical at this point though. This commit main focus is
simplifying the code.

[1]: https://github.com/odoo/odoo/commit/7b0a147cd43e8e890ebe5a882292a69a5c8c90ac

closes odoo/odoo#103988

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2022-10-26 12:23:09 +02:00
Renaud Thiry eeb8197516 [FIX] mass_mailing: reduce pad on template select
There was too much padding up and down from the tooltip.

Adds conditional display on the template menu
when there are no templates (t-for-each is not fully empty).

Also fixes the favorite  icon color in edit mode.

task #2984478

closes odoo/odoo#104108

X-original-commit: a170b7265e158323d3769f1631314f06c96a6e4b
Signed-off-by: Stéphane Debauche (std) <std@odoo.com>
2022-10-26 08:09:23 +02:00
FrancoisGe 70a80d4cd1 [FIX] web: click on wrong options in autocomplete
The purpose of this commit is to fix an indeterminate error in
the test_03_sale_quote_tour.

Error: UncaughtTypeError: Cannot read properties of undefined (reading
'unselectable')

Why:
In the autocomplete component, it is possible to replace the sources
without it being rerender. It is therefore possible to click on a option
that no longer exists in the component's internal state, which causes
the crash.

Solution:
We wait that all the sources are loaded before replacing them.

closes odoo/odoo#103497

X-original-commit: f25df0be75082caf9e8ed62c581a13fe82a27546
Signed-off-by: Samuel Degueldre <sad@odoo.com>
Signed-off-by: Georis François (fge) <fge@odoo.com>
2022-10-20 10:19:47 +02:00
Nicolas Bayet ea9c886595 [FIX] mass_mailing: prevent theme picker to reload
Before this commit
The theme "Start From Scratch" could not be selected as the theme
picker was reloaded when clicking on that template.

closes odoo/odoo#103034

X-original-commit: 1a1d1c0f229aa0d29cf22806ffb1be04ab9cfa1c
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2022-10-11 16:57:02 +02:00
Nicolas Bayet 9a67b3874f [FIX] web_editor: update editor value when changing records
Before this commit
1) click on a record in a list view
2) change the html field of a record
3) click on the top right arrow to change the next record
4) click on the top right arrow to change the previous record
5) click on the top right arrow to change the previous record

The value is not updated corretly at step 4, retaining the value from the
previous record. The wrong value is then saved at step 5.

After this commit
Properly reset the HtmlField property `currentEditingValue` when
the update of props value does not comes from the editor.

X-original-commit: 39d02c3cdc2d4256b62cd6414369a8cf82efff48
Part-of: odoo/odoo#103034
2022-10-11 16:57:02 +02:00
Romain Estievenart 06948a763e [IMP] *: adapt bundle to support dark mode switch
This commit adapt all bundle to support dark mode

task-2710677

Part-of: odoo/odoo#102868
2022-10-11 13:15:54 +02:00
Antoine Guenet b731ae7bb1 [FIX] mass_mailing: prevent dropping snippets outside mailing
The fix at [1] had to be adapted anyway since the conversion to OWL. As
a result it was possible to drop snippets below the mailing area.

[1]: https://github.com/odoo/odoo/pull/77724/commits/65b67d66de72fab390b8887c12532b840d47c95f

task-3002441

closes odoo/odoo#102972

X-original-commit: fe4006997daeb5d323b364821fc2815a45e78495
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2022-10-11 12:13:37 +02:00
Antoine Guenet eed8d19948 [FIX] mass_mailing: open editor toolbar dropdowns above the toggler
The editor's toolbar is at the very bottom of mass_mailing's sidebar,
making dropdowns pretty awkward as they often require the user to scroll
down to see them. This extends the editor's toolbar for mass_mailing so
all dropdowns become dropups instead.

closes odoo/odoo#102734

X-original-commit: d4b5527113a6092063cba3409d870c5c45a8cd03
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2022-10-10 10:54:06 +02:00
Antoine Guenet 8a74c1f793 [FIX] web_editor, mass_mailing: properly resize mass_mailing iframe
The iframe in mass_mailing is self-resizing in order to avoid having two
vertical scrollbar side by side. This failed since the conversion to OWL
due to the vertical offset added when resizing having become
insufficient. This adds a class to the <html> element of the iframe to
identify when it's in the context of mass_mailing so we can remove the
overflow visible style that is not needed in this context. This allows
us to remove that vertical offset altogether since the scrollbar
disappeared.

X-original-commit: 4f538911d68afdeca0253f15c9e8ffdbed4e995c
Part-of: odoo/odoo#102734
2022-10-10 10:54:05 +02:00
Antoine Guenet 7380fd7d68 [FIX] mass_mailing: position tour tooltip so it doesn't overflow body
One of `mass_mailing_tour`'s tooltips was overflowing the body and
causing a horizontal scrollbar. This repositions it so that doesn't
happen.

X-original-commit: 4e2ccb51991cbe4428f084f333c57b78851f73b0
Part-of: odoo/odoo#102734
2022-10-10 10:54:05 +02:00
Nicolas Bayet c7322d19ee [FIX] mass_mailing: show mass mailing picker on create
Before this commit
When clicking on "create" from a form view in mass_mailing, the
"template picker" was not presented.

task-3002100

closes odoo/odoo#102725

X-original-commit: 664d5982663517e8e2f2f87b355fd7d3c72285f1
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2022-10-10 10:54:00 +02:00
Sébastien Geelen (sge) 99ff8c79aa [FIX] web_editor : dynamicPlaceholder in mail template
Allow the mail templates to activate the dynamic placeholder
like in mass_mailing.

task-2978722

closes odoo/odoo#102603

X-original-commit: f98c472a6d3cd79c28b7b91bdc8359c45c4d3c7a
Related: odoo/enterprise#32484
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Signed-off-by: Geelen Sébastien (sge) <sge@odoo.com>
2022-10-07 14:37:21 +02:00
Sébastien Geelen (sge) e483ae5fb4 [FIX] web,web_editor,mail : Fix ModelFieldSelector and DynamicPlaceholder
Add missing feature of the ModelFieldSelector popover :
* keyboard navigation
* additional debug value
* add default value page ( for dynamic placeholder)
* add validate callback

Migrate dynamic placeholder to be compatible with new OWL field.

task-2978722

X-original-commit: 929108e29168058fad5da85e0ff9c66d2c5b2525
Part-of: odoo/odoo#102603
2022-10-07 14:37:20 +02:00
Martin Trigaux fde3f4d4b9 [I18N] *: export 16.0 source terms
closes odoo/odoo#102163

X-original-commit: 011d7aac5aacedb3ab373f247471ba69d67f50f3
Related: odoo/enterprise#32288
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2022-10-06 14:56:52 +02:00
Renaud Thiry eaf905d55a [IMP] mass_mailing: hide mailing option on invalid
Currently when creating a composer in mass mode
the composer always shows the 'mass mailing name' option
even when a mailing cannot be created.

This silently creates a regular mass mail.

This hides that option when selecting records of models
that do not inherit from thread. So that users do not falsly
believe a mailing will be created.

task #2990447

closes odoo/odoo#102105

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-10-06 14:56:49 +02:00
Arthur Detroux (ard)andqsm-odoo 84f6010fc1 [FIX] mass_mailing, *: fix options conflicts between modules
*: web_editor, website

Prior to this commit, the template structure for declaring the snippet
options used in a specific context (website, mass_mailing, ...) made it
hard to easily modify SnippetOptions defined in web_editor.

Indeed, the structure was as below
```xml
<template>
    <t t-call="web_editor.snippet_options" />
    ... Additional Options ...
</template>
```
If someone wanted to alter the behaviour of an option from web_editor
for their module, they had 2 solutions

- To extract that option inside another template, extend that template
inside their own module, remove its call from web_editor and instead
call manually the option inside each module (preferred method)

- To impact the web_editor template directly with an extension instead
of a new primary template or override JS options using include or
replacing an option inside the registry.

The second solution was often used but created extra code to make sure
that other modules were not impacted... and it was often not properly
done. For example:

- [1] and [2] introduced javascript code inside the web_editor options
  and isolating it by checking if they are in fact, inside mass_mailing.

- [3] adds code in mass_mailing mentioning JS classes of website, and
  actually broke parallax for website (after [5]).

- [4] broke the image transform option for website (after [5]).

- [6] added some shapes for mass mailing images but ended up adding them
  for the website builder too.

- [7] created different images options for mass_mailing... but ended up
  impacting website options too. Half of those can actually either be
  put in web_editor to improve everything or just in mass_mailing to not
  break the website.

- ...

This commit tries to fix everything "the right way" in master (and will
be backported for the recent 16.0). Other stable fixes will need to be
made to restore the website options in a stable way.

To fix that, this commit changes the structure to
```xml
<template inherit_id="web_editor.snippet_options" primary="True">
    <xpath ...>
        ... Change existing options ...
    </xpath>
    <xpath expr="." position="inside">
        ... Additional options ...
    </xpath>
</template>
```
This allows each module to modify the existing web_editor templates
without impacting it and each other. They can even change the JS
behaviour by using an XPath to replace the data-js of an option, and
changing it to their own extended version of the JS option.

[1]: https://github.com/odoo/odoo/commit/f296992317e96562c66bd7ad59a5080d6c551ed5#diff-df5e4ff426027c53ebe6e25c25820fb92237c17a036f6202a93e5ca681ec8c16R134-R138
[2]: https://github.com/odoo/odoo/commit/cd403480f90cf7103651f3be818a14b06d3c73ca#diff-df5e4ff426027c53ebe6e25c25820fb92237c17a036f6202a93e5ca681ec8c16R175
[3]: https://github.com/odoo/odoo/commit/e9237ae8004502a3071e8ceb132d9dac11fe00b3#diff-df5e4ff426027c53ebe6e25c25820fb92237c17a036f6202a93e5ca681ec8c16R372
[4]: https://github.com/odoo/odoo/commit/ff422df49201be6ed7baa11ef3deb5b9a41042a7
[5]: https://github.com/odoo/odoo/commit/31cc10b91dc7762e23b4bde9b945be0c4ce3fe3b
[6]: https://github.com/odoo/odoo/commit/24a4c7f897d4db6bdf0f3cbfc91a3ce7351241a2
[7]: https://github.com/odoo/odoo/commit/d0c2d8e9a1436a8eaf263797c790329f81d7615b

closes odoo/odoo#99850

Related: odoo/design-themes#597
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Co-authored-by: qsm-odoo <qsm@odoo.com>
2022-10-04 17:01:17 +02:00
Florian Charlier 740df02e35 [FIX] mass_mailing: fix kanban card joined contents
Purpose: split words with whitespace, as it's usually done.

Task-3004148

closes odoo/odoo#102021

X-original-commit: 0504aff9e4ffd731f3457126385b35f426877f56
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-10-04 13:29:06 +02:00
Patrick Hoste 34f1274fe6 [IMP] mass_mailing: add a mobile preview to mailing editor
PURPOSE

With this commit you can now see how the mailing you're creating
will look like on a mobile.

LINKS

Task-2818037

closes odoo/odoo#101822

X-original-commit: 2b195390e15c9ed3b54f0adf0afc439f06429616
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-10-02 12:19:41 +02:00
Jérémy Hennecart (jeh) e78450473f [IMP] mass_mailing: owlify filter widget
Owlification of the mailing filter widget

task-2984157

closes odoo/odoo#101823

X-original-commit: 454e6ad7319ca30aa5d1093fb9959a8ce6d60baf
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
2022-10-01 16:05:18 +02:00