TIP: You can type at any time to perform a new search.

Security findings

Repository
odoo/odoo · module folder
Module version
1.1
Category
Marketing/Marketing Card
Folder size
2.66 MB
License
LGPL-3
Application
Yes
Auto-installable
No
Website
None
Last tracking update
2026-10-05 00:19:52
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Xavier Morel, Raphael Collet, Thibault Delavallée, odoo, Odoo Translation Bot, Aaron Bohy, Julien Castiaux, Xavier-Do, Romeo Fragomeli, Victor Feyens, Adrien Dieudonné, std-odoo, Rémy Voet (ryv), Tiffany Chang (tic), Pierre Paridans, abd-msyukyu-odoo, luvi, Renaud Thiry, Louis (loco), Dylan Kiss (dyki), Chong Wang (cwg), guce, Pierre Pulinckx, pish-odoo, Krzysztof Magusiak (krma), Julien Launois (jula), Louis, Parth Vyas, Haroune Hassine (Hahas), Julien Piron, Lou !, GaetanVandenBergh
Odoo dependencies
Python dependencies
geoip2
System dependencies
None
Required by
marketing_card_event
Description

Code Analysis info_outline

Views touched (18)
XML IDNameModelTypeStatus
card_campaign_crawler Share campaign Crawler View ir.ui.view qweb New
card_campaign_linkedin_share_composer card_campaign_linkedin_share_composer ir.ui.view qweb New
card_campaign_preview Share campaign ir.ui.view qweb New
card_campaign_view_form card.campaign.view.form card.campaign form New
card_campaign_view_kanban card.campaign.view.kanban card.campaign kanban New
card_campaign_view_search card.campaign.view.search card.campaign search New
card_campaign_view_tree card.campaign.view.list card.campaign list New
card_card_view_list card.card.view.list card.card list New
card_card_view_search card.card.view.search card.card search New
card_template_view_form card.template.view.form card.template form New
common_template common_template ir.ui.view qweb New
mailing_mailing_view_form_inherit_marketing_card mailing.mailing.view.form.inherit.marketing.card mailing.mailing form Inherits mass_mailing.view_mail_mass_mailing_form
robots robots ir.ui.view qweb Inherits website.robots
template_1 template_1 ir.ui.view qweb Inherits common_template
template_2 template_2 ir.ui.view qweb Inherits common_template
template_3 template_3 ir.ui.view qweb Inherits common_template
template_4 template_4 ir.ui.view qweb Inherits common_template
template_5 template_5 ir.ui.view qweb Inherits common_template
HTTP endpoints (6)
Route(s)HandlerAuthTypeMethodsFlags
/cards/<model("card.card"):card>/card.jpg MarketingCardController.card_campaign_image public http ALL sudo website
/cards/<model("card.card"):card>/preview MarketingCardController.card_campaign_preview public http ALL sudo website
/cards/<model("card.card"):card>/redirect MarketingCardController.card_campaign_redirect public http ALL sudo website
/cards/<model("card.card"):card>/share/linkedin/post MarketingCardLinkedinController.linkedin_post_card public http POST website
(inherited route override) MarketingCardLinkedinController.linkedin_share_callback public http ALL sudo website
/cards/<model("card.card"):card>/share/linkedin MarketingCardLinkedinController.linkedin_share_start public http ALL sudo website
Models touched (8)

