social/mass_mailing_custom_unsubscribe/views/mail_unsubscription_view.xml

144 lines
5.2 KiB
XML
Raw Permalink Normal View History

2021-01-26 15:06:17 +01:00
<?xml version="1.0" encoding="utf-8" ?>
[9.0][MIG][mass_mailing_custom_unsubscribe] Migrate. - Imported last updates from v8. - Adapted to v9. - Added a saner default to `mass_mailing.salt` configuration parameter by reusing `database.secret` if available, hoping that some day https://github.com/odoo/odoo/pull/12040 gets merged. - Updated README. - Increase security, drop backwards compatibility. Security got improved upstream, which would again break compatibility among current addon and future master upstream. I choose to break it now and keep it secured future-wise, so I drop the backwards compatibility features. - Includes tour tests. - Removes outdated tests. - Extends the mailing list management form when unsubscriber is a contact. - Adds a reason form even if he is not. - Avoids all methods that were not model-agnostic. [FIX][mass_mailing_custom_unsubscribe] Reasons noupdate After this fix, when you update the addon, you will not lose your customized reasons. [FIX] Compatibilize with mass_mailing_partner Current test code was based on the assumption that the `@api.model` decorator on `create()` ensured an empty recordset when running the method, but that's not true. This was causing an incompatibility betwee these tests and the `mass_mailing_partner` addon, which works assuming 0-1 recordsets. Now records are created from an empty recordset, and thus tests work everywhere. Update instructions If the user does not add the unsubscribe snippet, nothing will happen, so it's added to README to avoid confusion when testing/using the addon. [FIX] Use the right operator to preserve recordsets order Using `|=` sorts records at will each time (treating them as Python's `set`). Using `+=` always appends a record to the end of the set. Since we are using the record position in the set, this caused the test to work sometimes and fail other times. Now it works always.
2016-11-11 14:41:20 +01:00
<!-- Copyright 2016 Jairo Llopis <jairo.llopis@tecnativa.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
[9.0][MIG][mass_mailing_custom_unsubscribe] Migrate. - Imported last updates from v8. - Adapted to v9. - Added a saner default to `mass_mailing.salt` configuration parameter by reusing `database.secret` if available, hoping that some day https://github.com/odoo/odoo/pull/12040 gets merged. - Updated README. - Increase security, drop backwards compatibility. Security got improved upstream, which would again break compatibility among current addon and future master upstream. I choose to break it now and keep it secured future-wise, so I drop the backwards compatibility features. - Includes tour tests. - Removes outdated tests. - Extends the mailing list management form when unsubscriber is a contact. - Adds a reason form even if he is not. - Avoids all methods that were not model-agnostic. [FIX][mass_mailing_custom_unsubscribe] Reasons noupdate After this fix, when you update the addon, you will not lose your customized reasons. [FIX] Compatibilize with mass_mailing_partner Current test code was based on the assumption that the `@api.model` decorator on `create()` ensured an empty recordset when running the method, but that's not true. This was causing an incompatibility betwee these tests and the `mass_mailing_partner` addon, which works assuming 0-1 recordsets. Now records are created from an empty recordset, and thus tests work everywhere. Update instructions If the user does not add the unsubscribe snippet, nothing will happen, so it's added to README to avoid confusion when testing/using the addon. [FIX] Use the right operator to preserve recordsets order Using `|=` sorts records at will each time (treating them as Python's `set`). Using `+=` always appends a record to the end of the set. Since we are using the record position in the set, this caused the test to work sometimes and fail other times. Now it works always.
2016-11-11 14:41:20 +01:00
<odoo>
<record id="mail_unsubscription_view_form" model="ir.ui.view">
<field name="name">Mail Unsubscription Form</field>
<field name="model">mail.unsubscription</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
2021-01-26 15:06:17 +01:00
<field name="date" />
<field name="mass_mailing_id" />
<field name="unsubscriber_id" />
<field name="mailing_list_ids" widget="many2many_tags" />
<field name="email" />
<field name="action" />
<field
name="reason_id"
attrs="{'required': [('action', '=', 'unsubscription')]}"
/>
<field
name="details"
attrs="{'required': [('details_required', '=', True)]}"
/>
<field name="details_required" invisible="True" />
<field name="metadata" />
</group>
</sheet>
<div class="oe_chatter">
2021-01-26 15:06:17 +01:00
<field
name="message_follower_ids"
widget="mail_followers"
groups="base.group_user"
/>
<field name="message_ids" widget="mail_thread" />
</div>
</form>
</field>
</record>
<record id="mail_unsubscription_view_tree" model="ir.ui.view">
<field name="name">Mail Unsubscription Tree</field>
<field name="model">mail.unsubscription</field>
<field name="arch" type="xml">
<tree decoration-warning="action in ['unsubscription', 'blacklist_add']">
2021-01-26 15:06:17 +01:00
<field name="date" />
<field name="mass_mailing_id" />
<field name="unsubscriber_id" />
<field name="mailing_list_ids" widget="many2many_tags" />
<field name="email" invisible="True" />
<field name="action" />
<field name="reason_id" />
<field name="details" invisible="True" />
</tree>
</field>
</record>
<record id="mail_unsubscription_view_search" model="ir.ui.view">
<field name="name">Mail Unsubscription Search</field>
<field name="model">mail.unsubscription</field>
<field name="arch" type="xml">
<search>
2021-01-26 15:06:17 +01:00
<field name="mass_mailing_id" />
<field name="unsubscriber_id" />
<field name="mailing_list_ids" />
<field name="email" />
<field name="reason_id" />
<field name="details" />
<separator />
<group string="Group by">
2021-01-26 15:06:17 +01:00
<filter
name="group_by_month"
string="Month"
2021-01-26 15:06:17 +01:00
context="{'group_by': 'date:month'}"
/>
<filter
name="group_by_year"
string="Year"
2021-01-26 15:06:17 +01:00
context="{'group_by': 'date:year'}"
/>
<filter
name="group_by_action"
string="Action"
2021-01-26 15:06:17 +01:00
context="{'group_by': 'action'}"
/>
<filter
name="group_by_email"
string="Email"
2021-01-26 15:06:17 +01:00
context="{'group_by': 'email'}"
/>
<filter
name="group_by_reason"
string="Reason"
2021-01-26 15:06:17 +01:00
context="{'group_by': 'reason_id'}"
/>
<filter
name="group_by_mass_mailing"
string="Mass mailing"
2021-01-26 15:06:17 +01:00
context="{'group_by': 'mass_mailing_id'}"
/>
</group>
</search>
</field>
</record>
<record model="ir.ui.view" id="mail_unsubscription_view_pivot">
<field name="name">Mail Unsubscription Pivot</field>
<field name="model">mail.unsubscription</field>
<field name="arch" type="xml">
<pivot string="(Un)subscriptions">
2021-01-26 15:06:17 +01:00
<field name="reason_id" type="row" />
<field name="mailing_list_ids" type="row" />
<field name="action" type="col" />
</pivot>
</field>
</record>
<record model="ir.ui.view" id="mail_unsubscription_view_graph">
<field name="name">Mail Unsubscription Graph</field>
<field name="model">mail.unsubscription</field>
<field name="arch" type="xml">
<graph string="(Un)subscriptions">
2021-01-26 15:06:17 +01:00
<field name="date" type="row" />
<field name="action" type="col" />
</graph>
</field>
</record>
<record id="mail_unsubscription_action" model="ir.actions.act_window">
<field name="name">(Un)subscriptions</field>
<field name="res_model">mail.unsubscription</field>
<field name="view_mode">tree,form,pivot,graph</field>
</record>
2021-01-26 15:06:17 +01:00
<menuitem
id="mail_unsubscription_menu"
parent="mass_mailing.mass_mailing_menu_root"
action="mail_unsubscription_action"
/>
[9.0][MIG][mass_mailing_custom_unsubscribe] Migrate. - Imported last updates from v8. - Adapted to v9. - Added a saner default to `mass_mailing.salt` configuration parameter by reusing `database.secret` if available, hoping that some day https://github.com/odoo/odoo/pull/12040 gets merged. - Updated README. - Increase security, drop backwards compatibility. Security got improved upstream, which would again break compatibility among current addon and future master upstream. I choose to break it now and keep it secured future-wise, so I drop the backwards compatibility features. - Includes tour tests. - Removes outdated tests. - Extends the mailing list management form when unsubscriber is a contact. - Adds a reason form even if he is not. - Avoids all methods that were not model-agnostic. [FIX][mass_mailing_custom_unsubscribe] Reasons noupdate After this fix, when you update the addon, you will not lose your customized reasons. [FIX] Compatibilize with mass_mailing_partner Current test code was based on the assumption that the `@api.model` decorator on `create()` ensured an empty recordset when running the method, but that's not true. This was causing an incompatibility betwee these tests and the `mass_mailing_partner` addon, which works assuming 0-1 recordsets. Now records are created from an empty recordset, and thus tests work everywhere. Update instructions If the user does not add the unsubscribe snippet, nothing will happen, so it's added to README to avoid confusion when testing/using the addon. [FIX] Use the right operator to preserve recordsets order Using `|=` sorts records at will each time (treating them as Python's `set`). Using `+=` always appends a record to the end of the set. Since we are using the record position in the set, this caused the test to work sometimes and fail other times. Now it works always.
2016-11-11 14:41:20 +01:00
</odoo>