From 4bed87d39bf4aa67c3b87522ee4e6407c31b9c44 Mon Sep 17 00:00:00 2001 From: ijas ahammed Date: Thu, 21 Oct 2021 05:19:40 +0000 Subject: [PATCH 1/7] [IMP] event: add groupby and change sequence of view Right now, when we opens attendees from an event (stat button or kanban button) it first displays the kanban view. In this commit we have changed the sequence of the view and added groupby create_date (week), after this commit if the attendees opened from stat button or kanban button it will display the list view with the groupby create_date (week) before the kanban view, the purpose is that this is not the path to register or confirm attendance, you just want to keep an eye on how well your event is filling up and need an overview. TaskID-2670765 Part-of: odoo/odoo#79166 --- addons/event/views/event_views.xml | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/addons/event/views/event_views.xml b/addons/event/views/event_views.xml index 712a6d2b174..0897e83e097 100644 --- a/addons/event/views/event_views.xml +++ b/addons/event/views/event_views.xml @@ -123,7 +123,7 @@ event.registration Attendees - kanban,tree,form,calendar,graph + tree,kanban,form,calendar,graph [('event_id', '=', active_id)] {'default_event_id': active_id} @@ -181,7 +181,8 @@
- + Expected attendees @@ -495,7 +499,9 @@ event.registration.tree event.registration - + @@ -704,7 +710,8 @@ - + + @@ -714,8 +721,14 @@ Attendees event.registration - pivot,graph,kanban,tree,form - {} + graph,pivot,kanban,tree,form + { + 'search_default_filter_last_month': 1, + 'search_default_status': 1, + 'search_default_group_by_create_day': 1, + 'search_default_group_event': 1, + } +

