Code Analysis

Views touched (25)
XML IDNameModelTypeStatus
blacklist_main Unsubscribed ir.ui.view qweb New
blacklist_number Unsubscribed ir.ui.view qweb New
mailing_contact_view_form mailing.contact.view.form.inherit.sms mailing.contact form Inherits mass_mailing.mailing_contact_view_form
mailing_contact_view_kanban mailing.contact.view.kanban.inherit.sms mailing.contact kanban Inherits mass_mailing.mailing_contact_view_kanban
mailing_contact_view_search mailing.contact.view.search.inherit.sms mailing.contact search Inherits mass_mailing.mailing_contact_view_search
mailing_contact_view_tree mailing.contact.view.list.inherit.sms mailing.contact list Inherits mass_mailing.mailing_contact_view_tree
mailing_list_view_form mailing.list.view.form.inherit.sms mailing.list form Inherits mass_mailing.mailing_list_view_form
mailing_list_view_kanban mailing.list.view.kanban.inherit.mass.mailing.sms mailing.list kanban Inherits mass_mailing.mailing_list_view_kanban
mailing_mailing_view_form_mixed mailing.mailing.view.form.mixed mailing.mailing form Inherits mass_mailing_sms.mailing_mailing_view_form_sms
mailing_mailing_view_form_sms mailing.mailing.view.form.inherit.sms mailing.mailing form Inherits mass_mailing.view_mail_mass_mailing_form
mailing_mailing_view_kanban_sms mailing.mailing.view.kanban.inherit.sms mailing.mailing kanban Inherits mass_mailing.view_mail_mass_mailing_kanban
mailing_mailing_view_search_sms mailing.mailing.search mailing.mailing search Inherits mass_mailing.view_mail_mass_mailing_search
mailing_mailing_view_tree_sms mailing.mailing.view.list.sms mailing.mailing list New
mailing_sms_test_view_form mailing.sms.test.view.form mailing.sms.test form New
mailing_trace_report_sms_view_graph mailing.sms.trace.report.view.graph mailing.trace.report graph Inherits mass_mailing.mailing_trace_report_view_graph
mailing_trace_report_sms_view_pivot mailing.sms.trace.report.view.pivot mailing.trace.report pivot Inherits mass_mailing.mailing_trace_report_view_pivot
mailing_trace_report_sms_view_tree mailing.sms.trace.report.view.list mailing.trace.report list Inherits mass_mailing.mailing_trace_report_view_tree
mailing_trace_view_form mailing.trace.view.form.inherit.sms mailing.trace form Inherits mass_mailing.mailing_trace_view_form
mailing_trace_view_form_sms mailing.trace.view.form.sms mailing.trace form New
mailing_trace_view_search mailing.trace.view.search.inherit.sms mailing.trace search Inherits mass_mailing.mailing_trace_view_search
mailing_trace_view_tree mailing.trace.view.list.inherit.sms mailing.trace list Inherits mass_mailing.mailing_trace_view_tree
mailing_trace_view_tree_sms mailing.trace.view.list.sms mailing.trace list New
sms_composer_view_form sms.composer.views.inherit.sms sms.composer form Inherits sms.sms_composer_view_form
utm_campaign_view_form utm.campaign.view.form utm.campaign form Inherits utm.utm_campaign_view_form
utm_campaign_view_kanban utm.campaign.view.kanban utm.campaign kanban Inherits utm.utm_campaign_view_kanban
HTTP endpoints (3)
Route(s)HandlerAuthTypeMethodsFlags
/sms/<int:mailing_id>/unsubscribe/<string:trace_code> MailingSMSController.blacklist_number public http ALL sudo website
/sms/<int:mailing_id>/<string:trace_code> MailingSMSController.blacklist_page public http ALL sudo website
/r/<string:code>/s/<int:sms_id_int> MailingSMSController.sms_short_link_redirect public http ALL sudo
Models touched (11)

New fields (1)
  • mobile Char
    string='Mobile'
Public methods (0)

No public methods.

New fields (1)
  • contact_count_sms Integer
    compute='_compute_mailing_list_statistics' string='SMS Contacts'
Public methods (3)
  • action_send_mailing_sms(self)
  • action_view_contacts_sms(self)
  • action_view_mailings(self)

New fields (10)
  • ab_testing_mailings_sms_count Integer
    related='campaign_id.ab_testing_mailings_sms_count'
  • ab_testing_sms_winner_selection Selection
    copy=True default='clicks_ratio' readonly=False related='campaign_id.ab_testing_sms_winner_selection'
  • body_plaintext Text
    compute='_compute_body_plaintext' readonly=False store=True args: 'SMS Body'
  • mailing_type Selection
    ondelete={'sms': 'set default'} selection_add=[('sms', 'SMS')]
  • sms_allow_unsubscribe Boolean
    default=False args: 'Include opt-out link'
  • sms_force_send Boolean
    help='Immediately send the SMS Mailing instead of queuing up. Use at your own risk.' args: 'Send Directly'
  • sms_has_insufficient_credit Boolean
    compute='_compute_sms_has_iap_failure' args: 'Insufficient IAP credits'
  • sms_has_unregistered_account Boolean
    compute='_compute_sms_has_iap_failure' args: 'Unregistered IAP account'
  • sms_subject Char
    help='For an email, the subject your recipients will see in their inbox.\nFor an SMS, the internal title of the message.' readonly=False related='subject' translate=False args: 'Title'
  • sms_template_id Many2one → sms.template
    ondelete='set null' string='SMS Template' args: 'sms.template'
