[IMP] {mass_mailing}_sms: add A/B Test related info in campaign
This commit adds a new group `ab_test_group` after notebook of campaign form view, which displays A/B test related information. Below are the fields displayed within the group: - ab_testing_winner_selection - ab_testing_schedule_datetime They will become readonly as soon as the the A/B testing is completed. Apart from that, this commit makes the mailing/sms mailing lines editable. TaskID-2653806 Part-of: odoo/odoo#77768
This commit is contained in:
committed by
Dharmraj Jhala
parent
87e538dd1d
commit
0714966042
@@ -66,8 +66,8 @@ class UtmCampaign(models.Model):
|
||||
mapped_data = dict()
|
||||
ab_testing_mapped_data = dict()
|
||||
for campaign in self:
|
||||
campaign.mailing_mail_count = sum(mapped_data.get(campaign.id, []))
|
||||
campaign.ab_testing_mailings_count = sum(ab_testing_mapped_data.get(campaign.id, []))
|
||||
campaign.mailing_mail_count = sum(mapped_data.get(campaign._origin.id or campaign.id, []))
|
||||
campaign.ab_testing_mailings_count = sum(ab_testing_mapped_data.get(campaign._origin.id or campaign.id, []))
|
||||
|
||||
@api.constrains('ab_testing_total_pc', 'ab_testing_completed')
|
||||
def _check_ab_testing_total_pc(self):
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<page string="Mailings" name="mailings"
|
||||
attrs="{'invisible': ['|', ('mailing_mail_count', '=', 0), ('is_mailing_campaign_activated', '=', False)]}"
|
||||
groups="mass_mailing.group_mass_mailing_user">
|
||||
<field name="mailing_mail_ids" readonly="1" nolabel="1">
|
||||
<field name="mailing_mail_ids" nolabel="1">
|
||||
<tree>
|
||||
<field name="calendar_date" string="Date"/>
|
||||
<field name="subject" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
|
||||
@@ -45,6 +45,16 @@
|
||||
</field>
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath expr="//notebook" position="after">
|
||||
<group name="ab_test_group" groups="mass_mailing.group_mass_mailing_campaign" attrs="{'invisible': [('ab_testing_mailings_count', '=', 0)]}">
|
||||
<group string="A/B Test">
|
||||
<field name="ab_testing_completed" invisible="1"/>
|
||||
<field name="ab_testing_winner_selection" attrs="{'readonly': [('ab_testing_completed', '=', True)]}"/>
|
||||
<field name="ab_testing_schedule_datetime"
|
||||
attrs="{'invisible': [('ab_testing_winner_selection', '=', 'manual')], 'readonly': [('ab_testing_completed', '=', True)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -50,8 +50,8 @@ class UtmCampaign(models.Model):
|
||||
mapped_sms_data = dict()
|
||||
ab_testing_mapped_sms_data = dict()
|
||||
for campaign in self:
|
||||
campaign.mailing_sms_count = sum(mapped_sms_data.get(campaign.id, []))
|
||||
campaign.ab_testing_mailings_sms_count = sum(ab_testing_mapped_sms_data.get(campaign.id, []))
|
||||
campaign.mailing_sms_count = sum(mapped_sms_data.get(campaign._origin.id or campaign.id, []))
|
||||
campaign.ab_testing_mailings_sms_count = sum(ab_testing_mapped_sms_data.get(campaign._origin.id or campaign.id, []))
|
||||
|
||||
def action_create_mass_sms(self):
|
||||
action = self.env["ir.actions.actions"]._for_xml_id("mass_mailing.action_create_mass_mailings_from_campaign")
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
attrs="{'invisible': ['|', ('mailing_sms_count', '=', 0), ('is_mailing_campaign_activated', '=', False)]}"
|
||||
groups="mass_mailing.group_mass_mailing_user">
|
||||
<group>
|
||||
<field name="mailing_sms_ids" readonly="1" nolabel="1">
|
||||
<field name="mailing_sms_ids" nolabel="1">
|
||||
<tree>
|
||||
<field name="calendar_date" string="Date"/>
|
||||
<field name="subject" string="Title"/>
|
||||
@@ -46,6 +46,9 @@
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath expr="//group[@name='ab_test_group']" position="attributes">
|
||||
<attribute name="attrs">{'invisible': [('ab_testing_mailings_sms_count', '=', 0), ('ab_testing_mailings_count', '=', 0)]}</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user