From 090067590380bc4d9edaa7309b6b09fca7a0a1e5 Mon Sep 17 00:00:00 2001 From: ijas ahammed Date: Thu, 21 Oct 2021 05:39:15 +0000 Subject: [PATCH 2/7] [IMP] event: remove the date_open field In this commit we have removed the `date_open` field from the model `event.registration` as it is a duplicate of the `create_date`. TaskID-2670765 Part-of: odoo/odoo#79166 --- addons/event/models/event_mail.py | 4 +--- addons/event/models/event_registration.py | 1 - addons/event/tests/common.py | 2 ++ addons/event/tests/test_event_mail_schedule.py | 13 ++++++++----- addons/event/views/event_views.xml | 5 ++--- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/addons/event/models/event_mail.py b/addons/event/models/event_mail.py index 9e0132f0fdd..2272f030c33 100644 --- a/addons/event/models/event_mail.py +++ b/addons/event/models/event_mail.py @@ -288,8 +288,6 @@ class EventMailRegistration(models.Model): def _compute_scheduled_date(self): for mail in self: if mail.registration_id: - date_open = mail.registration_id.date_open - date_open_datetime = date_open or fields.Datetime.now() - mail.scheduled_date = date_open_datetime + _INTERVALS[mail.scheduler_id.interval_unit](mail.scheduler_id.interval_nbr) + mail.scheduled_date = mail.registration_id.create_date + _INTERVALS[mail.scheduler_id.interval_unit](mail.scheduler_id.interval_nbr) else: mail.scheduled_date = False diff --git a/addons/event/models/event_registration.py b/addons/event/models/event_registration.py index 081391d0625..73e7bc689ea 100644 --- a/addons/event/models/event_registration.py +++ b/addons/event/models/event_registration.py @@ -37,7 +37,6 @@ class EventRegistration(models.Model): phone = fields.Char(string='Phone', compute='_compute_phone', readonly=False, store=True, tracking=12) mobile = fields.Char(string='Mobile', compute='_compute_mobile', readonly=False, store=True, tracking=13) # organization - date_open = fields.Datetime(string='Registration Date', readonly=True, default=lambda self: fields.Datetime.now()) # weird crash is directly now date_closed = fields.Datetime( string='Attended Date', compute='_compute_date_closed', readonly=False, store=True) diff --git a/addons/event/tests/common.py b/addons/event/tests/common.py index 47bd7584096..c3c32a9880a 100644 --- a/addons/event/tests/common.py +++ b/addons/event/tests/common.py @@ -102,7 +102,9 @@ class TestEventCommon(common.TransactionCase): @classmethod def _create_registrations(cls, event, reg_count): # create some registrations + create_date = fields.Datetime.now() registrations = cls.env['event.registration'].create([{ + 'create_date': create_date, 'event_id': event.id, 'name': 'Test Registration %s' % x, 'email': '_test_reg_%s@example.com' % x, diff --git a/addons/event/tests/test_event_mail_schedule.py b/addons/event/tests/test_event_mail_schedule.py index 87ce2b33afd..85f639648d2 100644 --- a/addons/event/tests/test_event_mail_schedule.py +++ b/addons/event/tests/test_event_mail_schedule.py @@ -89,12 +89,14 @@ class TestMailSchedule(TestEventCommon, MockEmail): # create some registrations with freeze_time(now), self.mock_mail_gateway(): - reg1 = self.env['event.registration'].with_user(self.user_eventuser).create({ + reg1 = self.env['event.registration'].create({ + 'create_date': now, 'event_id': test_event.id, 'name': 'Reg1', 'email': 'reg1@example.com', }) - reg2 = self.env['event.registration'].with_user(self.user_eventuser).create({ + reg2 = self.env['event.registration'].create({ + 'create_date': now, 'event_id': test_event.id, 'name': 'Reg2', 'email': 'reg2@example.com', @@ -105,7 +107,7 @@ class TestMailSchedule(TestEventCommon, MockEmail): # check registration state self.assertTrue(all(reg.state == 'open' for reg in reg1 + reg2), 'Registrations: should be auto-confirmed') - self.assertTrue(all(reg.date_open == now for reg in reg1 + reg2), 'Registrations: should have open date set to confirm date') + self.assertTrue(all(reg.create_date == now for reg in reg1 + reg2), 'Registrations: should have open date set to confirm date') # verify that subscription scheduler was auto-executed after each registration self.assertEqual(len(after_sub_scheduler.mail_registration_ids), 2, 'event: should have 2 scheduled communication (1 / registration)') @@ -204,7 +206,8 @@ class TestMailSchedule(TestEventCommon, MockEmail): test_event.write({'auto_confirm': False}) with freeze_time(now_start), self.mock_mail_gateway(): - reg3 = self.env['event.registration'].with_user(self.user_eventuser).create({ + reg3 = self.env['event.registration'].create({ + 'create_date': now_start, 'event_id': test_event.id, 'name': 'Reg3', 'email': 'reg3@example.com', @@ -220,7 +223,7 @@ class TestMailSchedule(TestEventCommon, MockEmail): self.assertTrue(after_sub_scheduler_2.mail_done, 'event: scheduler on registration not updated next to draft registration') # confirm registration -> should trigger registration schedulers - # NOTE: currently all schedulers are based on date_open which equals create_date + # NOTE: currently all schedulers are based on create_date # meaning several communications may be sent in the time time with freeze_time(now_start + relativedelta(hours=1)), self.mock_mail_gateway(): reg3.action_confirm() diff --git a/addons/event/views/event_views.xml b/addons/event/views/event_views.xml index 0897e83e097..cd0d9c120d3 100644 --- a/addons/event/views/event_views.xml +++ b/addons/event/views/event_views.xml @@ -503,7 +503,6 @@ expand="1" default_order="create_date desc" class="o_event_registration_view_tree"> - @@ -554,7 +553,7 @@ ]" attrs="{'invisible': [('event_id', '=', False)]}" options="{'no_open': True, 'no_create': True}"/> - + @@ -692,7 +691,7 @@ - + From bf0bb8497e50e51b9caaee97a32624a08fc1b68b Mon Sep 17 00:00:00 2001 From: ijas ahammed Date: Thu, 21 Oct 2021 09:05:00 +0000 Subject: [PATCH 3/7] [IMP] event,website_event_questions: improve attendees list view In this commit we have improved the attendees list view, changes done are listed below, - We have changed the cancel button color to red in attendees list view. - We have added badge widget for the state field in attendees list view, the following states uses these colors, - draft - blue - cancel - grey - open - blue - done - green - We have added a `activity_ids` before the field `state` field in attendees list view. - We have added the field `registration_answer_ids` with `many2many_tags` and default hide in attendees list view just before the status field. TaskID-2670765 Part-of: odoo/odoo#79166 --- addons/event/static/src/scss/event.scss | 9 +++++++++ addons/event/views/event_views.xml | 9 +++++++-- .../models/event_registration.py | 9 +++++++++ .../views/event_registration_views.xml | 11 +++++++++++ 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/addons/event/static/src/scss/event.scss b/addons/event/static/src/scss/event.scss index ec8ff7be2d0..703f90377e8 100644 --- a/addons/event/static/src/scss/event.scss +++ b/addons/event/static/src/scss/event.scss @@ -24,3 +24,12 @@ } } } + +.o_event_registration_view_tree { + .o_list_button > .o_btn_cancel_registration { + color: $danger; + &:hover { + color: darken($danger, $emphasized-link-hover-darken-percentage); + } + } +} diff --git a/addons/event/views/event_views.xml b/addons/event/views/event_views.xml index cd0d9c120d3..43ac6d86222 100644 --- a/addons/event/views/event_views.xml +++ b/addons/event/views/event_views.xml @@ -510,12 +510,17 @@ - + +