Public methods (9)
  • action_buy_sms_credits(self)
  • action_retry_failed(self)
  • action_retry_failed_sms(self)
  • action_send_sms(self, res_ids=None)
  • action_test(self)
  • convert_links(self)
  • create(self, vals_list)
    @api.model_create_multi
  • default_get(self, fields)
    @api.model
  • get_sms_link_replacements_placeholders(self)
    Get placeholders for replaced links in sms widget for accurate computation of sms counts. Reminders and assumptions: * Links wille be transformed to the format ``"[base_url]/r/[link_tracker_code]/s/[sms_id]"``. * unsubscribe is formatted as: ``"STOP SMS : [base_url]/sms/[mailing_id]/[trace_code]"``. :returns: Character counts used for links, formatted as ``{link: str, unsubscribe: str}``.

New fields (2)
  • mailing_id Many2one → mailing.mailing
    ondelete='cascade' required=True string='Mailing' args: 'mailing.mailing'
  • numbers Text
    default=_default_numbers help='Carriage-return-separated list of phone numbers' required=True string='Number(s)'
Public methods (1)
  • action_send_sms(self)

New fields (7)
  • failure_type Selection
    selection_add=[('sms_number_missing', 'Missing Number'), ('sms_number_format', 'Wrong Number Format'), ('sms_credit', 'Insufficient Credit'), ('sms_country_not_supported', 'Country Not Supported'), ('sms_registration_needed', 'Country-specific Registration Required'), ('sms_server', 'Server Error'), ('sms_acc', 'Unregistered Account'), ('sms_blacklist', 'Blacklisted'), ('sms_duplicate', 'Duplicate'), ('sms_optout', 'Opted Out'), ('sms_expired', 'Expired'), ('sms_invalid_destination', 'Invalid Destination'), ('sms_not_allowed', 'Not Allowed'), ('sms_not_delivered', 'Not Delivered'), ('sms_rejected', 'Rejected'), ('twilio_authentication', 'Authentication Error"'), ('twilio_callback', 'Incorrect callback URL'), ('twilio_from_missing', 'Missing From Number'), ('twilio_from_to', 'From / To identic')]
  • sms_code Char
    args: 'Code'
  • sms_id Many2one → sms.sms
    compute='_compute_sms_id' store=False string='SMS' args: 'sms.sms'
  • sms_id_int Integer
    index='btree_not_null' string='SMS ID'
  • sms_number Char
    args: 'Number'
  • sms_tracker_ids One2many → sms.tracker
    string='SMS Trackers' args: 'sms.tracker', 'mailing_trace_id'
  • trace_type Selection
    ondelete={'sms': 'set default'} selection_add=[('sms', 'SMS')]
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • fields_get(self, allfields=None, attributes=None)
    @api.model

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • mailing_id Many2one → mailing.mailing
    string='Mailing' args: 'mailing.mailing'
  • mass_sms_allow_unsubscribe Boolean
    default=True args: 'Include opt-out link'
  • utm_campaign_id Many2one → utm.campaign
    ondelete='set null' string='Campaign' args: 'utm.campaign'
Public methods (0)

No public methods.

New fields (2)
  • mailing_id Many2one → mailing.mailing
    string='Mass Mailing' args: 'mailing.mailing'
  • mailing_trace_ids One2many → mailing.trace
    string='Statistics' args: 'mailing.trace', 'sms_id_int'
Public methods (0)

No public methods.

New fields (1)
  • mailing_trace_id Many2one → mailing.trace
    index='btree_not_null' ondelete='cascade' args: 'mailing.trace'
Public methods (0)

No public methods.

New fields (4)
  • ab_testing_mailings_sms_count Integer
    compute='_compute_mailing_sms_count' args: 'A/B Test Mailings SMS #'
  • ab_testing_sms_winner_selection Selection
    default='clicks_ratio' string='SMS Winner Selection' args: [('manual', 'Manual'), ('clicks_ratio', 'Highest Click Rate')]
  • mailing_sms_count Integer
    compute='_compute_mailing_sms_count' groups='mass_mailing.group_mass_mailing_user' args: 'Number of Mass SMS'
  • mailing_sms_ids One2many → mailing.mailing
    domain=[('mailing_type', '=', 'sms')] groups='mass_mailing.group_mass_mailing_user' string='Mass SMS' args: 'mailing.mailing', 'campaign_id'
Public methods (2)
  • action_create_mass_sms(self)
  • action_redirect_to_mailing_sms(self)

New fields (0)

No new fields.

Public methods (1)
  • SELF_REQUIRED_UTM_MEDIUMS_REF(self)
    @property

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…