New fields (45)
  • active Boolean
    default=True
  • body_html Html
    readonly=False related='card_template_id.body' render_engine='qweb'
  • card_click_count Integer
    compute='_compute_card_stats'
  • card_count Integer
    compute='_compute_card_stats'
  • card_ids One2many → card.card
    inverse_name='campaign_id' args: 'card.card'
  • card_share_count Integer
    compute='_compute_card_stats'
  • card_template_id Many2one → card.template
    default=_default_card_template_id required=True string='Design' args: 'card.template'
  • content_background Image
    args: 'Background'
  • content_button Char
    args: 'Button'
  • content_header Char
    default=<expr> translate=True args: 'Header'
  • content_header_color Char
    args: 'Header Color'
  • content_header_dyn Boolean
    args: 'Is Dynamic Header'
  • content_header_path Char
    args: 'Header Path'
  • content_image1_path Char
    args: 'Dynamic Image 1'
  • content_image2_path Char
    args: 'Dynamic Image 2'
  • content_section Char
    default=<expr> translate=True args: 'Section'
  • content_section_dyn Boolean
    args: 'Is Dynamic Section'
  • content_section_path Char
    args: 'Section Path'
  • content_sub_header Char
    translate=True args: 'Sub-Header'
  • content_sub_header_color Char
    args: 'Sub Header Color'
  • content_sub_header_dyn Boolean
    args: 'Is Dynamic Sub-Header'
  • content_sub_header_path Char
    args: 'Sub-Header Path'
  • content_sub_section1 Char
    translate=True args: 'Sub-Section 1'
  • content_sub_section1_dyn Boolean
    args: 'Is Dynamic Sub-Section 1'
  • content_sub_section1_path Char
    args: 'Sub-Section 1 Path'
  • content_sub_section2 Char
    translate=True args: 'Sub-Section 2'
  • content_sub_section2_dyn Boolean
    args: 'Is Dynamic Sub-Section 2'
  • content_sub_section2_path Char
    args: 'Sub-Section 2 Path'
  • image_preview Image
    attachment=False compute='_compute_image_preview' compute_sudo=False readonly=True store=True
  • link_tracker_id Many2one → link.tracker
    ondelete='restrict' args: 'link.tracker'
  • mailing_count Integer
    compute='_compute_mailing_count'
  • mailing_ids One2many → mailing.mailing
    args: 'mailing.mailing', 'card_campaign_id'
  • name Char
    required=True
  • post_suggestion Text
    help='Description below the card and default text when sharing on X and LinkedIn'
  • preview_record_ref Reference
    required=True selection='_get_model_selection' string='Preview On'
  • request_description Text
    translate=True args: 'Request Description'
  • request_title Char
    default=<expr> translate=True args: 'Request'
  • res_model Selection
    compute='_compute_res_model' precompute=True readonly=True required=True selection='_get_model_selection' store=True string='Model Name'
  • reward_message Html
    string='Thank You Message' translate=True
  • reward_target_url Char
    string='Reward Link'
  • tag_ids Many2many → card.campaign.tag
    string='Tags' args: 'card.campaign.tag'
  • target_url Char
    help='Redirection link for clicks on the cards, defaults to the relevant record or the home page.' string='Post Link'
  • target_url_click_count Integer
    related='link_tracker_id.count'
  • target_url_placeholder Char
    compute='_compute_target_url_placeholder'
  • user_id Many2one → res.users
    default=<expr> domain="[('share', '=', False)]" string='Responsible' args: 'res.users'
Public methods (8)
  • action_preview(self)
  • action_share(self)
  • action_view_cards(self)
  • action_view_cards_clicked(self)
  • action_view_cards_shared(self)
  • action_view_mailings(self)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (2)
  • color Integer
    default=_get_default_color
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (8)
  • active Boolean
    default=True args: 'Active'
  • campaign_id Many2one → card.campaign
    index=True ondelete='cascade' required=True args: 'card.campaign'
  • image Image
  • lang Selection
    required=True selection=_lang_get string='Language'
  • requires_sync Boolean
    default=True help='Whether the image needs to be updated to match the campaign template.'
  • res_id Many2oneReference
    model_field='res_model' required=True args: 'Record ID'
  • res_model Selection
    related='campaign_id.res_model'
  • share_status Selection
    args: [('shared', 'Shared'), ('visited', 'Visited')]
Public methods (0)

No public methods.

New fields (7)
  • body Html
    sanitize_attributes=False sanitize_tags=False
  • default_background Image
  • name Char
    required=True translate=True
  • primary_color Char
    default='#f9f9f9' required=True
  • primary_text_color Char
    default='#000000' required=True
  • secondary_color Char
    default='#000000' required=True
  • secondary_text_color Char
    default='#ffffff' required=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • card_campaign_id Many2one → card.campaign
    index='btree_not_null' args: 'card.campaign'
  • card_lang Selection
    compute='_compute_card_lang' help='Language in which the cards will be rendered' readonly=False selection=_lang_get store=True string='Card Language'
  • card_requires_sync_count Integer
    compute='_compute_card_requires_sync_count'
Public methods (3)
  • action_put_in_queue(self)
    Detect mismatches before scheduling.
  • action_send_mail(self, res_ids=None)
  • action_update_cards(self)
    Update the cards in batches, commiting after each batch.

New fields (0)

No new fields.

Public methods (0)

No public methods.

Loading…

Loading…