[WIP] Mailing Lists and Contacts cleaned
bzr revid: fp@tinyerp.com-20140412203129-5l7w4qr8rf2d1nqo
This commit is contained in:
parent
2feab20dbb
commit
3df4eb0f72
|
@ -69,29 +69,26 @@
|
|||
<!-- Create mailing lists -->
|
||||
<record id="mass_mail_list_1" model="mail.mass_mailing.list">
|
||||
<field name="name">Imported Contacts</field>
|
||||
<field name="model">mail.mass_mailing.contact</field>
|
||||
</record>
|
||||
<record id="mass_mail_list_2" model="mail.mass_mailing.list">
|
||||
<field name="name">Customers</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="domain">[('customer', '=', True)]</field>
|
||||
</record>
|
||||
|
||||
<!-- Create Contacts -->
|
||||
<record id="mass_mail_contact_1" model="mail.mass_mailing.contact">
|
||||
<field name="name">Aristide Antario</field>
|
||||
<field name="email">aa@example.com</field>
|
||||
<field name="list_id" eval="ref('mass_mail_list_1')"/>
|
||||
<field name="list_id" ref="mass_mailing.mass_mail_list_1"/>
|
||||
</record>
|
||||
<record id="mass_mail_contact_2" model="mail.mass_mailing.contact">
|
||||
<field name="name">Beverly Bridge</field>
|
||||
<field name="email">bb@example.com</field>
|
||||
<field name="list_id" eval="ref('mass_mail_list_1')"/>
|
||||
<field name="list_id" ref="mass_mailing.mass_mail_list_1"/>
|
||||
</record>
|
||||
<record id="mass_mail_contact_3" model="mail.mass_mailing.contact">
|
||||
<field name="name">Carol Cartridge</field>
|
||||
<field name="email">cc@example.com</field>
|
||||
<field name="list_id" eval="ref('mass_mail_list_1')"/>
|
||||
<field name="list_id" ref="mass_mailing.mass_mail_list_1"/>
|
||||
<field name="opt_out" eval="True"/>
|
||||
</record>
|
||||
|
||||
|
@ -103,13 +100,12 @@
|
|||
<field name="name">Newsletter</field>
|
||||
<field name="stage_id" ref="mass_mailing.campaign_stage_1"/>
|
||||
<field name="user_id" eval="ref('base.user_root')"/>
|
||||
<field name="category_id" eval="ref('mass_mailing.mass_mail_category_1')"/>
|
||||
<field name="category_ids" eval="[(6,0,[ref('mass_mailing.mass_mail_category_1')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="mass_mail_1" model="mail.mass_mailing">
|
||||
<field name="name">First Newsletter</field>
|
||||
<field name="state">done</field>
|
||||
<field name="template_id" eval="ref('mass_mail_template_1')"/>
|
||||
<field name="date" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="mass_mailing_campaign_id" eval="ref('mass_mail_campaign_1')"/>
|
||||
<field name="contact_list_ids" eval="[(4, ref('mass_mail_list_2'))]"/>
|
||||
|
@ -117,7 +113,6 @@
|
|||
<record id="mass_mail_2" model="mail.mass_mailing">
|
||||
<field name="name">Second Newsletter</field>
|
||||
<field name="state">test</field>
|
||||
<field name="template_id" eval="ref('mass_mail_template_1')"/>
|
||||
<field name="date" eval="(DateTime.today() - relativedelta(days=3)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="mass_mailing_campaign_id" eval="ref('mass_mail_campaign_1')"/>
|
||||
</record>
|
||||
|
|
|
@ -54,9 +54,10 @@ class MassMailingContact(osv.Model):
|
|||
_columns = {
|
||||
'name': fields.char('Name'),
|
||||
'email': fields.char('Email', required=True),
|
||||
'create_date': fields.datetime('Create Date'),
|
||||
'list_id': fields.many2one(
|
||||
'mail.mass_mailing.list', string='Mailing List',
|
||||
ondelete='cascade',
|
||||
ondelete='cascade', required=True,
|
||||
),
|
||||
'opt_out': fields.boolean('Opt Out', help='The contact has chosen not to receive mails anymore from this list'),
|
||||
}
|
||||
|
@ -104,8 +105,8 @@ class MassMailingCampaign(osv.Model):
|
|||
'res.users', 'Responsible',
|
||||
required=True,
|
||||
),
|
||||
'category_ids': fields.many2many(
|
||||
'mail.mass_mailing.category', 'Categories'),
|
||||
'category_ids': fields.many2many('mail.mass_mailing.category', 'mail_mass_amiling_category_rel',
|
||||
'category_id', 'campaign_id', string='Categories'),
|
||||
'mass_mailing_ids': fields.one2many(
|
||||
'mail.mass_mailing', 'mass_mailing_campaign_id',
|
||||
'Mass Mailings',
|
||||
|
@ -174,8 +175,8 @@ class MassMailing(osv.Model):
|
|||
'reply_to': fields.char('Reply To'),
|
||||
|
||||
# Target Emails
|
||||
'mailing_model': fields.selection(_get_mailing_model, string='Model', required=True),
|
||||
'mailing_domain': fields.char('Domain', required=True),
|
||||
'mailing_model': fields.selection(_get_mailing_model, string='Model'),
|
||||
'mailing_domain': fields.char('Domain'),
|
||||
'contact_list_ids': fields.many2many(
|
||||
'mail.mass_mailing.list', 'mail_mass_mailing_list_rel',
|
||||
string='Mailing Lists',
|
||||
|
@ -215,7 +216,6 @@ class MassMailing(osv.Model):
|
|||
def on_change_mailing_model(self, cr, uid, ids, mailing_model, context=None):
|
||||
values = {
|
||||
'contact_list_ids': [],
|
||||
'template_id': False,
|
||||
'contact_nbr': 0,
|
||||
'auto_reply_to_available': not mailing_model in self._get_private_models(context),
|
||||
'reply_in_thread': not mailing_model in self._get_private_models(context),
|
||||
|
@ -247,21 +247,6 @@ class MassMailing(osv.Model):
|
|||
)
|
||||
return {'value': values}
|
||||
|
||||
def on_change_template_id(self, cr, uid, ids, template_id, context=None):
|
||||
values = {}
|
||||
if template_id:
|
||||
template = self.pool['email.template'].browse(cr, uid, template_id, context=context)
|
||||
if template.email_from:
|
||||
values['email_from'] = template.email_from
|
||||
if template.reply_to:
|
||||
values['reply_to'] = template.reply_to
|
||||
values['body_html'] = template.body_html
|
||||
else:
|
||||
values['email_from'] = self.pool['mail.message']._get_default_from(cr, uid, context=context)
|
||||
values['reply_to'] = False
|
||||
values['body_html'] = False
|
||||
return {'value': values}
|
||||
|
||||
def on_change_contact_ab_pc(self, cr, uid, ids, contact_ab_pc, contact_nbr, context=None):
|
||||
return {'value': {'contact_ab_nbr': contact_nbr * contact_ab_pc / 100.0}}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<menuitem name="Mass Mailing" id="mass_mailing_campaign"
|
||||
parent="base.marketing_menu" sequence="1"/>
|
||||
<!-- Marketing / Mailing Lists -->
|
||||
<menuitem name="Contact Lists" id="mass_mailing_list"
|
||||
<menuitem name="Mailing Lists" id="mass_mailing_list"
|
||||
parent="base.marketing_menu" sequence="2"/>
|
||||
<!-- Marketing / Configuration -->
|
||||
<menuitem name="Configuration" id="marketing_configuration"
|
||||
|
@ -22,9 +22,10 @@
|
|||
<field name="email"/>
|
||||
<field name="list_id"/>
|
||||
<separator/>
|
||||
<filter string="Exclude Opt Out" name="not_opt_out" domain="[('opt_out', '=', False)]"
|
||||
help="Contact is not opt-out"/>
|
||||
<filter string="Exclude Opt Out" name="not_opt_out" domain="[('opt_out', '=', False)]"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Creation Date" name="group_create_date"
|
||||
context="{'group_by': 'create_date'}"/>
|
||||
<filter string="Mailing Lists" name="group_list_id"
|
||||
context="{'group_by': 'list_id'}"/>
|
||||
</group>
|
||||
|
@ -38,8 +39,8 @@
|
|||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Mailing Lists Subscribers" editable="top">
|
||||
<field name="name"/>
|
||||
<field name="email"/>
|
||||
<field name="name"/>
|
||||
<field name="list_id"/>
|
||||
<field name="opt_out"/>
|
||||
</tree>
|
||||
|
@ -100,15 +101,18 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Contact List" version="7.0">
|
||||
<sheet>
|
||||
<!-- TODO: stat_get button and relate link -->
|
||||
<div class="oe_button_box" nname="buttons">
|
||||
<button name="%(mass_mailing.mass_mailing_list_open_contacts)d" type="action"
|
||||
string="Recipients"/>
|
||||
<div class="oe_right oe_button_box" name="buttons">
|
||||
<button name="%(mass_mailing.mass_mailing_list_open_contacts)d"
|
||||
type="action" icon="fa-user" class="oe_stat_button pull-right">
|
||||
<field name="contact_nbr" string="Recipients" widget="statinfo"/>
|
||||
</button>
|
||||
</div>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<h1>
|
||||
<field name="name"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field for="contact_nbr"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
|
@ -268,35 +272,16 @@
|
|||
<span style="margin-left: 8px; margin-right: 8px">or</span>
|
||||
<button string='Create a New List' class="oe_link" type='object' name='action_new_list'/><br />
|
||||
|
||||
<div groups="mass_mailing.group_mass_mailing_campaign" style="display: inline;">
|
||||
<field name="ab_testing" invisible="1"/>
|
||||
<label for="contact_ab_pc" string="AB Testing" style="display: inline-block; min-width: 90px;"/>
|
||||
Email <field name="contact_ab_pc" class="oe_inline"
|
||||
on_change="on_change_contact_ab_pc(contact_ab_pc, contact_nbr, context)"/>
|
||||
<strong>%</strong> of recipients
|
||||
(<field name="contact_ab_nbr" class="oe_inline"/> recipients)
|
||||
<div attrs="{'invisible': [('ab_testing', '=', False)]}" style="display: inline;">
|
||||
<span>(</span>
|
||||
<field name="contact_ab_done" class="oe_inline"
|
||||
attrs="{'invisible': [('ab_testing', '=', False)]}"/> already mailed
|
||||
<span>)</span>
|
||||
</div>
|
||||
</div>
|
||||
<field name="contact_ab_pc" groups="mass_mailing.group_mass_mailing_campaign"/>
|
||||
|
||||
</div>
|
||||
<field name="date" readonly="True" groups="mass_mailing.group_mass_mailing_campaign"
|
||||
attrs="{'invisible': [('state', '!=', 'done')]}"/>
|
||||
<field name="mass_mailing_campaign_id" groups="mass_mailing.group_mass_mailing_campaign"/>
|
||||
<label for="body_html" string="Email"/>
|
||||
<div>
|
||||
<label for="template_id" string="Template"/>
|
||||
<field name="template_id" string="Select Template"
|
||||
class="oe_inline" options="{'no_create': True, 'no_open': True}"
|
||||
on_change="on_change_template_id(template_id, context)"/><br />
|
||||
<button name="action_edit_html" type="object" string="Edit Mail Content"
|
||||
class="oe_link" style="margin-left: 8px"/>
|
||||
<field name="body_html"/>
|
||||
</div>
|
||||
<button name="action_edit_html" type="object" string="Edit Mail Content"
|
||||
class="oe_link" style="margin-left: 8px"/>
|
||||
<field name="body_html"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
|
@ -397,28 +382,12 @@
|
|||
<field name="model">mail.mass_mailing.stage</field>
|
||||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Mass Mailings">
|
||||
<tree string="Mass Mailings" editable="top">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="sequence"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_mail_mass_mailing_stage_form">
|
||||
<field name="name">mail.mass_mailing.stage.form</field>
|
||||
<field name="model">mail.mass_mailing.stage</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Mass Mailing" version="7.0">
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="sequence"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_view_mass_mailing_stages" model="ir.actions.act_window">
|
||||
<field name="name">Mass Mailing Stages</field>
|
||||
<field name="res_model">mail.mass_mailing.stage</field>
|
||||
|
@ -437,15 +406,13 @@
|
|||
<field name="arch" type="xml">
|
||||
<search string="Mass Mailing Campaigns">
|
||||
<field name="name" string="Campaigns"/>
|
||||
<field name="category_id"/>
|
||||
<field name="category_ids"/>
|
||||
<field name="user_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Stage" name="group_stage_id"
|
||||
context="{'group_by': 'stage_id'}"/>
|
||||
<filter string="Responsible" name="group_user_id"
|
||||
context="{'group_by': 'user_id'}"/>
|
||||
<filter string="Category" name="group_category_id"
|
||||
context="{'group_by': 'category_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
@ -460,7 +427,7 @@
|
|||
<field name="name"/>
|
||||
<field name="user_id"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="category_id"/>
|
||||
<field name="category_ids"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -479,7 +446,7 @@
|
|||
<group>
|
||||
<field name="name"/>
|
||||
<field name="user_id"/>
|
||||
<field name="category_id"/>
|
||||
<field name="category_ids"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="total" invisible="1"/>
|
||||
|
@ -550,7 +517,7 @@
|
|||
<img t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)"
|
||||
t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar oe_kanban_header_right"/>
|
||||
<h3 style="margin-bottom: 8px;"><field name="name"/></h3>
|
||||
<span class="oe_tag"><field name="category_id"/></span>
|
||||
<span class="oe_tag"><field name="category_ids"/></span>
|
||||
<a name="%(action_view_mass_mailings_from_campaign)d" type="action"
|
||||
class="oe_mailings">
|
||||
<h4 style="margin-top: 8px;"><t t-raw="record.mass_mailing_ids.raw_value.length"/> Mailings</h4>
|
||||
|
@ -640,7 +607,6 @@
|
|||
<group>
|
||||
<field name="mass_mailing_id"/>
|
||||
<field name="mass_mailing_campaign_id"/>
|
||||
<field name="template_id"/>
|
||||
<field name="model"/>
|
||||
<field name="res_id"/>
|
||||
</group>
|
||||
|
@ -661,11 +627,5 @@
|
|||
parent="base.menu_email" sequence="50"
|
||||
action="action_view_mail_mail_statistics"/>
|
||||
|
||||
<!-- MISC -->
|
||||
<!-- Mailing List Create Wizard -->
|
||||
<menuitem name="Create a new List" id="menu_mail_mass_mailing_create"
|
||||
parent="mass_mailing_list" sequence="10"
|
||||
action="action_mail_mass_mailing_create"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -2,19 +2,5 @@
|
|||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- Create a Mailing List from Partners -->
|
||||
<act_window name="Create Mailing List"
|
||||
res_model="mail.mass_mailing.list.confirm"
|
||||
src_model="res.partner"
|
||||
view_mode="form"
|
||||
multi="True"
|
||||
target="new"
|
||||
key2="client_action_multi"
|
||||
id="action_partner_to_mailing_list"
|
||||
context="{
|
||||
'default_mass_mailing_id': context.get('default_mass_mailing_id'),
|
||||
'default_model': context.get('default_model', 'res.partner'),
|
||||
'default_name': context.get('default_name', False)}"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
Loading…
Reference in New Issue