mirror of
https://github.com/bringout/oca-ocb-core.git
synced 2026-04-22 00:12:07 +02:00
Initial commit: Core packages
This commit is contained in:
commit
12c29a983b
9512 changed files with 8379910 additions and 0 deletions
|
|
@ -0,0 +1,54 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<template id="mail.discuss_public_layout"><!DOCTYPE html>
|
||||
<html class="h-100">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
|
||||
<title t-esc="title or 'Odoo'"/>
|
||||
<link type="image/x-icon" rel="shortcut icon" t-att-href="x_icon or '/web/static/img/favicon.ico'"/>
|
||||
|
||||
<script>
|
||||
window.odoo = {
|
||||
__session_info__: <t t-out="json.dumps(session_info)"/>,
|
||||
csrf_token: "<t t-out="request.csrf_token(None)"/>",
|
||||
debug: "<t t-out="debug"/>",
|
||||
};
|
||||
{
|
||||
const { user_context, cache_hashes } = odoo.__session_info__;
|
||||
fetch(`/web/webclient/translations/${cache_hashes.translations}?lang=${user_context.lang}`);
|
||||
}
|
||||
</script>
|
||||
|
||||
<t t-call-assets="mail.assets_common_discuss_public"/>
|
||||
<t t-call-assets="mail.assets_discuss_public"/>
|
||||
<t t-call-assets="mail.assets_discuss_public_test_tours" t-if="'tests' in debug or test_mode_enabled"/>
|
||||
|
||||
<t t-out="head or ''"/>
|
||||
</head>
|
||||
<body class="d-flex flex-column h-100">
|
||||
<t t-out="body or ''"/>
|
||||
</body>
|
||||
</html>
|
||||
</template>
|
||||
|
||||
<template id="mail.discuss_public_channel_template" name="Discuss Public Channel Template">
|
||||
<t t-call="mail.discuss_public_layout">
|
||||
<t t-set="head">
|
||||
<style>
|
||||
body {
|
||||
direction: <t t-out="env['res.lang']._lang_get(lang or env.user.lang).direction or 'ltr'" />;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
odoo.define('mail.discuss_public_channel_template', function() {
|
||||
return {
|
||||
data: <t t-out="json.dumps(data)"/>,
|
||||
};
|
||||
});
|
||||
</script>
|
||||
</t>
|
||||
</t>
|
||||
</template>
|
||||
</odoo>
|
||||
113
odoo-bringout-oca-ocb-mail/mail/views/fetchmail_views.xml
Normal file
113
odoo-bringout-oca-ocb-mail/mail/views/fetchmail_views.xml
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
|
||||
<record id="view_email_server_tree" model="ir.ui.view">
|
||||
<field name="name">fetchmail.server.list</field>
|
||||
<field name="model">fetchmail.server</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="POP/IMAP Servers">
|
||||
<field name="name"/>
|
||||
<field name="server_type"/>
|
||||
<field name="user"/>
|
||||
<field name="date"/>
|
||||
<field name="state" widget="badge"
|
||||
decoration-info="state == 'draft'"
|
||||
decoration-success="state == 'done'"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_email_server_form" model="ir.ui.view">
|
||||
<field name="name">fetchmail.server.form</field>
|
||||
<field name="model">fetchmail.server</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Incoming Mail Server">
|
||||
<header attrs="{'invisible' : [('server_type', '=', 'local')]}">
|
||||
<button string="Test & Confirm" type="object" name="button_confirm_login" states="draft"/>
|
||||
<button string="Fetch Now" type="object" name="fetch_mail" states="done"/>
|
||||
<button string="Reset Confirmation" type="object" name="set_draft" states="done"/>
|
||||
<field name="state" widget="statusbar"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<field name="active" invisible="1"/>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="bg-danger"
|
||||
attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="server_type" widget="radio" attrs="{'readonly': [('state', '=', 'done')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="date" attrs="{'invisible': [('date', '=', False)]}"/>
|
||||
<div class="text-muted fst-italic" colspan="8" role="alert"
|
||||
attrs="{'invisible': [('server_type_info', '=', False)]}">
|
||||
<field name="server_type_info"/>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Server & Login" name="server_login_details">
|
||||
<group>
|
||||
<group attrs="{'invisible' : [('server_type', '=', 'local')]}" string="Server Information">
|
||||
<field name="server" attrs="{'required' : [('server_type', '!=', 'local')]}" />
|
||||
<field name="port"
|
||||
required="1"
|
||||
attrs="{'required' : [('server_type', '!=', 'local')]}"
|
||||
options="{'format': false}" />
|
||||
<field name="is_ssl"/>
|
||||
</group>
|
||||
<group attrs="{'invisible' : [('server_type', '=', 'local')]}" string="Login Information">
|
||||
<field name="user" attrs="{'required' : [('server_type', '!=', 'local')]}"/>
|
||||
<field name="password" password="True"
|
||||
attrs="{'required' : [('server_type', 'in', ('imap', 'pop'))], 'invisible' : [('server_type', 'not in', ('imap', 'pop'))]}"/>
|
||||
</group>
|
||||
<group string="Actions to Perform on Incoming Mails">
|
||||
<field name="object_id"/>
|
||||
</group>
|
||||
<group attrs="{'invisible' : [('server_type', '!=', 'local')]}" string="Configuration">
|
||||
<field name="configuration"/>
|
||||
<field name="script" widget="url"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Advanced" name="advanced_options" groups="base.group_no_one">
|
||||
<group>
|
||||
<group string="Advanced Options">
|
||||
<field name="priority"/>
|
||||
<field name="attach"/>
|
||||
<field name="original"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_email_server_search" model="ir.ui.view">
|
||||
<field name="name">fetchmail.server.search</field>
|
||||
<field name="model">fetchmail.server</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Incoming Mail Servers">
|
||||
<field name="name" string="Incoming Mail Server"/>
|
||||
<field name="user"/>
|
||||
<filter string="IMAP" name="imap" domain="[('server_type', '=', 'imap')]" help="Server type IMAP."/>
|
||||
<filter string="POP" name="pop" domain="[('server_type', '=', 'pop')]" help="Server type POP."/>
|
||||
<separator/>
|
||||
<filter string="SSL" name="ssl" domain="[('is_ssl', '=', True)]" help="If SSL required."/>
|
||||
<separator/>
|
||||
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_email_server_tree" model="ir.actions.act_window">
|
||||
<field name="name">Incoming Mail Servers</field>
|
||||
<field name="res_model">fetchmail.server</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_email_server_tree"/>
|
||||
<field name="search_view_id" ref="view_email_server_search"/>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<record model="ir.ui.view" id="view_server_action_form_template">
|
||||
<field name="name">ir.actions.server.form</field>
|
||||
<field name="model">ir.actions.server</field>
|
||||
<field name="inherit_id" ref="base.view_server_action_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[@name='page_object']" position="after">
|
||||
<page string="Activity" name="next_activity" autofocus="autofocus" attrs="{'invisible': [('state', '!=', 'next_activity')]}">
|
||||
<group>
|
||||
<group>
|
||||
<field name="activity_type_id" options="{'no_create': True, 'no_open': True}"
|
||||
attrs="{'required': [('state', '=', 'next_activity')]}"/>
|
||||
<field name="activity_summary" placeholder="e.g. Discuss proposal"/>
|
||||
</group>
|
||||
<group>
|
||||
<label for="activity_date_deadline_range"/>
|
||||
<div class="o_row">
|
||||
<field name="activity_date_deadline_range"/>
|
||||
<field name="activity_date_deadline_range_type" attrs="{
|
||||
'required': [('state', '=', 'next_activity'), ('activity_date_deadline_range', '>', 0)]
|
||||
}"/>
|
||||
</div>
|
||||
<field name="activity_user_type" attrs="{
|
||||
'required': [('state', '=', 'next_activity')]
|
||||
}"/>
|
||||
<field name="activity_user_field_name" attrs="{
|
||||
'invisible': [('activity_user_type', '=', 'specific')],
|
||||
'required': [('state', '=', 'next_activity'), ('activity_user_type', '=', 'generic')]
|
||||
}"/>
|
||||
<field name="activity_user_id" attrs="{
|
||||
'invisible': [('activity_user_type', '=', 'generic')],
|
||||
'required': [('state', '=', 'next_activity'), ('activity_user_type', '=', 'specific')]
|
||||
}"/>
|
||||
</group>
|
||||
</group>
|
||||
<field name="activity_note" class="oe-bordered-editor" placeholder="Log a note..."/>
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='link_field_id']" position="after">
|
||||
<field name="partner_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('state', '!=', 'followers')]}"/>
|
||||
<field name="template_id"
|
||||
attrs="{'invisible': [('state', '!=', 'mail_post')],
|
||||
'required': [('state', '=', 'mail_post')]}"
|
||||
context="{'default_model': model_name,
|
||||
'default_use_default_to': True}"/>
|
||||
<field name="mail_post_method"
|
||||
attrs="{'invisible': [('state', '!=', 'mail_post')],
|
||||
'required': [('state', '=', 'mail_post')]}"/>
|
||||
<field name="mail_post_autofollow" invisible="1"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
43
odoo-bringout-oca-ocb-mail/mail/views/ir_model_views.xml
Normal file
43
odoo-bringout-oca-ocb-mail/mail/views/ir_model_views.xml
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<record id="model_form_view" model="ir.ui.view">
|
||||
<field name="model">ir.model</field>
|
||||
<field name="inherit_id" ref="base.view_model_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="transient" position="after">
|
||||
<field name="is_mail_thread" attrs="{'readonly': [('state','!=', 'manual')]}" groups="base.group_no_one"/>
|
||||
<field name="is_mail_activity" attrs="{'readonly': [('state','!=', 'manual')]}" groups="base.group_no_one"/>
|
||||
<field name="is_mail_blacklist" attrs="{'readonly': [('state','!=', 'manual')]}" groups="base.group_no_one"/>
|
||||
</field>
|
||||
<xpath expr="//field[@name='field_id']//field[@name='copied']" position="after">
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="tracking" attrs="{'readonly': [('state','!=', 'manual')]}"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="model_search_view" model="ir.ui.view">
|
||||
<field name="model">ir.model</field>
|
||||
<field name="inherit_id" ref="base.view_model_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="model" position="after">
|
||||
<filter string="Mail Thread" name="is_mail_thread" domain="[('is_mail_thread', '=', True)]"/>
|
||||
<filter string="Mail Activity" name="is_mail_activity" domain="[('is_mail_activity', '=', True)]"/>
|
||||
<filter string="Mail Blacklist" name="is_mail_blacklist" domain="[('is_mail_blacklist', '=', True)]"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="field_form_view" model="ir.ui.view">
|
||||
<field name="model">ir.model.fields</field>
|
||||
<field name="inherit_id" ref="base.view_model_fields_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="copied" position="after">
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="tracking" attrs="{'invisible': [('ttype', '=', 'binary')], 'readonly': [('state','!=', 'manual')]}"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
238
odoo-bringout-oca-ocb-mail/mail/views/mail_activity_views.xml
Normal file
238
odoo-bringout-oca-ocb-mail/mail/views/mail_activity_views.xml
Normal file
|
|
@ -0,0 +1,238 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="mail_activity_type_view_form" model="ir.ui.view">
|
||||
<field name="name">mail.activity.type.view.form</field>
|
||||
<field name="model">mail.activity.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Activities">
|
||||
<sheet>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<h1><field name="name" placeholder="e.g. Schedule a meeting"/></h1>
|
||||
</div>
|
||||
<group>
|
||||
<group name="activity_details" string="Activity Settings">
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="category"/>
|
||||
<field name="default_user_id" options="{'no_create': True}" domain="[('share', '=', False)]"/>
|
||||
<field name="res_model" groups="base.group_no_one"/>
|
||||
<field name="res_model" invisible="1"/>
|
||||
<field name="res_model_change" invisible="1"/>
|
||||
<field name="initial_res_model" invisible="1"/>
|
||||
<field name="summary" placeholder="e.g. "Discuss proposal""/>
|
||||
<field name="icon" groups="base.group_no_one"/>
|
||||
<field name="decoration_type" groups="base.group_no_one"/>
|
||||
</group>
|
||||
<group name="activity_planning" string="Next Activity">
|
||||
<field name="chaining_type" attrs="{'invisible': [('category', '=', 'upload_file')]}"/>
|
||||
<field name="triggered_next_type_id" options="{'no_open': True}" context="{'default_res_model': res_model}"
|
||||
attrs="{'required': ['&', ('chaining_type', '=', 'trigger'), ('category', '!=', 'upload_file')],
|
||||
'invisible': ['&', ('chaining_type', '=', 'suggest'), ('category', '!=', 'upload_file')]}"/>
|
||||
<field name="suggested_next_type_ids" widget="many2many_tags" context="{'default_res_model': res_model}"
|
||||
attrs="{'invisible': ['|', ('chaining_type', '=', 'trigger'), ('category', '=', 'upload_file')]}"/>
|
||||
<field name="mail_template_ids" widget="many2many_tags"
|
||||
domain="[('model_id.model', '=', res_model)]"
|
||||
attrs="{'invisible': [('res_model', '=', False)]}"
|
||||
context="{'default_model': res_model}"/>
|
||||
<label for="delay_count"/>
|
||||
<div>
|
||||
<field class="oe_inline pe-1 o_input_3ch" name="delay_count"/>
|
||||
<field class="oe_inline ps-1 pe-2" name="delay_unit"/>
|
||||
<field class="oe_inline" name="delay_from"/>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
<label for="default_note" class="fw-bold"/>
|
||||
<field nolabel="1" name="default_note" placeholder="e.g. "Go over the offer and discuss details"" class="oe-bordered-editor"/>
|
||||
<p class="alert alert-info" role="alert" attrs="{'invisible': [('res_model_change', '=', False)]}">Modifying the model can have an impact on existing activities using this activity type, be careful.</p>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_activity_type_view_search" model="ir.ui.view">
|
||||
<field name="name">mail.activity.type.search</field>
|
||||
<field name="model">mail.activity.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Activities">
|
||||
<field name="name"/>
|
||||
<filter string="Archived" domain="[('active', '=', False)]" name="archived"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_activity_type_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.activity.type.view.tree</field>
|
||||
<field name="model">mail.activity.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Activities" sample="1">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="summary"/>
|
||||
<field name="delay_label" string="Planned in" class="text-end"/>
|
||||
<field name="delay_from" string="Type"/>
|
||||
<field name="res_model" groups="base.group_no_one"/>
|
||||
<field name="icon" groups="base.group_no_one"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_activity_type_action" model="ir.actions.act_window">
|
||||
<field name="name">Activity Types</field>
|
||||
<field name="res_model">mail.activity.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="mail_activity_action" model="ir.actions.act_window">
|
||||
<field name="name">Activities</field>
|
||||
<field name="res_model">mail.activity</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_activity_view_form_popup" model="ir.ui.view">
|
||||
<field name="name">mail.activity.view.form.popup</field>
|
||||
<field name="model">mail.activity</field>
|
||||
<field name="priority">20</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Log an Activity" create="false">
|
||||
<sheet string="Activity">
|
||||
<div class="oe_button_box" name="button_box" invisible="1">
|
||||
<button name="action_open_document" string="Open Document"
|
||||
type="object" class="oe_link" icon="fa-file-text-o"
|
||||
attrs="{'invisible': ['|', ('res_model', '=', False), ('res_id', '=', 0)]}"/>
|
||||
</div>
|
||||
<group invisible="1">
|
||||
<field name="activity_category" invisible="1" />
|
||||
<field name="res_model" invisible="1"/>
|
||||
<field name="res_model_id" invisible="1"/>
|
||||
<field name="res_id" invisible="1"/>
|
||||
<field name="chaining_type" invisible="1"/>
|
||||
<field name="previous_activity_type_id"/>
|
||||
<field name="has_recommended_activities"/>
|
||||
</group>
|
||||
<group attrs="{'invisible': [('has_recommended_activities','=',False)]}">
|
||||
<field name="recommended_activity_type_id" widget="selection_badge"
|
||||
domain="[('previous_type_ids', '=', previous_activity_type_id)]"
|
||||
string="Recommended Activities"/>
|
||||
</group>
|
||||
<group>
|
||||
<group>
|
||||
<field name="activity_type_id" required="1" options="{'no_create': True, 'no_open': True}"/>
|
||||
<field name="summary" placeholder="e.g. Discuss proposal"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="date_deadline"/>
|
||||
<field name="user_id"/>
|
||||
</group>
|
||||
</group>
|
||||
<field name="note" class="oe-bordered-editor" placeholder="Log a note..."/>
|
||||
<footer>
|
||||
<field name="id" invisible="1"/>
|
||||
<button id="mail_activity_schedule" string="Schedule" name="action_close_dialog" type="object" class="btn-primary"
|
||||
attrs="{'invisible': [('id', '!=', False)]}" data-hotkey="q"/>
|
||||
<button id="mail_activity_save" string="Save" name="action_close_dialog" type="object" class="btn-primary"
|
||||
attrs="{'invisible': [('id', '=', False)]}" data-hotkey="q"/>
|
||||
<button attrs="{'invisible': [('chaining_type', '=', 'trigger')]}" string="Mark as Done" name="action_done"
|
||||
type="object" class="btn-secondary" data-hotkey="w"
|
||||
context="{'mail_activity_quick_update': True}"/>
|
||||
<button attrs="{'invisible': [('chaining_type', '=', 'trigger')]}" string="Done & Schedule Next" name="action_done_schedule_next"
|
||||
type="object" class="btn-secondary" data-hotkey="x"
|
||||
context="{'mail_activity_quick_update': True}"/>
|
||||
<button attrs="{'invisible': [('chaining_type', '=', 'suggest')]}" string="Done & Launch Next" name="action_done_schedule_next"
|
||||
type="object" class="btn-secondary" data-hotkey="x"
|
||||
context="{'mail_activity_quick_update': True}"/>
|
||||
<button string="Discard" class="btn-secondary" special="cancel" data-hotkey="z" />
|
||||
</footer>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_activity_view_form" model="ir.ui.view">
|
||||
<field name="name">mail.activity.view.form</field>
|
||||
<field name="model">mail.activity</field>
|
||||
<field name="priority">21</field>
|
||||
<field name="mode">primary</field>
|
||||
<field name="inherit_id" ref="mail.mail_activity_view_form_popup"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="activity_type_id" position="before">
|
||||
<field name="res_name" readonly="1" string="Document"/>
|
||||
</field>
|
||||
<footer position="replace"/>
|
||||
<xpath expr="//div[hasclass('oe_button_box')]" position="attributes">
|
||||
<attribute name="invisible">0</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_activity_view_search" model="ir.ui.view">
|
||||
<field name="name">mail.activity.view.search</field>
|
||||
<field name="model">mail.activity</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Activity">
|
||||
<field name="res_model"/>
|
||||
<field name="summary"/>
|
||||
<field name="activity_type_id"/>
|
||||
<filter invisible="1" string="Late Activities" name="activities_overdue"
|
||||
domain="[('date_deadline', '<', context_today().strftime('%Y-%m-%d'))]"
|
||||
help="Show all records which has next action date is before today"/>
|
||||
<filter invisible="1" string="Today Activities" name="activities_today"
|
||||
domain="[('date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/>
|
||||
<filter invisible="1" string="Future Activities" name="activities_upcoming_all"
|
||||
domain="[('date_deadline', '>', context_today().strftime('%Y-%m-%d'))
|
||||
]"/>
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Deadline" name="date_deadline" context="{'group_by': 'date_deadline'}"/>
|
||||
<filter string="Created By" name="createdby" context="{'group_by': 'create_uid'}"/>
|
||||
<filter string="Activity Type" name="activittype" context="{'group_by': 'activity_type_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_activity_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.activity.view.tree</field>
|
||||
<field name="model">mail.activity</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Next Activities"
|
||||
decoration-danger="date_deadline < current_date"
|
||||
decoration-success="date_deadline == current_date"
|
||||
default_order="date_deadline" create="false">
|
||||
<field name="res_name"/>
|
||||
<field name="activity_type_id"/>
|
||||
<field name="summary"/>
|
||||
<field name="date_deadline"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_activity_action_view_tree" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="act_window_id" ref="mail.mail_activity_action"/>
|
||||
</record>
|
||||
<record id="mail_activity_action_view_form" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="mail.mail_activity_view_form"/>
|
||||
<field name="act_window_id" ref="mail.mail_activity_action"/>
|
||||
</record>
|
||||
|
||||
<record id="mail_activity_view_calendar" model="ir.ui.view">
|
||||
<field name="name">mail.activity.view.calendar</field>
|
||||
<field name="model">mail.activity</field>
|
||||
<field name="priority" eval="2"/>
|
||||
<field name="arch" type="xml">
|
||||
<calendar string="Activity" date_start="date_deadline" color="activity_type_id">
|
||||
<field name="user_id" avatar_field="avatar_128"/>
|
||||
<field name="res_name"/>
|
||||
<field name="date_deadline"/>
|
||||
<field name="summary"/>
|
||||
<field name="activity_type_id" filters="1" invisible="1"/>
|
||||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
83
odoo-bringout-oca-ocb-mail/mail/views/mail_alias_views.xml
Normal file
83
odoo-bringout-oca-ocb-mail/mail/views/mail_alias_views.xml
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Alias Form View -->
|
||||
<record model="ir.ui.view" id="view_mail_alias_form">
|
||||
<field name="name">mail.alias.form</field>
|
||||
<field name="model">mail.alias</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Alias">
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button name="open_document" string="Open Document"
|
||||
type="object" class="oe_link"
|
||||
attrs="{'invisible': ['|', ('alias_model_id', '=', False), ('alias_force_thread_id', '=', 0)]}"/>
|
||||
<button name="open_parent_document" string="Open Parent Document"
|
||||
type="object" class="oe_link" icon="fa-sitemap"
|
||||
attrs="{'invisible': ['|', ('alias_parent_model_id', '=', False), ('alias_parent_thread_id', '=', 0)]}"/>
|
||||
</div>
|
||||
<h2 dir="ltr"><field name="alias_name" class="oe_inline"/>@<field name="alias_domain" class="oe_inline"/></h2>
|
||||
<group>
|
||||
<field name="alias_model_id"/>
|
||||
<field name="alias_force_thread_id"/>
|
||||
<field name="alias_defaults"/>
|
||||
<field name="alias_contact"/>
|
||||
<field name="alias_user_id"/>
|
||||
<field name="alias_parent_model_id"/>
|
||||
<field name="alias_parent_thread_id"/>
|
||||
</group>
|
||||
<label for="alias_bounced_content" attrs="{'invisible':[('alias_contact', '=', 'everyone')]}"/>
|
||||
<field name="alias_bounced_content" attrs="{'invisible':[('alias_contact', '=', 'everyone')]}"/>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Alias List View -->
|
||||
<record model="ir.ui.view" id="view_mail_alias_tree">
|
||||
<field name="name">mail.alias.tree</field>
|
||||
<field name="model">mail.alias</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Alias">
|
||||
<field name="alias_name"/>
|
||||
<field name="alias_model_id"/>
|
||||
<field name="alias_user_id"/>
|
||||
<field name="alias_defaults"/>
|
||||
<field name="alias_contact"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Alias Search View -->
|
||||
<record model="ir.ui.view" id="view_mail_alias_search">
|
||||
<field name="name">mail.alias.search</field>
|
||||
<field name="model">mail.alias</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Alias">
|
||||
<field name="alias_name"/>
|
||||
<field name="alias_model_id"/>
|
||||
<field name="alias_force_thread_id"/>
|
||||
<field name="alias_parent_model_id"/>
|
||||
<field name="alias_parent_thread_id"/>
|
||||
<separator/>
|
||||
<filter string="Active" name="active" domain="[('alias_name', '!=', False)]"/>
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="User" name="User" context="{'group_by':'alias_user_id'}"/>
|
||||
<filter string="Model" name="Model" context="{'group_by':'alias_model_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_view_mail_alias" model="ir.actions.act_window">
|
||||
<field name="name">Aliases</field>
|
||||
<field name="res_model">mail.alias</field>
|
||||
<field name="context">{
|
||||
'search_default_active': True,
|
||||
}
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<record id="mail_blacklist_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.blacklist.view.tree</field>
|
||||
<field name="model">mail.blacklist</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Email Blacklist">
|
||||
<field name="create_date" string="Blacklist Date"/>
|
||||
<field name="email"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_blacklist_view_form" model="ir.ui.view">
|
||||
<field name="name">mail.blacklist.view.form</field>
|
||||
<field name="model">mail.blacklist</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Add Email Blacklist" duplicate="false">
|
||||
<header>
|
||||
<button name="mail_action_blacklist_remove" string="Unblacklist"
|
||||
type="object" class="oe_highlight" context="{'default_email': email}"
|
||||
attrs="{'invisible': ['|', ('active', '=', False), ('email', '=', False)]}"/>
|
||||
<button name="action_add" string="Blacklist"
|
||||
type="object" class="oe_highlight"
|
||||
attrs="{'invisible': ['|', ('active', '=', True), ('email', '=', False)]}"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<group>
|
||||
<group>
|
||||
<field name="email"/>
|
||||
<field name="active" readonly="1"/>
|
||||
<br/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids" groups="base.group_user"/>
|
||||
<field name="message_ids"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_blacklist_view_search" model="ir.ui.view">
|
||||
<field name="name">mail.blacklist.view.search</field>
|
||||
<field name="model">mail.blacklist</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="email"/>
|
||||
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_blacklist_action" model="ir.actions.act_window">
|
||||
<field name="name">Blacklisted Email Addresses</field>
|
||||
<field name="res_model">mail.blacklist</field>
|
||||
<field name="view_id" ref="mail_blacklist_view_tree"/>
|
||||
<field name="search_view_id" ref="mail_blacklist_view_search"/>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Add an email address to the blacklist
|
||||
</p><p>
|
||||
Email addresses that are blacklisted won't receive Email mailings anymore.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo><data>
|
||||
<!-- mail.channel.member -->
|
||||
<record id="mail_channel_member_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.channel.member.tree</field>
|
||||
<field name="model">mail.channel.member</field>
|
||||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Channels">
|
||||
<field name="display_name"/>
|
||||
<field name="channel_id"/>
|
||||
<field name="seen_message_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_channel_member_view_form" model="ir.ui.view">
|
||||
<field name="name">mail.channel.member.form</field>
|
||||
<field name="model">mail.channel.member</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Channel">
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="partner_id"/>
|
||||
<field name="guest_id"/>
|
||||
<field name="channel_id"/>
|
||||
<field name="custom_channel_name"/>
|
||||
<field name="fetched_message_id"/>
|
||||
<field name="seen_message_id"/>
|
||||
<field name="message_unread_counter"/>
|
||||
<field name="fold_state"/>
|
||||
<field name="is_minimized"/>
|
||||
<field name="is_pinned"/>
|
||||
<field name="last_interest_dt"/>
|
||||
<field name="last_seen_dt"/>
|
||||
<field name="rtc_inviting_session_id"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_channel_member_action" model="ir.actions.act_window">
|
||||
<field name="name">Channels/Member</field>
|
||||
<field name="res_model">mail.channel.member</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</data></odoo>
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
|
||||
<record id="mail_channel_rtc_session_view_search" model="ir.ui.view">
|
||||
<field name="name">mail.channel.rtc.session.search</field>
|
||||
<field name="model">mail.channel.rtc.session</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search RTC session">
|
||||
<field name="channel_member_id"/>
|
||||
<filter name="group_by_channel" string="Channel" domain="[]" context="{'group_by':'channel_id'}"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_channel_rtc_session_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.channel.rtc.session.tree</field>
|
||||
<field name="model">mail.channel.rtc.session</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="RTC Session">
|
||||
<header>
|
||||
<button name="action_disconnect" type="object" string="Disconnect"/>
|
||||
</header>
|
||||
<field name="id"/>
|
||||
<field name="channel_member_id"/>
|
||||
<field name="channel_id"/>
|
||||
<field name="write_date"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_channel_rtc_session_view_form" model="ir.ui.view">
|
||||
<field name="name">mail.channel.rtc.session.form</field>
|
||||
<field name="model">mail.channel.rtc.session</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="RTC Session">
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<h1><field name="channel_member_id"/></h1>
|
||||
</div>
|
||||
<group>
|
||||
<group string="Identity">
|
||||
<field name="channel_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="guest_id"/>
|
||||
</group>
|
||||
<group string="State">
|
||||
<field name="is_screen_sharing_on"/>
|
||||
<field name="is_camera_on"/>
|
||||
<field name="is_muted"/>
|
||||
<field name="is_deaf"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_channel_rtc_session_action" model="ir.actions.act_window">
|
||||
<field name="name">RTC sessions</field>
|
||||
<field name="res_model">mail.channel.rtc.session</field>
|
||||
<field name="context">{'search_default_group_by_channel': True}</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
123
odoo-bringout-oca-ocb-mail/mail/views/mail_channel_views.xml
Normal file
123
odoo-bringout-oca-ocb-mail/mail/views/mail_channel_views.xml
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- mail.channel -->
|
||||
<record id="mail_channel_view_kanban" model="ir.ui.view">
|
||||
<field name="name">mail.channel.kanban</field>
|
||||
<field name="model">mail.channel</field>
|
||||
<field name="priority" eval="10"/>
|
||||
<field name="arch" type="xml">
|
||||
<kanban>
|
||||
<field name="id"/>
|
||||
<field name="description"/>
|
||||
<field name="is_member"/>
|
||||
<field name="group_ids"/>
|
||||
<templates>
|
||||
<t t-name="kanban-description">
|
||||
<div class="oe_group_description" t-if="record.description.raw_value">
|
||||
<field name="description"/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_module_vignette oe_kanban_global_click d-flex align-items-center">
|
||||
<img t-att-src="kanban_image('mail.channel', 'avatar_128', record.id.raw_value)" class="oe_module_icon" alt="Channel"/>
|
||||
<div class="oe_module_desc">
|
||||
<h4 class="o_kanban_record_title">#<field name="name"/></h4>
|
||||
<p class="oe_module_name">
|
||||
<field name="description"/>
|
||||
</p>
|
||||
<button type="object" attrs="{'invisible':['|', ('is_member','=',True), ('group_ids', '!=', [])]}" class="btn btn-primary float-end" name="channel_join">Join</button>
|
||||
<button type="object" attrs="{'invisible':['|', ('is_member','=',False), ('group_ids', '!=', [])]}" class="btn btn-secondary float-end" name="action_unfollow">Leave</button>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_channel_view_form" model="ir.ui.view">
|
||||
<field name="name">mail.channel.form</field>
|
||||
<field name="model">mail.channel</field>
|
||||
<field name="priority" eval="10"/>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Mail Channel Form">
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box"/>
|
||||
<field name="avatar_128" invisible="1"/>
|
||||
<field name="image_128" widget="image" class="oe_avatar" options="{'size': [90, 90], 'preview_image':'avatar_128'}"/>
|
||||
<div class="oe_title">
|
||||
<label for="name" string="Group Name"/>
|
||||
<h1>
|
||||
#<field name="name" class="oe_inline" default_focus="1" placeholder="e.g. support" readonly="0"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group class="o_label_nowrap">
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="description" placeholder="Topics discussed in this group..."/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Privacy" name="privacy">
|
||||
<group class="o_label_nowrap">
|
||||
<field name="group_public_id"
|
||||
attrs="{'invisible': [('channel_type', '!=', 'channel')]}"
|
||||
/>
|
||||
<field name="group_ids" widget="many2many_tags"
|
||||
attrs="{'invisible': [('channel_type', '!=', 'channel')]}"
|
||||
string="Auto Subscribe Groups"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Members" name="members">
|
||||
<field name="channel_type" invisible="1"/>
|
||||
<field name="channel_member_ids" mode="tree" context="{'active_test': False}" attrs="{'readonly': [('channel_type', '=', 'chat')]}">
|
||||
<tree string="Members" editable="bottom">
|
||||
<field name="partner_id" required="1" attrs="{'readonly': [('id', '!=', False)]}"/>
|
||||
<field name="partner_email" readonly="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Integrations" invisible="1" name="mail_channel_integrations"></page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_channel_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.channel.tree</field>
|
||||
<field name="model">mail.channel</field>
|
||||
<field name="priority" eval="10"/>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Groups">
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_channel_view_search" model="ir.ui.view">
|
||||
<field name="name">mail.channel.search</field>
|
||||
<field name="model">mail.channel</field>
|
||||
<field name="priority" eval="10"/>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Groups">
|
||||
<field name="name"/>
|
||||
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_channel_action_view" model="ir.actions.act_window">
|
||||
<field name="name">Join a group</field>
|
||||
<field name="res_model">mail.channel</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="search_view_id" ref="mail_channel_view_search"/>
|
||||
</record>
|
||||
|
||||
<record id="action_discuss" model="ir.actions.client">
|
||||
<field name="name">Discuss</field>
|
||||
<field name="tag">mail.action_discuss</field>
|
||||
<field name="params" eval=""{ 'default_active_id': 'mail.box_inbox' }""/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- FOLLOWERS !-->
|
||||
<record model="ir.ui.view" id="view_followers_tree">
|
||||
<field name="name">mail.followers.tree</field>
|
||||
<field name="model">mail.followers</field>
|
||||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Followers">
|
||||
<field name="res_model"/>
|
||||
<field name="res_id"/>
|
||||
<field name="partner_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_mail_subscription_form">
|
||||
<field name="name">mail.followers.form</field>
|
||||
<field name="model">mail.followers</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Followers Form">
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="res_model"/>
|
||||
<field name="partner_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="res_id"/>
|
||||
<field name="subtype_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_view_followers" model="ir.actions.act_window">
|
||||
<field name="name">Followers</field>
|
||||
<field name="res_model">mail.followers</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<record id="mail_gateway_allowed_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.gateway.allowed.view.tree</field>
|
||||
<field name="model">mail.gateway.allowed</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Mail Gateway Allowed" editable="top">
|
||||
<field name="email"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_gateway_allowed_view_search" model="ir.ui.view">
|
||||
<field name="name">mail.gateway.allowed.view.search</field>
|
||||
<field name="model">mail.gateway.allowed</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="email"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_gateway_allowed_action" model="ir.actions.act_window">
|
||||
<field name="name">Mail Gateway Allowed</field>
|
||||
<field name="res_model">mail.gateway.allowed</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
</odoo>
|
||||
25
odoo-bringout-oca-ocb-mail/mail/views/mail_guest_views.xml
Normal file
25
odoo-bringout-oca-ocb-mail/mail/views/mail_guest_views.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
|
||||
<record id="mail_guest_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.guest.tree</field>
|
||||
<field name="model">mail.guest</field>
|
||||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Guests">
|
||||
<field name="id"/>
|
||||
<field name="name"/>
|
||||
<field name="country_id"/>
|
||||
<field name="lang"/>
|
||||
<field name="timezone"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_guest_action" model="ir.actions.act_window">
|
||||
<field name="name">Guests</field>
|
||||
<field name="res_model">mail.guest</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="action_ice_servers" model="ir.actions.act_window">
|
||||
<field name="name">ICE servers</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">mail.ice.server</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_ice_server_tree">
|
||||
<field name="name">mail.ice.server.tree</field>
|
||||
<field name="model">mail.ice.server</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom">
|
||||
<field colspan="1" name="server_type"/>
|
||||
<field name="uri"/>
|
||||
<field name="username"/>
|
||||
<field name="credential"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_ice_server_form">
|
||||
<field name="name">mail.ice.server.form</field>
|
||||
<field name="model">mail.ice.server</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="ICE server">
|
||||
<sheet>
|
||||
<group>
|
||||
<label for="uri"/>
|
||||
<div class="oe_inline" name="URI" style="display: inline;">
|
||||
<field name="server_type" class="oe_inline"/><field name="uri" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field name="username"/>
|
||||
<field name="credential"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
|
||||
<record id="mail_link_preview_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.link.preview.tree</field>
|
||||
<field name="model">mail.link.preview</field>
|
||||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Link Previews">
|
||||
<field name="id"/>
|
||||
<field name="source_url"/>
|
||||
<field name="og_title"/>
|
||||
<field name="og_type"/>
|
||||
<field name="image_mimetype"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_link_preview_action" model="ir.actions.act_window">
|
||||
<field name="name">Link Previews</field>
|
||||
<field name="res_model">mail.link.preview</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
160
odoo-bringout-oca-ocb-mail/mail/views/mail_mail_views.xml
Normal file
160
odoo-bringout-oca-ocb-mail/mail/views/mail_mail_views.xml
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="view_mail_form">
|
||||
<field name="name">mail.mail.form</field>
|
||||
<field name="model">mail.mail</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Email message" duplicate="0">
|
||||
<header>
|
||||
<field name="message_type" invisible="1"/>
|
||||
<button name="send" string="Send Now" type="object" class="oe_highlight" attrs="{'invisible': ['|', ('state', '!=', 'outgoing'), ('message_type', '=', 'user_notification')]}"/>
|
||||
<button name="mark_outgoing" string="Retry" type="object" states='exception,cancel'/>
|
||||
<button name="cancel" string="Cancel" type="object" states='outgoing'/>
|
||||
<field name="state" widget="statusbar" statusbar_visible="outgoing,sent,received,exception,cancel"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<field name="model" invisible="1"/>
|
||||
<field name="res_id" invisible="1"/>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button name="action_open_document" string="Open Document"
|
||||
type="object" class="oe_link" icon="fa-file-text-o"
|
||||
attrs="{'invisible': ['|', ('model', '=', False), ('res_id', '=', 0)]}"/>
|
||||
</div>
|
||||
<field name="mail_message_id_int" required="0" invisible="1"/>
|
||||
<label for="subject" class="oe_edit_only"/>
|
||||
<h2><field name="subject"/></h2>
|
||||
<div style="vertical-align: top;">
|
||||
by <field name="author_id" class="oe_inline" string="User"/> on <field name="date" readonly="1" class="oe_inline"/>
|
||||
<button name="%(action_email_compose_message_wizard)d" string="Reply" type="action" icon="fa-reply text-warning"
|
||||
context="{'default_composition_mode':'comment', 'default_parent_id': mail_message_id_int}" states='received,sent,exception,cancel'/>
|
||||
</div>
|
||||
<group>
|
||||
<field name="email_from"/>
|
||||
<field name="email_to"/>
|
||||
<field name="recipient_ids" widget="many2many_tags"
|
||||
domain="[('type', '!=', 'private'), ('active', '=', True)]"/>
|
||||
<field name="email_cc"/>
|
||||
<field name="reply_to"/>
|
||||
<field name="scheduled_date" placeholder="YYYY-MM-DD HH:MM:SS"/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Body" name="body">
|
||||
<field name="body_content"/>
|
||||
<field name="body_html" attrs="{'invisible': 1}"/>
|
||||
</page>
|
||||
<page string="Advanced" name="advanced" groups="base.group_no_one">
|
||||
<group>
|
||||
<group string="Status">
|
||||
<field name="auto_delete"
|
||||
attrs="{'invisible': [('state', '!=', 'outgoing'), ('state', '!=', 'exception')]}"/>
|
||||
<field name="to_delete" invisible="1"/>
|
||||
<field name="is_notification"/>
|
||||
<field name="message_type"/>
|
||||
<field name="mail_server_id"/>
|
||||
<field name="model"/>
|
||||
<field name="res_id"/>
|
||||
</group>
|
||||
<group string="Headers">
|
||||
<field name="message_id"/>
|
||||
<field name="references"/>
|
||||
<field name="fetchmail_server_id"/>
|
||||
<field name="headers"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Attachments" name="attachments">
|
||||
<div class="alert alert-warning" role="alert"
|
||||
attrs="{'invisible': [('restricted_attachment_count', '=', 0)]}">
|
||||
You do not have access to <field name="restricted_attachment_count"/>
|
||||
attachment(s) of this email.
|
||||
</div>
|
||||
<field name="unrestricted_attachment_ids"
|
||||
domain="[('res_field','=', False)]"/>
|
||||
</page>
|
||||
<page string="Failure Reason" name="failure_reason" attrs="{'invisible': [('state', '!=', 'exception')]}">
|
||||
<field name="failure_reason"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_mail_tree">
|
||||
<field name="name">mail.mail.tree</field>
|
||||
<field name="model">mail.mail</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Emails">
|
||||
<header>
|
||||
<button name="action_retry" string="Retry" type="object"/>
|
||||
</header>
|
||||
<field name="date"/>
|
||||
<field name="subject"/>
|
||||
<field name="author_id" string="User"/>
|
||||
<field name="message_id" invisible="1"/>
|
||||
<field name="recipient_ids" invisible="1"/>
|
||||
<field name="model" invisible="1"/>
|
||||
<field name="res_id" invisible="1"/>
|
||||
<field name="email_from" invisible="1"/>
|
||||
<field name="message_type" invisible="1"/>
|
||||
<field name="state" widget="badge" decoration-muted="state in ('sent', 'cancel')"
|
||||
decoration-info="state=='outgoing'" decoration-danger="state=='exception'"/>
|
||||
<field name="to_delete" invisible="1"/>
|
||||
<button name="send" string="Send Now" type="object" icon="fa-paper-plane" attrs="{'invisible': ['|', ('state', '!=', 'outgoing'), ('message_type', '=', 'user_notification')]}"/>
|
||||
<button name="mark_outgoing" string="Retry" type="object" icon="fa-repeat" states='exception,cancel'/>
|
||||
<button name="cancel" string="Cancel Email" type="object" icon="fa-times-circle" states='outgoing'/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_mail_search">
|
||||
<field name="name">mail.mail.search</field>
|
||||
<field name="model">mail.mail</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Email Search">
|
||||
<field name="email_from" filter_domain="['|', '|',('email_from','ilike',self), ('email_to','ilike',self), ('subject','ilike',self)]" string="Email"/>
|
||||
<field name="date"/>
|
||||
<filter name="received" string="Received" domain="[('state','=','received')]"/>
|
||||
<filter name="outgoing" string="Outgoing" domain="[('state','=','outgoing')]"/>
|
||||
<filter name="sent" string="Sent" domain="[('state','=','sent')]"/>
|
||||
<filter name="exception" string="Failed" domain="[('state','=','exception')]"/>
|
||||
<separator/>
|
||||
<filter name="type_email" string="Email" domain="[('message_type','=','email')]"/>
|
||||
<filter name="type_comment" string="Comment" domain="[('message_type','=','comment')]"/>
|
||||
<filter name="type_notification" string="Notification" domain="[('message_type','=','notification')]"/>
|
||||
<group expand="0" string="Extended Filters...">
|
||||
<field name="author_id"/>
|
||||
<field name="recipient_ids"/>
|
||||
<field name="model"/>
|
||||
<field name="res_id"/>
|
||||
</group>
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Status" name="status" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Author" name="author" context="{'group_by':'author_id'}"/>
|
||||
<filter string="Thread" name="thread" domain="[]" context="{'group_by':'message_id'}"/>
|
||||
<filter string="Date" name="month" help="Creation Date" domain="[]" context="{'group_by':'date'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_view_mail_mail" model="ir.actions.act_window">
|
||||
<field name="name">Emails</field>
|
||||
<field name="res_model">mail.mail</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="search_view_id" ref="view_mail_search"/>
|
||||
</record>
|
||||
|
||||
<record id="act_server_history" model="ir.actions.act_window">
|
||||
<field name="name">Messages</field>
|
||||
<field name="res_model">mail.mail</field>
|
||||
<field name="domain">[('email_from', '!=', False), ('fetchmail_server_id', '=', active_id)]</field>
|
||||
<field name="context">{'search_default_server_id': active_id, 'default_fetchmail_server_id': active_id}</field>
|
||||
<field name="binding_model_id" ref="model_fetchmail_server"/>
|
||||
<field name="binding_view_types">form</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
153
odoo-bringout-oca-ocb-mail/mail/views/mail_menus.xml
Normal file
153
odoo-bringout-oca-ocb-mail/mail/views/mail_menus.xml
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo><data>
|
||||
<menuitem name="Discuss"
|
||||
id="mail.menu_root_discuss"
|
||||
action="action_discuss"
|
||||
web_icon="mail,static/description/icon.svg"
|
||||
groups="base.group_user"
|
||||
sequence="5"
|
||||
/>
|
||||
|
||||
<record id="base.menu_email" model="ir.ui.menu">
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
|
||||
<!-- Under Technical/Email -->
|
||||
<menuitem name="Emails"
|
||||
id="menu_mail_mail"
|
||||
parent="base.menu_email"
|
||||
action="action_view_mail_mail"
|
||||
sequence="1"/>
|
||||
<menuitem name="Incoming Mail Servers"
|
||||
id="menu_action_fetchmail_server_tree"
|
||||
parent="base.menu_email"
|
||||
action="action_email_server_tree"
|
||||
sequence="6"
|
||||
groups="base.group_no_one"/>
|
||||
<menuitem id="menu_email_templates"
|
||||
parent="base.menu_email"
|
||||
action="action_email_template_tree_all"
|
||||
sequence="10"/>
|
||||
<menuitem id="mail_alias_menu"
|
||||
parent="base.menu_email"
|
||||
action="action_view_mail_alias"
|
||||
sequence="11"
|
||||
groups="base.group_no_one"/>
|
||||
<menuitem id="mail_channel_menu_settings"
|
||||
name="Channels"
|
||||
parent="base.menu_email"
|
||||
action="mail_channel_action_view"
|
||||
sequence="20"
|
||||
groups="base.group_no_one"/>
|
||||
<menuitem name="Channels/Partner"
|
||||
id="mail_channel_member_menu"
|
||||
parent="base.menu_email"
|
||||
action="mail_channel_member_action"
|
||||
sequence="21"
|
||||
groups="base.group_no_one"/>
|
||||
<menuitem id="mail_gateway_allowed_menu"
|
||||
parent="base.menu_email"
|
||||
action="mail_gateway_allowed_action"
|
||||
sequence="22"
|
||||
groups="base.group_no_one"/>
|
||||
|
||||
<!-- Under Technical/Discuss -->
|
||||
<menuitem name="Discuss"
|
||||
id="mail_menu_technical"
|
||||
parent="base.menu_custom"
|
||||
sequence="1"/>
|
||||
|
||||
<menuitem name="Messages"
|
||||
id="menu_mail_message"
|
||||
parent="mail.mail_menu_technical"
|
||||
action="action_view_mail_message"
|
||||
sequence="1"/>
|
||||
<menuitem name="Scheduled Messages"
|
||||
id="mail_message_schedule_menu"
|
||||
parent="mail.mail_menu_technical"
|
||||
action="mail_message_schedule_action"
|
||||
sequence="2"/>
|
||||
<menuitem name="Subtypes"
|
||||
id="menu_message_subtype"
|
||||
parent="mail.mail_menu_technical"
|
||||
action="action_view_message_subtype"
|
||||
sequence="4"/>
|
||||
<menuitem name="Tracking Values"
|
||||
id="menu_mail_tracking_value"
|
||||
parent="mail.mail_menu_technical"
|
||||
action="action_view_mail_tracking_value"
|
||||
sequence="5"/>
|
||||
|
||||
<menuitem
|
||||
id="menu_mail_activity_type"
|
||||
action="mail_activity_type_action"
|
||||
parent="mail.mail_menu_technical"
|
||||
sequence="10"
|
||||
/>
|
||||
<menuitem
|
||||
id="menu_mail_activities"
|
||||
action="mail_activity_action"
|
||||
parent="mail.mail_menu_technical"
|
||||
sequence="11"
|
||||
/>
|
||||
|
||||
<menuitem name="Notifications"
|
||||
id="mail_notification_menu"
|
||||
parent="mail.mail_menu_technical"
|
||||
action="mail_notification_action"
|
||||
sequence="20"
|
||||
groups="base.group_no_one"/>
|
||||
<menuitem name="Followers"
|
||||
id="menu_email_followers"
|
||||
parent="mail.mail_menu_technical"
|
||||
action="action_view_followers"
|
||||
sequence="21"
|
||||
groups="base.group_no_one"/>
|
||||
<menuitem id="mail_blacklist_menu"
|
||||
name="Email Blacklist"
|
||||
action="mail_blacklist_action"
|
||||
parent="mail.mail_menu_technical"
|
||||
sequence="22"/>
|
||||
|
||||
<menuitem id="res_users_settings_menu"
|
||||
name="User Settings"
|
||||
action="res_users_settings_action"
|
||||
parent="mail.mail_menu_technical"
|
||||
sequence="50"/>
|
||||
<menuitem id="mail_guest_menu"
|
||||
name="Guests"
|
||||
action="mail_guest_action"
|
||||
parent="mail.mail_menu_technical"
|
||||
sequence="51"/>
|
||||
<menuitem id="mail_channel_rtc_session_menu"
|
||||
name="RTC sessions"
|
||||
action="mail_channel_rtc_session_action"
|
||||
parent="mail.mail_menu_technical"
|
||||
sequence="52"/>
|
||||
<menuitem id="mail_channel_ice_servers_menu"
|
||||
name="ICE servers"
|
||||
action="action_ice_servers"
|
||||
parent="mail.mail_menu_technical"
|
||||
sequence="53"/>
|
||||
<menuitem id="mail_message_reaction_menu"
|
||||
name="Message Reactions"
|
||||
action="mail_message_reaction_action"
|
||||
parent="mail.mail_menu_technical"
|
||||
sequence="54"/>
|
||||
<menuitem id="mail_link_preview_menu"
|
||||
name="Link Previews"
|
||||
action="mail_link_preview_action"
|
||||
parent="mail.mail_menu_technical"
|
||||
sequence="55"/>
|
||||
|
||||
<!--
|
||||
This menuitem will be activated by integrations modules (like github, twitter, ...). It
|
||||
is a hook to ease other modules to plug into mail.
|
||||
-->
|
||||
<record id="mail.mail_channel_integrations_menu" model="ir.ui.menu">
|
||||
<field name="name">Integrations</field>
|
||||
<field name="parent_id" ref="mail.menu_root_discuss"></field>
|
||||
<field name="active" eval="False"></field>
|
||||
</record>
|
||||
|
||||
</data></odoo>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
|
||||
<record id="mail_message_reaction_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.message.reaction.tree</field>
|
||||
<field name="model">mail.message.reaction</field>
|
||||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Reactions">
|
||||
<field name="id"/>
|
||||
<field name="message_id"/>
|
||||
<field name="content"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="guest_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_message_reaction_action" model="ir.actions.act_window">
|
||||
<field name="name">Message Reactions</field>
|
||||
<field name="res_model">mail.message.reaction</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo><data>
|
||||
<record id="mail_message_schedule_view_form" model="ir.ui.view">
|
||||
<field name="name">mail.message.schedule.view.form</field>
|
||||
<field name="model">mail.message.schedule</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Scheduled Message" duplicate="0">
|
||||
<header>
|
||||
<button name="force_send" string="Force Send" type="object"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="mail_message_id"/>
|
||||
<field name="scheduled_datetime"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="notification_parameters"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_message_schedule_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.message.schedule.view.tree</field>
|
||||
<field name="model">mail.message.schedule</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Emails">
|
||||
<field name="mail_message_id"/>
|
||||
<field name="scheduled_datetime"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_message_schedule_view_search" model="ir.ui.view">
|
||||
<field name="name">mail.message.schedule.view.search</field>
|
||||
<field name="model">mail.message.schedule</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Scheduled Messages">
|
||||
<field name="mail_message_id"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_message_schedule_action" model="ir.actions.act_window">
|
||||
<field name="name">Scheduled Messages</field>
|
||||
<field name="res_model">mail.message.schedule</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{}</field>
|
||||
</record>
|
||||
|
||||
</data></odoo>
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<record model="ir.ui.view" id="view_message_subtype_tree">
|
||||
<field name="name">mail.message.subtype.tree</field>
|
||||
<field name="model">mail.message.subtype</field>
|
||||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Subtype">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="res_model"/>
|
||||
<field name="default"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_mail_message_subtype_form">
|
||||
<field name="name">mail.message.subtype.form</field>
|
||||
<field name="model">mail.message.subtype</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Email message">
|
||||
<sheet>
|
||||
<group>
|
||||
<group string='Description'>
|
||||
<field name="name"/>
|
||||
<field name="sequence"/>
|
||||
<field name="res_model"/>
|
||||
<field name="description"/>
|
||||
<field name="default"/>
|
||||
<field name="internal"/>
|
||||
<field name="hidden"/>
|
||||
<field name="track_recipients"/>
|
||||
</group>
|
||||
<group string='Auto subscription'>
|
||||
<field name="parent_id"/>
|
||||
<field name="relation_field"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_message_subtype">
|
||||
<field name="name">Subtypes</field>
|
||||
<field name="res_model">mail.message.subtype</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
203
odoo-bringout-oca-ocb-mail/mail/views/mail_message_views.xml
Normal file
203
odoo-bringout-oca-ocb-mail/mail/views/mail_message_views.xml
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- mail.message tree: short view !-->
|
||||
<record model="ir.ui.view" id="view_message_tree">
|
||||
<field name="name">mail.message.tree</field>
|
||||
<field name="model">mail.message</field>
|
||||
<field name="priority">20</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Messages">
|
||||
<field name="date"/>
|
||||
<field name="subject"/>
|
||||
<field name="author_id"/>
|
||||
<field name="model"/>
|
||||
<field name="res_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- mail.message form: short view !-->
|
||||
<record id="mail_message_view_form" model="ir.ui.view">
|
||||
<field name="name">mail.message.view.form</field>
|
||||
<field name="model">mail.message</field>
|
||||
<field name="priority">20</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Message" duplicate="0">
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button name="action_open_document" string="Open Document"
|
||||
type="object" class="oe_link" icon="fa-file-text-o"
|
||||
attrs="{'invisible': ['|', ('model', '=', False), ('res_id', '=', 0)]}"/>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="subject"/>
|
||||
<field name="date"/>
|
||||
<field name="email_from"/>
|
||||
<field name="author_id"/>
|
||||
<field name="message_type"/>
|
||||
<field name="subtype_id"/>
|
||||
<field name="is_internal"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="model"/>
|
||||
<field name="res_id"/>
|
||||
<field name="record_name"/>
|
||||
<field name="parent_id"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Body" name="body">
|
||||
<field name="body" options="{'style-inline': true}"/>
|
||||
</page>
|
||||
<page string="Gateway" name="gateway">
|
||||
<group>
|
||||
<group>
|
||||
<field name="reply_to"/>
|
||||
<field name="reply_to_force_new"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="message_id"/>
|
||||
<field name="mail_server_id"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Recipients" name="recipients">
|
||||
<group>
|
||||
<group>
|
||||
<field name="partner_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="notified_partner_ids" widget="many2many_tags"/>
|
||||
<field name="starred_partner_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="notification_ids">
|
||||
<tree>
|
||||
<field name="res_partner_id"/>
|
||||
<field name="is_read"/>
|
||||
<field name="notification_type"/>
|
||||
<field name="notification_status"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Tracking" name="page_tracking">
|
||||
<field name="tracking_value_ids"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- mail.message search: wall view !-->
|
||||
<record model="ir.ui.view" id="view_message_search">
|
||||
<field name="name">mail.message.search</field>
|
||||
<field name="model">mail.message</field>
|
||||
<field name="priority">25</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Messages Search">
|
||||
<field name="body" string="Content" filter_domain="['|', ('subject', 'ilike', self), ('body', 'ilike', self)]" />
|
||||
<field name="subject"/>
|
||||
<field name="message_type"/>
|
||||
<field name="author_id"/>
|
||||
<field name="partner_ids"/>
|
||||
<field name="model"/>
|
||||
<field name="res_id"/>
|
||||
<field name="parent_id"/>
|
||||
<filter string="Has Mentions"
|
||||
name="filter_has_mentions"
|
||||
domain="[('partner_ids.user_ids', 'in', [uid])]"/>
|
||||
<separator/>
|
||||
<filter string="Need Action"
|
||||
name="message_needaction" help="Unread messages"
|
||||
domain="[('needaction', '=', True)]"/>
|
||||
<separator/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_view_mail_message" model="ir.actions.act_window">
|
||||
<field name="name">Messages</field>
|
||||
<field name="res_model">mail.message</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_message_search"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_document_file_kanban">
|
||||
<field name="name">ir.attachment kanban</field>
|
||||
<field name="model">ir.attachment</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban edit="false" import="false">
|
||||
<field name="id"/>
|
||||
<field name="mimetype"/>
|
||||
<field name="type"/>
|
||||
<field name="create_uid"/>
|
||||
<field name="url"/>
|
||||
<field name="create_date"/>
|
||||
<field name="name"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_global_area oe_kanban_global_click o_kanban_attachment">
|
||||
<div class="row">
|
||||
<div class="offset-10">
|
||||
<div class="o_dropdown_kanban dropdown" groups="base.group_user">
|
||||
<a role="button" class="dropdown-toggle o-no-caret btn" data-bs-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
|
||||
<span class="fa fa-ellipsis-v"/>
|
||||
</a>
|
||||
<div class="dropdown-menu" role="menu">
|
||||
<a t-attf-href="/web/content/ir.attachment/#{record.id.raw_value}/datas?download=true" download="" class="dropdown-item">Download</a>
|
||||
<a t-if="widget.deletable" role="menuitem" type="delete" class="dropdown-item">Delete</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_kanban_image">
|
||||
<div class="o_kanban_image_wrapper">
|
||||
<t t-set="webimage" t-value="new RegExp('image.*(gif|jpeg|jpg|png)').test(record.mimetype.value)"/>
|
||||
<div t-if="record.type.raw_value == 'url'" class="o_url_image fa fa-link fa-3x text-muted" aria-label="Image is a link"/>
|
||||
<img t-elif="webimage" t-attf-src="/web/image/#{record.id.raw_value}" width="100" height="100" alt="Document" class="o_attachment_image"/>
|
||||
<div t-else="!webimage" class="o_image o_image_thumbnail" t-att-data-mimetype="record.mimetype.value"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_kanban_details">
|
||||
<div class="o_kanban_details_wrapper">
|
||||
<div t-att-title="record.name.raw_value" class="o_kanban_record_title">
|
||||
<field name="name" class="o_text_overflow"/>
|
||||
</div>
|
||||
<div class="o_kanban_record_body">
|
||||
<t t-if="record.type.raw_value == 'url'">
|
||||
<span class="o_document_url"><i class="fa fa-globe" aria-label="Document url"/> <field name="url" widget="url"/></span>
|
||||
</t>
|
||||
<samp t-else="" class="text-muted"> </samp>
|
||||
</div>
|
||||
<div class="o_kanban_record_bottom">
|
||||
<time class="oe_kanban_bottom_left">
|
||||
<field name="create_date" widget="date"/>
|
||||
</time>
|
||||
<div class="oe_kanban_bottom_right">
|
||||
<field name="create_uid" widget="many2one_avatar_user"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
<record id="base.action_attachment" model="ir.actions.act_window">
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Attach a new document
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo><data>
|
||||
<record id="mail_notification_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.notification.view.tree</field>
|
||||
<field name="model">mail.notification</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Notifications">
|
||||
<field name="mail_message_id"/>
|
||||
<field name="notification_type"/>
|
||||
<field name="res_partner_id"/>
|
||||
<field name="is_read"/>
|
||||
<field name="failure_type"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_notification_view_form" model="ir.ui.view">
|
||||
<field name="name">mail.notification.view.form</field>
|
||||
<field name="model">mail.notification</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Notification" duplicate="0">
|
||||
<header>
|
||||
<field name="notification_status" widget="statusbar"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<group>
|
||||
<group string="Source">
|
||||
<field name="mail_message_id"/>
|
||||
<field name="notification_type"/>
|
||||
<field name="mail_mail_id"/>
|
||||
<field name="res_partner_id"/>
|
||||
</group>
|
||||
<group string="Status">
|
||||
<field name="is_read"/>
|
||||
<field name="read_date"/>
|
||||
<field name="failure_type"/>
|
||||
<field name="failure_reason"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_notification_action" model="ir.actions.act_window">
|
||||
<field name="name">Notifications</field>
|
||||
<field name="res_model">mail.notification</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</data></odoo>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- mail.shortcode -->
|
||||
<record id="mail_shortcode_action" model="ir.actions.act_window">
|
||||
<field name="name">Chat Shortcode</field>
|
||||
<field name="res_model">mail.shortcode</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Define a new chat shortcode
|
||||
</p><p>
|
||||
A shortcode is a keyboard shortcut. For instance, you type #gm and it will be transformed into "Good Morning".
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_shortcode_view_tree" model="ir.ui.view">
|
||||
<field name="name">mail.shortcode.tree</field>
|
||||
<field name="model">mail.shortcode</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Shortcodes">
|
||||
<field name="source"/>
|
||||
<field name="substitution"/>
|
||||
<field name="description"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_shortcode_view_form" model="ir.ui.view">
|
||||
<field name="name">mail.shortcode.form</field>
|
||||
<field name="model">mail.shortcode</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Shortcodes">
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="source"/>
|
||||
<field name="substitution"/>
|
||||
<field name="description"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
138
odoo-bringout-oca-ocb-mail/mail/views/mail_template_views.xml
Normal file
138
odoo-bringout-oca-ocb-mail/mail/views/mail_template_views.xml
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="email_template_form">
|
||||
<field name="name">email.template.form</field>
|
||||
<field name="model">mail.template</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Templates">
|
||||
<header>
|
||||
<field name="template_fs" invisible="1"/>
|
||||
<button string="Reset Template"
|
||||
name="%(mail_template_reset_action)d" type="action"
|
||||
groups="mail.group_mail_template_editor"
|
||||
attrs="{'invisible': [('template_fs', '=', False)]}"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<field name="ref_ir_act_window" invisible="1"/>
|
||||
<button class="oe_stat_button"
|
||||
groups="base.group_no_one"
|
||||
name="create_action" type="object"
|
||||
attrs="{'invisible':[('ref_ir_act_window','!=',False)]}" icon="fa-plus"
|
||||
help="Display an option on related documents to open a composition wizard with this template">
|
||||
<div class="o_field_widget o_stat_info">
|
||||
<span class="o_stat_text">Add</span>
|
||||
<span class="o_stat_text">Context Action</span>
|
||||
</div>
|
||||
</button>
|
||||
<button name="unlink_action" type="object"
|
||||
groups="base.group_no_one"
|
||||
class="oe_stat_button" icon="fa-minus"
|
||||
attrs="{'invisible':[('ref_ir_act_window','=',False)]}"
|
||||
help="Remove the contextual action to use this template on related documents" widget="statinfo">
|
||||
<div class="o_field_widget o_stat_info">
|
||||
<span class="o_stat_text">Remove</span>
|
||||
<span class="o_stat_text">Context Action</span>
|
||||
</div>
|
||||
</button>
|
||||
<button class="oe_stat_button" name="%(mail_template_preview_action)d" icon="fa-search-plus" string="Preview"
|
||||
type="action" target="new"/>
|
||||
</div>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1><field name="name" class="w-100"
|
||||
required="1" placeholder='e.g. "Welcome email"'/></h1>
|
||||
<group>
|
||||
<field name="model_id" placeholder="e.g. Contact" required="1" options="{'no_create': True}"/>
|
||||
<field name="subject" placeholder='e.g. "Welcome to MyCompany" or "Nice to meet you, {{ object.name }}"'/>
|
||||
<field name="model" invisible="1"/>
|
||||
<field name="description"/>
|
||||
</group>
|
||||
</div>
|
||||
<notebook>
|
||||
<page string="Content" name="content">
|
||||
<field name="can_write" invisible="1"/>
|
||||
<field name="body_html" widget="html" class="oe-bordered-editor"
|
||||
options="{'style-inline': true, 'codeview': true, 'dynamic_placeholder': true}"
|
||||
attrs="{'readonly': [('can_write', '=', False), ('id', '!=', False)]}"/>
|
||||
<field name="attachment_ids" widget="many2many_binary"/>
|
||||
</page>
|
||||
<page string="Email Configuration" name="email_configuration">
|
||||
<group>
|
||||
<field name="email_from"
|
||||
placeholder="Override author's email"/>
|
||||
<field name="use_default_to"/>
|
||||
<field name="email_to" attrs="{'invisible': [('use_default_to', '=', True)]}"
|
||||
placeholder="Comma-separated recipient addresses"/>
|
||||
<field name="partner_to" attrs="{'invisible': [('use_default_to', '=', True)]}"
|
||||
placeholder="Comma-separated ids of recipient partners"/>
|
||||
<field name="email_cc" attrs="{'invisible': [('use_default_to', '=', True)]}"
|
||||
placeholder="Comma-separated carbon copy recipients addresses"/>
|
||||
<field name="reply_to"
|
||||
placeholder="Email address to which replies will be redirected when sending emails in mass"/>
|
||||
<field name="scheduled_date" string="Scheduled Send Date"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Settings" name="email_settings">
|
||||
<group>
|
||||
<field name="lang" placeholder="{{ object.partner_id.lang }}"/>
|
||||
<field name="mail_server_id"/>
|
||||
<field name="auto_delete"/>
|
||||
<field name="report_template" domain="[('model','=',model)]"/>
|
||||
<field name="report_name" attrs="{'invisible':[('report_template','=',False)]}"/>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="email_template_tree">
|
||||
<field name="name">email.template.tree</field>
|
||||
<field name="model">mail.template</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Templates">
|
||||
<field name="mail_server_id" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="model_id" groups="base.group_no_one"/>
|
||||
<field name="description"/>
|
||||
<field name="subject" optional="hidden"/>
|
||||
<field name="email_from" optional="hidden"/>
|
||||
<field name="email_to" optional="hidden"/>
|
||||
<field name="partner_to" optional="hidden"/>
|
||||
<field name="report_name" optional="hidden"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_email_template_search" model="ir.ui.view">
|
||||
<field name="name">email.template.search</field>
|
||||
<field name="model">mail.template</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Templates">
|
||||
<field name="name" filter_domain="['|', '|', '|',('name','ilike',self), ('report_name','ilike',self), ('subject','ilike',self), ('email_to','ilike',self)]" string="Templates"/>
|
||||
<field name="lang"/>
|
||||
<field name="model_id"/>
|
||||
<filter name="base_templates" string="Base Templates" domain="[('template_category', '=', 'base_template')]"/>
|
||||
<filter name="custom_templates" string="Custom Templates" domain="[('template_category', '=', 'custom_template')]"/>
|
||||
<group expand="0" string="Group by...">
|
||||
<filter string="SMTP Server" name="smtpserver" domain="[]" context="{'group_by':'mail_server_id'}"/>
|
||||
<filter string="Model" name="model" domain="[]" context="{'group_by':'model_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_email_template_tree_all">
|
||||
<field name="name">Email Templates</field>
|
||||
<field name="res_model">mail.template</field>
|
||||
<field name="view_mode">form,tree</field>
|
||||
<field name="view_id" ref="email_template_tree" />
|
||||
<field name="search_view_id" ref="view_email_template_search"/>
|
||||
<field name="context">{'search_default_base_templates': 1}</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<record model="ir.ui.view" id="view_mail_tracking_value_tree">
|
||||
<field name="name">mail.tracking.value.tree</field>
|
||||
<field name="model">mail.tracking.value</field>
|
||||
<field name="priority">12</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Tracking Value">
|
||||
<field name="field"/>
|
||||
<field name="old_value_integer"/>
|
||||
<field name="old_value_float"/>
|
||||
<field name="old_value_char"/>
|
||||
<field name="old_value_text"/>
|
||||
<field name="old_value_datetime"/>
|
||||
<field name="new_value_integer"/>
|
||||
<field name="new_value_float"/>
|
||||
<field name="new_value_char"/>
|
||||
<field name="new_value_text"/>
|
||||
<field name="new_value_datetime"/>
|
||||
<field name="mail_message_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_mail_tracking_value_form">
|
||||
<field name="name">mail.tracking.value.form</field>
|
||||
<field name="model">mail.tracking.value</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Tracking Value">
|
||||
<sheet>
|
||||
<group name="field_details" string="Field details">
|
||||
<field name="field"/>
|
||||
<field name="field_desc"/>
|
||||
<field name="field_type"/>
|
||||
<field name="tracking_sequence"/>
|
||||
</group>
|
||||
<group name="values">
|
||||
<group name="old_values" string="Old values">
|
||||
<field name="old_value_integer"/>
|
||||
<field name="old_value_float"/>
|
||||
<field name="old_value_char"/>
|
||||
<field name="old_value_text"/>
|
||||
<field name="old_value_datetime"/>
|
||||
</group>
|
||||
<group name="new_values" string="New values">
|
||||
<field name="new_value_integer"/>
|
||||
<field name="new_value_float"/>
|
||||
<field name="new_value_char"/>
|
||||
<field name="new_value_text"/>
|
||||
<field name="new_value_datetime"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string='Related Message'>
|
||||
<field name="mail_message_id"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_mail_tracking_value">
|
||||
<field name="name">Tracking Values</field>
|
||||
<field name="res_model">mail.tracking.value</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,164 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<record id="res_config_settings_view_form" model="ir.ui.view">
|
||||
<field name="name">res.config.settings.view.form.inherit.mail</field>
|
||||
<field name="model">res.config.settings</field>
|
||||
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<div id="emails" position='replace'>
|
||||
<h2>Discuss</h2>
|
||||
<div class="row mt16 o_settings_container" id="emails">
|
||||
<div class="col-12 col-lg-6 o_setting_box" id="activities_setting">
|
||||
<div class="o_setting_left_pane"/>
|
||||
<div class="o_setting_right_pane">
|
||||
<span class="o_form_label">Activities</span>
|
||||
<div class="text-muted">
|
||||
Configure your activity types
|
||||
</div>
|
||||
<div class="content-group">
|
||||
<div class="mt8">
|
||||
<button name="%(mail.mail_activity_type_action)d" string="Activity Types" type="action" class="oe_link" icon="fa-arrow-right"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-lg-6 o_setting_box"
|
||||
id="email_servers_setting"
|
||||
title="Using your own email server is required to send/receive emails in Community and Enterprise versions. Online users already benefit from a ready-to-use email server (@mycompany.odoo.com).">
|
||||
<div class="o_setting_left_pane">
|
||||
<field name="external_email_server_default"/>
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="external_email_server_default"/>
|
||||
<a href="https://www.odoo.com/documentation/16.0/applications/general/email_communication/email_servers.html" title="Documentation" class="o_doc_link" target="_blank"></a>
|
||||
<div class="text-muted" id="external_email_server_default">
|
||||
Configure your own email servers
|
||||
</div>
|
||||
<div class="content-group mb-3" attrs="{'invisible': [('external_email_server_default', '=', False)]}">
|
||||
<div class="mt16" id="mail_alias_domain" dir="ltr">
|
||||
<label for="alias_domain" class="o_light_label"/>
|
||||
<span>@</span>
|
||||
<field name="alias_domain" placeholder='e.g. "mycompany.com"'/>
|
||||
</div>
|
||||
<div class="mt8">
|
||||
<button type="action"
|
||||
name="%(action_email_server_tree)d"
|
||||
string="Incoming Email Servers" icon="fa-arrow-right" class="btn-link"/>
|
||||
</div>
|
||||
<div class="mt8">
|
||||
<button type="action"
|
||||
name="%(base.action_ir_mail_server_list)d"
|
||||
string="Outgoing Email Servers" icon="fa-arrow-right" class="btn-link"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-3 d-flex" attrs="{'invisible': [('external_email_server_default', '=', False)]}">
|
||||
<field name="module_google_gmail"/>
|
||||
<div>
|
||||
<label string="Gmail Credentials" for="module_google_gmail"/>
|
||||
<a href="https://console.developers.google.com/" title="Get Gmail API credentials" class="o_doc_link" target="_blank"/>
|
||||
<div class="text-muted">
|
||||
Send and receive emails through your Gmail account.
|
||||
</div>
|
||||
<div class="content-group" attrs="{'invisible': [('module_google_gmail','=',False)]}" id="msg_module_google_gmail">
|
||||
<div class="mt16 text-warning"><strong>Save</strong> this page and come back here to set up the feature.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-3 d-flex" attrs="{'invisible': [('external_email_server_default', '=', False)]}">
|
||||
<field name="module_microsoft_outlook"/>
|
||||
<div>
|
||||
<label string="Outlook Credentials" for="module_microsoft_outlook"/>
|
||||
<a href="https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app"
|
||||
title="Get Outlook API credentials" class="o_doc_link" target="_blank"/>
|
||||
<div class="text-muted">
|
||||
Send and receive emails through your Outlook account.
|
||||
</div>
|
||||
<div class="content-group" id="msg_module_microsoft_outlook"
|
||||
attrs="{'invisible': [('module_microsoft_outlook','=',False)]}">
|
||||
<div class="mt16 text-warning">
|
||||
<strong>Save</strong> this page and come back here to set up the feature.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-lg-6 o_setting_box">
|
||||
<div class="o_setting_left_pane">
|
||||
<field name="use_twilio_rtc_servers"/>
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="use_twilio_rtc_servers"/>
|
||||
<div class="text-muted col-md-12">
|
||||
Add your twilio credentials for ICE servers
|
||||
</div>
|
||||
<div class="content-group" attrs="{'invisible': [('use_twilio_rtc_servers', '=', False)]}">
|
||||
<div class="row mt16" id="mail_twilio_sid">
|
||||
<label for="twilio_account_sid" class="col-lg-3"/>
|
||||
<field name="twilio_account_sid" placeholder="e.g. ACd5543a0b450ar4c7t95f1b6e8a39t543"/>
|
||||
</div>
|
||||
<div class="row mt16" id="mail_twilio_auth_token">
|
||||
<label for="twilio_account_token" class="col-lg-3"/>
|
||||
<field name="twilio_account_token" placeholder="e.g. 65ea4f9e948b693N5156F350256bd152"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-lg-6 o_setting_box">
|
||||
<div class="o_setting_right_pane">
|
||||
<span class="o_form_label">Custom ICE server list</span>
|
||||
<div class="row">
|
||||
<div class="text-muted col-md-12">
|
||||
Configure your ICE server list for webRTC
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-group">
|
||||
<div class="row col-lg-4">
|
||||
<button type="action" name="%(mail.action_ice_servers)d" string="ICE Servers" icon="fa-arrow-right" class="btn-link"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-lg-6 o_setting_box"
|
||||
id="restrict_template_rendering_setting">
|
||||
<div class="o_setting_left_pane">
|
||||
<field name="restrict_template_rendering"/>
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="restrict_template_rendering"/>
|
||||
<div class="text-muted" id="restrict_template_rendering">
|
||||
Restrict mail templates edition and QWEB placeholders usage.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="companies_setting" position="inside">
|
||||
<br/>
|
||||
<div class="o_setting_right_pane" id="mail_templates_setting"
|
||||
groups="mail.group_mail_template_editor,base.group_system">
|
||||
<span class="o_form_label">Email Templates</span>
|
||||
<div class="text-muted">
|
||||
Customize the look and feel of automated emails
|
||||
</div>
|
||||
<div class="w-50 row">
|
||||
<span class="d-block w-75 py-2">Header Color</span>
|
||||
<field name="primary_color" class="d-block w-25 p-0 m-0" widget="color"/>
|
||||
</div>
|
||||
<div class="w-50 row mt-1">
|
||||
<span class="d-block w-75 py-2">Button Color</span>
|
||||
<field name="secondary_color" class="d-block w-25 p-0 m-0" widget="color"/>
|
||||
</div>
|
||||
<button name="open_email_layout" icon="fa-arrow-right"
|
||||
type="object" string="Update Mail Layout"
|
||||
groups="base.group_no_one" class="btn-link"/>
|
||||
<br groups="base.group_no_one"/>
|
||||
<button name="open_mail_templates" icon="fa-arrow-right" type="object" string="Review All Templates" class="btn-link"/>
|
||||
</div>
|
||||
</div>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
121
odoo-bringout-oca-ocb-mail/mail/views/res_partner_views.xml
Normal file
121
odoo-bringout-oca-ocb-mail/mail/views/res_partner_views.xml
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
<?xml version="1.0" ?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<record id="res_partner_view_form_inherit_mail" model="ir.ui.view">
|
||||
<field name="name">res.partner.view.form.inherit.mail</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='email']" position="replace">
|
||||
<field name="is_blacklisted" invisible="1"/>
|
||||
<label for="email" class="oe_inline"/>
|
||||
<div class="o_row o_row_readonly">
|
||||
<button name="mail_action_blacklist_remove" class="fa fa-ban text-danger"
|
||||
title="This email is blacklisted for mass mailings. Click to unblacklist."
|
||||
type="object" context="{'default_email': email}" groups="base.group_user"
|
||||
attrs="{'invisible': [('is_blacklisted', '=', False)]}"/>
|
||||
<field name="email" widget="email" context="{'gravatar_image': True}" attrs="{'required': [('user_ids','!=', [])]}"/>
|
||||
</div>
|
||||
</xpath>
|
||||
<xpath expr="//sheet" position="after">
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids"/>
|
||||
<field name="activity_ids"/>
|
||||
<field name="message_ids"/>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="res_partner_view_kanban_inherit_mail" model="ir.ui.view">
|
||||
<field name="name">res.partner.view.kanban.inherit.mail</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.res_partner_kanban_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="type" position="after">
|
||||
<field name="activity_state"/>
|
||||
</field>
|
||||
<xpath expr="//div[hasclass('oe_kanban_bottom_right')]" position="inside">
|
||||
<field name="activity_ids" widget="kanban_activity"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="res_partner_view_search_inherit_mail" model="ir.ui.view">
|
||||
<field name="name">res.partner.view.search.inherit.mail</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_res_partner_filter"/>
|
||||
<field name="arch" type="xml">
|
||||
<filter name="inactive" position="after">
|
||||
<filter invisible="1" string="Late Activities" name="activities_overdue"
|
||||
domain="[('my_activity_date_deadline', '<', context_today().strftime('%Y-%m-%d'))]"
|
||||
help="Show all records which has next action date is before today"/>
|
||||
<filter invisible="1" string="Today Activities" name="activities_today"
|
||||
domain="[('my_activity_date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/>
|
||||
<filter invisible="1" string="Future Activities" name="activities_upcoming_all"
|
||||
domain="[('my_activity_date_deadline', '>', context_today().strftime('%Y-%m-%d'))]"/>
|
||||
<separator/>
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="res_partner_view_tree_inherit_mail" model="ir.ui.view">
|
||||
<field name="name">res.partner.view.tree.inherit.mail</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='user_id']" position="after">
|
||||
<field name="activity_ids" optional="show" widget="list_activity"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="res_partner_view_activity" model="ir.ui.view">
|
||||
<field name="name">res.partner.activity</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="arch" type="xml">
|
||||
<activity string="Contacts">
|
||||
<field name="id"/>
|
||||
<templates>
|
||||
<div t-name="activity-box">
|
||||
<img t-att-src="activity_image('res.partner', 'avatar_128', record.id.raw_value)" role="img" t-att-title="record.id.value" t-att-alt="record.id.value"/>
|
||||
<div>
|
||||
<field name="name" display="full"/>
|
||||
<field name="parent_id" muted="1" display="full"/>
|
||||
</div>
|
||||
</div>
|
||||
</templates>
|
||||
</activity>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Add mail-defined activity view to standard action on partners to manage activities related to partner model -->
|
||||
<record id="base.action_partner_form" model="ir.actions.act_window">
|
||||
<field name="view_mode">kanban,tree,form,activity</field>
|
||||
</record>
|
||||
<record id="base.action_partner_customer_form" model="ir.actions.act_window">
|
||||
<field name="view_mode">kanban,tree,form,activity</field>
|
||||
</record>
|
||||
<record id="base.action_partner_supplier_form" model="ir.actions.act_window">
|
||||
<field name="view_mode">kanban,tree,form,activity</field>
|
||||
</record>
|
||||
|
||||
<!-- Replace the default mass-mailing wizard in base with the composition wizard -->
|
||||
<record id="action_partner_mass_mail" model="ir.actions.act_window">
|
||||
<field name="name">Send email</field>
|
||||
<field name="res_model">mail.compose.message</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
<field name="context" eval="{
|
||||
'default_composition_mode': 'mass_mail',
|
||||
'default_partner_to': '{{ object.id or \'\' }}',
|
||||
'default_use_template': False,
|
||||
'default_reply_to_force_new': True,
|
||||
}"/>
|
||||
<field name="binding_model_id" ref="base.model_res_partner"/>
|
||||
<field name="binding_view_types">list</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
|
||||
<record id="res_users_settings_view_tree" model="ir.ui.view">
|
||||
<field name="name">res.users.settings.tree</field>
|
||||
<field name="model">res.users.settings</field>
|
||||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="User Settings">
|
||||
<field name="id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="use_push_to_talk"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="res_users_settings_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.settings.form</field>
|
||||
<field name="model">res.users.settings</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="User Settings">
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<h1><field name="user_id" attrs="{'readonly': [('id', '!=', False)]}"/></h1>
|
||||
</div>
|
||||
<group name="discuss_user_settings">
|
||||
<group string="Discuss sidebar">
|
||||
<field name="is_discuss_sidebar_category_channel_open"/>
|
||||
<field name="is_discuss_sidebar_category_chat_open"/>
|
||||
</group>
|
||||
<group string="Voice">
|
||||
<field name="use_push_to_talk"/>
|
||||
<field name="push_to_talk_key" placeholder="e.g. true.true..f" attrs="{'invisible': [('use_push_to_talk', '=', False)]}"/>
|
||||
<field name="voice_active_duration" attrs="{'invisible': [('use_push_to_talk', '=', True)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Volume per partner">
|
||||
<field name="volume_settings_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="partner_id"/>
|
||||
<field name="volume"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="res_users_settings_action" model="ir.actions.act_window">
|
||||
<field name="name">User Settings</field>
|
||||
<field name="res_model">res.users.settings</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
37
odoo-bringout-oca-ocb-mail/mail/views/res_users_views.xml
Normal file
37
odoo-bringout-oca-ocb-mail/mail/views/res_users_views.xml
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Update Preferences form !-->
|
||||
<record id="view_users_form_simple_modif_mail" model="ir.ui.view">
|
||||
<field name="name">res.users.preferences.form.mail</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form_simple_modif"/>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<field name="email" position="before">
|
||||
<field name="notification_type" widget="radio" readonly="0"/>
|
||||
</field>
|
||||
<xpath expr="//field[@name='image_1920']" position="before">
|
||||
<widget name="notification_alert"/>
|
||||
</xpath>
|
||||
</data>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Update user form !-->
|
||||
<record id="view_users_form_mail" model="ir.ui.view">
|
||||
<field name="name">res.users.form.mail</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<field name="signature" position="before">
|
||||
<field name="notification_type" widget="radio"
|
||||
attrs="{'invisible': [('share', '=', True)]}"/>
|
||||
</field>
|
||||
</data>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
Loading…
Add table
Add a link
Reference in a new issue