From 1da6cbc4c89e1fc2b62be414a5d2cee7a16e7f73 Mon Sep 17 00:00:00 2001 From: Noe Antoine Date: Tue, 22 Aug 2023 17:33:41 +0200 Subject: [PATCH] [IMP] event: redesign badges with multiple formats MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before, event badges were an a4 page divided in 4 quarters, meant to be foldable into a single badge. It contained folding instructions, event instructions and was white mostly everywhere. We want to introduce some customization to allow different colors between ticket types and a background image. Therefore, we introduce 3 different formats to print badges (also sent to attendees through event communication) - a4 foldable (french fold) (~ previous one but redesigned) - a6 - a4 4 per page The templates are intensively redesigned to a new style. New templates are introduced to match new formats. Example tickets are still managed, printing an appropriate example ticket according to the event format. Printing several event example tickets will still use each event format appropriately Models: - event.event receives a selection field badge_format and an image field badge_image. This will be printed on the background of badge cards. - event.event.ticket receives a color char field. It can be picked from the event form view with a color picker, and will be the backgroud of a band on the bottom of badge cards. Renaming: Scss file, records and templates are renamed from "_foldable_badge" to "_badge", as now badges are not always foldable. Namespaces of selectors follow the same logic. We still have specific styling for the foldable version so there are still selectors using a 'foldable' name. Task-3473293 ENT PR: odoo/enterprise#46163 UPG PR: odoo/upgrade#5126 closes odoo/odoo#132855 Signed-off-by: Stéphane Debauche (std) --- addons/event/__manifest__.py | 2 +- addons/event/controllers/main.py | 2 +- addons/event/data/mail_template_data.xml | 4 +- addons/event/models/event_event.py | 8 + addons/event/models/event_ticket.py | 2 + addons/event/report/event_event_reports.xml | 33 ++-- addons/event/report/event_event_templates.xml | 173 ++++++++++-------- addons/event/static/src/img/how_to_fold_1.png | Bin 9791 -> 0 bytes addons/event/static/src/img/how_to_fold_2.png | Bin 10341 -> 0 bytes addons/event/static/src/img/how_to_fold_3.png | Bin 7273 -> 0 bytes addons/event/static/src/img/how_to_fold_4.png | Bin 38673 -> 0 bytes .../static/src/scss/event_badge_report.scss | 57 ++++++ .../src/scss/event_foldable_badge_report.scss | 62 ------- addons/event/views/event_event_views.xml | 2 + addons/event/views/event_ticket_views.xml | 1 + 15 files changed, 189 insertions(+), 157 deletions(-) delete mode 100644 addons/event/static/src/img/how_to_fold_1.png delete mode 100644 addons/event/static/src/img/how_to_fold_2.png delete mode 100644 addons/event/static/src/img/how_to_fold_3.png delete mode 100644 addons/event/static/src/img/how_to_fold_4.png create mode 100644 addons/event/static/src/scss/event_badge_report.scss delete mode 100644 addons/event/static/src/scss/event_foldable_badge_report.scss diff --git a/addons/event/__manifest__.py b/addons/event/__manifest__.py index 4d9a1002d94..12689659c87 100644 --- a/addons/event/__manifest__.py +++ b/addons/event/__manifest__.py @@ -57,7 +57,7 @@ Key Features 'event/static/src/js/tours/**/*', ], 'web.report_assets_common': [ - '/event/static/src/scss/event_foldable_badge_report.scss', + '/event/static/src/scss/event_badge_report.scss', '/event/static/src/scss/event_full_page_ticket_report.scss', '/event/static/src/scss/event_full_page_ticket_responsive_html_report.scss', ], diff --git a/addons/event/controllers/main.py b/addons/event/controllers/main.py index 93d8d6438d9..72211d0d191 100644 --- a/addons/event/controllers/main.py +++ b/addons/event/controllers/main.py @@ -65,7 +65,7 @@ class EventController(Controller): return request.make_response(html) pdf = request.env['ir.actions.report'].sudo()._render_qweb_pdf( - 'event.action_report_event_registration_foldable_badge' if badge_mode else + 'event.action_report_event_registration_badge' if badge_mode else 'event.action_report_event_registration_full_page_ticket', event_registrations_sudo.ids, )[0] diff --git a/addons/event/data/mail_template_data.xml b/addons/event/data/mail_template_data.xml index 4fd4458ea59..5a8cbb2d781 100644 --- a/addons/event/data/mail_template_data.xml +++ b/addons/event/data/mail_template_data.xml @@ -97,6 +97,7 @@ +
OpenWood Collection Online Reveal
From May 4, 2021, 7:00:00 AM
To May 6, 2021, 5:00:00 PM
(Europe/Brussels)
@@ -228,7 +229,7 @@ - + {{ object.event_id.lang or object.partner_id.lang }} @@ -340,6 +341,7 @@ +
OpenWood Collection Online Reveal
From May 4, 2021, 7:00:00 AM
To May 6, 2021, 5:00:00 PM
(Europe/Brussels)
diff --git a/addons/event/models/event_event.py b/addons/event/models/event_event.py index 7ac8da308b6..c6b565f3bd5 100644 --- a/addons/event/models/event_event.py +++ b/addons/event/models/event_event.py @@ -224,6 +224,14 @@ class EventEvent(models.Model): lang = fields.Selection(_lang_get, string='Language', help="All the communication emails sent to attendees will be translated in this language.") # ticket reports + badge_format = fields.Selection( + string='Badge Dimension', + selection=[ + ('A4_french_fold', 'A4 foldable'), + ('A6', 'A6'), + ('four_per_sheet', '4 per sheet') + ], default='A6', required=True) + badge_image = fields.Image('Badge Background', max_width=1024, max_height=1024) ticket_instructions = fields.Html('Ticket Instructions', translate=True, compute='_compute_ticket_instructions', store=True, readonly=False, help="This information will be printed on your tickets.") diff --git a/addons/event/models/event_ticket.py b/addons/event/models/event_ticket.py index 9a6a6ca40ef..aa80c732079 100644 --- a/addons/event/models/event_ticket.py +++ b/addons/event/models/event_ticket.py @@ -80,6 +80,8 @@ class EventTicket(models.Model): seats_used = fields.Integer(string='Used Seats', compute='_compute_seats', store=False) is_sold_out = fields.Boolean( 'Sold Out', compute='_compute_is_sold_out', help='Whether seats are not available for this ticket.') + # reports + color = fields.Char('Color', default="#875A7B") @api.depends('end_sale_datetime', 'event_id.date_tz') def _compute_is_expired(self): diff --git a/addons/event/report/event_event_reports.xml b/addons/event/report/event_event_reports.xml index 3970b91f394..35a92018485 100644 --- a/addons/event/report/event_event_reports.xml +++ b/addons/event/report/event_event_reports.xml @@ -1,8 +1,8 @@ - - Custom Paperformat for the Event Foldable Badge report + + Custom Paperformat for the Event Badge report A4 @@ -31,9 +31,8 @@ 96 - + -