Odoo18-Base/addons/mail_group/views/mail_group_views.xml
2025-01-06 10:57:38 +07:00

178 lines
10 KiB
XML

<?xml version="1.0"?>
<odoo>
<record id="mail_group_view_list" model="ir.ui.view">
<field name="name">mail.group.view.list</field>
<field name="model">mail.group</field>
<field name="arch" type="xml">
<list sample="1">
<field name="name"/>
<field name="alias_email" string="Alias"/>
<field name="moderation" string="Moderated"/>
<field name="member_count" string="Members"/>
</list>
</field>
</record>
<record id="mail_group_view_kanban" model="ir.ui.view">
<field name="name">mail.group.view.kanban</field>
<field name="model">mail.group</field>
<field name="arch" type="xml">
<kanban string="Mail Groups" sample="1">
<field name="is_member"/>
<templates>
<t t-name="card" class="flex-row">
<aside>
<field name="image_128" widget="image" alt="Group"/>
</aside>
<main>
<span class="fw-bold fs-5">#<field name="name"/></span>
<field class="text-truncate text-nowrap" name="description"/>
<span>
<field name="member_count"/>
<t t-if="record.member_count.raw_value > 1">Members</t>
<t t-else="">Member</t>
</span>
<button type="object" invisible="is_member" class="btn btn-primary ms-auto" name="action_join">Join</button>
<button type="object" invisible="not is_member" class="btn btn-secondary ms-auto" name="action_leave">Leave</button>
</main>
</t>
</templates>
</kanban>
</field>
</record>
<record id="mail_group_view_form" model="ir.ui.view">
<field name="name">mail.group.view.form</field>
<field name="model">mail.group</field>
<field name="arch" type="xml">
<form string="Mail Group">
<header>
<button type="object" invisible="is_member"
class="btn btn-primary" name="action_join" string="Join"/>
<button type="object" invisible="not is_member"
class="btn btn-secondary" name="action_leave" string="Leave"/>
<button name="action_send_guidelines" type="object" class="btn btn-secondary" string="Send Guidelines"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box" groups="base.group_user" invisible="not can_manage_group">
<button name="%(mail_group.mail_group_member_action)d"
type="action"
context="{'search_default_mail_group_id': id}"
class="oe_stat_button"
icon="fa-users"
help="Members of this group">
<field name="member_count" widget="statinfo" string="Members"/>
</button>
<button name="%(mail_group.mail_group_message_action)d"
type="action"
context="{'search_default_mail_group_id': id}"
class="oe_stat_button"
icon="fa-envelope"
help="All messages of this group">
<field name="mail_group_message_count" widget="statinfo" string="Emails"/>
</button>
<button name="%(mail_group.mail_group_message_action)d"
type="action"
context="{'search_default_mail_group_id': id, 'search_default_moderation_status': 'pending_moderation'}"
class="oe_stat_button"
icon="fa-commenting-o"
help="Emails waiting an action for this group"
invisible="not moderation">
<field name="mail_group_message_moderation_count" widget="statinfo" string="To Review"/>
</button>
<button name="%(mail_group.mail_group_moderation_action)d"
type="action"
context="{'search_default_mail_group_id': id}"
invisible="not moderation"
class="oe_stat_button"
icon="fa-gavel"
help="Moderated emails in this group">
<field name="moderation_rule_count" widget="statinfo" string="Moderations"/>
</button>
</div>
<field name="image_128" widget="image" class="oe_avatar" options="{'size': [90, 90]}"/>
<div class="oe_title">
<label for="name" string="Group Name"/>
<h1>
<field name="name" class="oe_inline" default_focus="1" placeholder='e.g. "Newsletter"'/>
</h1>
</div>
<group>
<group>
<field name="active" invisible="1"/>
<label for="alias_name" string="Email Alias"/>
<div class="oe_inline" name="alias_def">
<field name="alias_id" class="oe_read_only oe_inline" string="Email Alias" required="0"/>
<div class="oe_inline" name="edit_alias" style="display: inline;">
<div class="oe_edit_only" dir="ltr">
<field name="alias_name" placeholder="alias" class="oe_inline"/>@
<field name="alias_domain_id" class="oe_inline" placeholder="e.g. mycompany.com"
options="{'no_create': True, 'no_open': True}"/>
</div>
<button icon="oi-arrow-right" type="action" name="%(base_setup.action_general_configuration)d"
string="Choose or configure a custom domain" class="p-0 btn-link"
invisible="alias_domain_id"/>
</div>
</div>
<field name="description"/>
<field name="moderation"/>
<td class="o_td_label">
<label for="moderator_ids" string="Moderators" invisible="not moderation"/>
<label for="moderator_ids" string="Responsible Users" invisible="moderation"/>
</td>
<field name="moderator_ids" widget="many2many_tags" class="oe_inline" nolabel="1"/>
<field name="is_moderator" invisible="1"/>
<field name="can_manage_group" invisible="1"/>
<field name="is_member" invisible="1"/>
</group>
</group>
<notebook>
<page name="privacy" string="Privacy">
<group>
<field name="access_mode" widget="radio"/>
<field name="access_group_id" invisible="access_mode != 'groups'" required="access_mode == 'groups'"/>
<field name="alias_contact" invisible="1"/>
</group>
</page>
<page name="moderation" string="Notify Members" invisible="not moderation">
<group>
<field name="moderation_notify"/>
<field invisible="not moderation_notify" required="moderation_notify" name="moderation_notify_msg"/>
</group>
</page>
<page name="guidelines" string="Guidelines">
<group>
<field name="moderation_guidelines"/>
<field required="moderation_guidelines" name="moderation_guidelines_msg"/>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="mail_group_view_search" model="ir.ui.view">
<field name="name">mail.group.view.search</field>
<field name="model">mail.group</field>
<field name="arch" type="xml">
<search string="Search Mail group">
<field name="name"/>
<field name="alias_email"/>
<separator/>
<filter string="Archived" name="archived" domain="[('active', '=', False)]"/>
<filter string="Moderated" name="moderation" domain="[('moderation', '=', True)]"/>
<group expand="0" string="Group By">
<filter string="Moderation" name="Moderation" context="{'group_by':'moderation'}"/>
</group>
</search>
</field>
</record>
<record id="mail_group_action" model="ir.actions.act_window">
<field name="name">Mail Groups</field>
<field name="res_model">mail.group</field>
<field name="view_mode">kanban,list,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">Create a Mail Group</p>
<p>Mailing groups are communities that like to discuss a specific topic together.</p>
</field>
</record>
</odoo>