From a98717b0e5d9b7bbd9f9c87b724db6fa5b89b083 Mon Sep 17 00:00:00 2001 From: "dane@odoo.com" Date: Wed, 4 Oct 2023 11:29:32 +0200 Subject: [PATCH] [IMP] event: refactor barcode Commit is responsible for refactoring code related to barcode. Part-of: odoo/odoo#135153 --- addons/event/models/event_event.py | 6 ++++++ addons/event/models/event_registration.py | 5 +++-- addons/event/models/res_config_settings.py | 2 +- addons/event/report/event_event_templates.xml | 8 ++++---- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/addons/event/models/event_event.py b/addons/event/models/event_event.py index c6b565f3bd5..40f29276f66 100644 --- a/addons/event/models/event_event.py +++ b/addons/event/models/event_event.py @@ -124,6 +124,7 @@ class EventEvent(models.Model): user_id = fields.Many2one( 'res.users', string='Responsible', tracking=True, default=lambda self: self.env.user) + use_barcode = fields.Boolean(compute='_compute_use_barcode') company_id = fields.Many2one( 'res.company', string='Company', change_default=True, default=lambda self: self.env.company, @@ -236,6 +237,11 @@ class EventEvent(models.Model): compute='_compute_ticket_instructions', store=True, readonly=False, help="This information will be printed on your tickets.") + def _compute_use_barcode(self): + use_barcode = self.env['ir.config_parameter'].sudo().get_param('event.use_event_barcode') == 'True' + for record in self: + record.use_barcode = use_barcode + @api.depends('stage_id', 'kanban_state') def _compute_kanban_state_label(self): for event in self: diff --git a/addons/event/models/event_registration.py b/addons/event/models/event_registration.py index 1e6ce011c69..fc3f002497d 100644 --- a/addons/event/models/event_registration.py +++ b/addons/event/models/event_registration.py @@ -18,7 +18,7 @@ class EventRegistration(models.Model): _order = 'id desc' @api.model - def _get_random_token(self): + def _get_random_barcode(self): """Generate a string representation of a pseudo-random 8-byte number for barcode generation. @@ -29,7 +29,6 @@ class EventRegistration(models.Model): compatible with all scanners. """ return str(int.from_bytes(os.urandom(8), 'little')) - barcode = fields.Char(default=_get_random_token, readonly=True, copy=False, index=True) # event event_id = fields.Many2one( @@ -37,6 +36,8 @@ class EventRegistration(models.Model): event_ticket_id = fields.Many2one( 'event.event.ticket', string='Event Ticket', ondelete='restrict') active = fields.Boolean(default=True) + barcode = fields.Char(string='Barcode', default=lambda self: self._get_random_barcode(), readonly=True, copy=False) + # utm informations utm_campaign_id = fields.Many2one('utm.campaign', 'Campaign', index=True, ondelete='set null') utm_source_id = fields.Many2one('utm.source', 'Source', index=True, ondelete='set null') diff --git a/addons/event/models/res_config_settings.py b/addons/event/models/res_config_settings.py index fc045a28e2b..7d7e92b2a34 100644 --- a/addons/event/models/res_config_settings.py +++ b/addons/event/models/res_config_settings.py @@ -25,10 +25,10 @@ class ResConfigSettings(models.TransientModel): module_website_event_track_quiz = fields.Boolean("Quiz on Tracks") module_website_event_exhibitor = fields.Boolean("Advanced Sponsors") use_event_barcode = fields.Boolean(string="Use Event Barcode", help="Enable or Disable Event Barcode functionality.", config_parameter='event.use_event_barcode') + barcode_nomenclature_id = fields.Many2one('barcode.nomenclature', related='company_id.nomenclature_id', readonly=False) module_website_event_sale = fields.Boolean("Online Ticketing") module_event_booth = fields.Boolean("Booth Management") use_google_maps_static_api = fields.Boolean("Google Maps static API", default=_default_use_google_maps_static_api) - barcode_nomenclature_id = fields.Many2one('barcode.nomenclature', related='company_id.nomenclature_id', readonly=False) @api.depends('use_google_maps_static_api') def _compute_maps_static_api_key(self): diff --git a/addons/event/report/event_event_templates.xml b/addons/event/report/event_event_templates.xml index f0a8281d284..9ffbd2b064e 100644 --- a/addons/event/report/event_event_templates.xml +++ b/addons/event/report/event_event_templates.xml @@ -15,7 +15,7 @@
- + @@ -37,7 +37,7 @@
- + @@ -164,7 +164,7 @@ QR Code
- + Barcode @@ -264,7 +264,7 @@ QR Code - +