From 7fb9c8129606538b004dea4e6ad071eabf6c6fb1 Mon Sep 17 00:00:00 2001 From: YOGRAJ TANDEL Date: Fri, 30 Oct 2020 09:39:25 +0000 Subject: [PATCH] [IMP] calendar,lunch: change field names with this commit we changes field names for week days like su, mo, tu etc. to sun, mon, tue and so on in calendar module, this is going to be used in task 2317795 where we developed recurrency module for recurrency mixin. Also with this commit we change field names of weekdays in lunch module to have same name as we have in calendar and project module so that we can easily use custom widget "web_weekly_recurrence" instead of defining boolean field in xml for each day. task-2335399 Co-authored-by: Mohammed Shekha --- addons/calendar/models/calendar_event.py | 18 +++--- addons/calendar/models/calendar_recurrence.py | 64 ++++++++++--------- .../test_calendar_recurrent_event_case2.py | 10 +-- .../calendar/tests/test_event_recurrence.py | 64 +++++++++---------- addons/calendar/views/calendar_views.xml | 14 ++-- addons/lunch/models/lunch_alert.py | 24 ++++--- addons/lunch/models/lunch_supplier.py | 24 ++++--- addons/lunch/populate/lunch.py | 28 ++++---- addons/lunch/tests/test_supplier.py | 10 +-- addons/lunch/views/lunch_alert_views.xml | 14 ++-- addons/lunch/views/lunch_supplier_views.xml | 14 ++-- addons/microsoft_calendar/models/calendar.py | 14 ++-- .../utils/microsoft_event.py | 2 +- 13 files changed, 149 insertions(+), 151 deletions(-) diff --git a/addons/calendar/models/calendar_event.py b/addons/calendar/models/calendar_event.py index 4570465ffce..0f2468b47b3 100644 --- a/addons/calendar/models/calendar_event.py +++ b/addons/calendar/models/calendar_event.py @@ -196,13 +196,13 @@ class Meeting(models.Model): help="Repeat every (Days/Week/Month/Year)") count = fields.Integer( string='Repeat', help="Repeat x times", compute='_compute_recurrence', readonly=False) - mo = fields.Boolean('Mon', compute='_compute_recurrence', readonly=False) - tu = fields.Boolean('Tue', compute='_compute_recurrence', readonly=False) - we = fields.Boolean('Wed', compute='_compute_recurrence', readonly=False) - th = fields.Boolean('Thu', compute='_compute_recurrence', readonly=False) - fr = fields.Boolean('Fri', compute='_compute_recurrence', readonly=False) - sa = fields.Boolean('Sat', compute='_compute_recurrence', readonly=False) - su = fields.Boolean('Sun', compute='_compute_recurrence', readonly=False) + mon = fields.Boolean(compute='_compute_recurrence', readonly=False) + tue = fields.Boolean(compute='_compute_recurrence', readonly=False) + wed = fields.Boolean(compute='_compute_recurrence', readonly=False) + thu = fields.Boolean(compute='_compute_recurrence', readonly=False) + fri = fields.Boolean(compute='_compute_recurrence', readonly=False) + sat = fields.Boolean(compute='_compute_recurrence', readonly=False) + sun = fields.Boolean(compute='_compute_recurrence', readonly=False) month_by = fields.Selection( MONTH_BY_SELECTION, string='Option', compute='_compute_recurrence', readonly=False) day = fields.Integer('Date of month', compute='_compute_recurrence', readonly=False) @@ -908,8 +908,8 @@ class Meeting(models.Model): @api.model def _get_recurrent_fields(self): return {'byday', 'until', 'rrule_type', 'month_by', 'event_tz', 'rrule', - 'interval', 'count', 'end_type', 'mo', 'tu', 'we', 'th', 'fr', 'sa', - 'su', 'day', 'weekday'} + 'interval', 'count', 'end_type', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat', + 'sun', 'day', 'weekday'} @api.model def _get_time_fields(self): diff --git a/addons/calendar/models/calendar_recurrence.py b/addons/calendar/models/calendar_recurrence.py index c7bddeb7634..160b87dbed3 100644 --- a/addons/calendar/models/calendar_recurrence.py +++ b/addons/calendar/models/calendar_recurrence.py @@ -30,15 +30,17 @@ RRULE_FREQ_TO_SELECT = { } RRULE_WEEKDAY_TO_FIELD = { - rrule.MO.weekday: 'mo', - rrule.TU.weekday: 'tu', - rrule.WE.weekday: 'we', - rrule.TH.weekday: 'th', - rrule.FR.weekday: 'fr', - rrule.SA.weekday: 'sa', - rrule.SU.weekday: 'su', + rrule.MO.weekday: 'mon', + rrule.TU.weekday: 'tue', + rrule.WE.weekday: 'wed', + rrule.TH.weekday: 'thu', + rrule.FR.weekday: 'fri', + rrule.SA.weekday: 'sat', + rrule.SU.weekday: 'sun', } +RRULE_WEEKDAYS = {'SUN': 'SU', 'MON': 'MO', 'TUE': 'TU', 'WED': 'WE', 'THU': 'TH', 'FRI': 'FR', 'SAT': 'SA'} + RRULE_TYPE_SELECTION = [ ('daily', 'Days'), ('weekly', 'Weeks'), @@ -58,13 +60,13 @@ MONTH_BY_SELECTION = [ ] WEEKDAY_SELECTION = [ - ('MO', 'Monday'), - ('TU', 'Tuesday'), - ('WE', 'Wednesday'), - ('TH', 'Thursday'), - ('FR', 'Friday'), - ('SA', 'Saturday'), - ('SU', 'Sunday'), + ('MON', 'Monday'), + ('TUE', 'Tuesday'), + ('WED', 'Wednesday'), + ('THU', 'Thursday'), + ('FRI', 'Friday'), + ('SAT', 'Saturday'), + ('SUN', 'Sunday'), ] BYDAY_SELECTION = [ @@ -104,13 +106,13 @@ class RecurrenceRule(models.Model): end_type = fields.Selection(END_TYPE_SELECTION, default='count') interval = fields.Integer(default=1) count = fields.Integer(default=1) - mo = fields.Boolean() - tu = fields.Boolean() - we = fields.Boolean() - th = fields.Boolean() - fr = fields.Boolean() - sa = fields.Boolean() - su = fields.Boolean() + mon = fields.Boolean() + tue = fields.Boolean() + wed = fields.Boolean() + thu = fields.Boolean() + fri = fields.Boolean() + sat = fields.Boolean() + sun = fields.Boolean() month_by = fields.Selection(MONTH_BY_SELECTION, default='date') day = fields.Integer(default=1) weekday = fields.Selection(WEEKDAY_SELECTION, string='Weekday') @@ -160,7 +162,7 @@ class RecurrenceRule(models.Model): @api.depends( 'byday', 'until', 'rrule_type', 'month_by', 'interval', 'count', 'end_type', - 'mo', 'tu', 'we', 'th', 'fr', 'sa', 'su', 'day', 'weekday') + 'mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun', 'day', 'weekday') def _compute_rrule(self): for recurrence in self: recurrence.rrule = recurrence._rrule_serialize() @@ -302,7 +304,7 @@ class RecurrenceRule(models.Model): def _rrule_parse(self, rule_str, date_start): # LUL TODO clean this mess data = {} - day_list = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'] + day_list = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'] if 'Z' in rule_str and not date_start.tzinfo: date_start = pytz.utc.localize(date_start) @@ -432,13 +434,13 @@ class RecurrenceRule(models.Model): return tuple( rrule.weekday(weekday_index) for weekday_index, weekday in { - rrule.MO.weekday: self.mo, - rrule.TU.weekday: self.tu, - rrule.WE.weekday: self.we, - rrule.TH.weekday: self.th, - rrule.FR.weekday: self.fr, - rrule.SA.weekday: self.sa, - rrule.SU.weekday: self.su, + rrule.MO.weekday: self.mon, + rrule.TU.weekday: self.tue, + rrule.WE.weekday: self.wed, + rrule.TH.weekday: self.thu, + rrule.FR.weekday: self.fri, + rrule.SA.weekday: self.sat, + rrule.SU.weekday: self.sun, }.items() if weekday ) @@ -458,7 +460,7 @@ class RecurrenceRule(models.Model): if freq == 'monthly' and self.month_by == 'date': # e.g. every 15th of the month rrule_params['bymonthday'] = self.day elif freq == 'monthly' and self.month_by == 'day': # e.g. every 2nd Monday in the month - rrule_params['byweekday'] = getattr(rrule, self.weekday)(int(self.byday)) # e.g. MO(+2) for the second Monday of the month + rrule_params['byweekday'] = getattr(rrule, RRULE_WEEKDAYS[self.weekday])(int(self.byday)) # e.g. MO(+2) for the second Monday of the month elif freq == 'weekly': weekdays = self._get_week_days() if not weekdays: diff --git a/addons/calendar/tests/test_calendar_recurrent_event_case2.py b/addons/calendar/tests/test_calendar_recurrent_event_case2.py index 036bbc0a0c4..af5ffec13a9 100644 --- a/addons/calendar/tests/test_calendar_recurrent_event_case2.py +++ b/addons/calendar/tests/test_calendar_recurrent_event_case2.py @@ -38,11 +38,11 @@ class TestRecurrentEvent(common.TransactionCase): 'duration': 1.0, 'until': '2011-04-30', 'end_type': 'end_date', - 'fr': True, - 'mo': True, - 'th': True, - 'tu': True, - 'we': True, + 'fri': True, + 'mon': True, + 'thu': True, + 'tue': True, + 'wed': True, 'name': 'Review code with programmer', 'recurrency': True, 'rrule_type': 'weekly' diff --git a/addons/calendar/tests/test_event_recurrence.py b/addons/calendar/tests/test_event_recurrence.py index 5e2375a1a87..ea857fdfb85 100644 --- a/addons/calendar/tests/test_event_recurrence.py +++ b/addons/calendar/tests/test_event_recurrence.py @@ -43,7 +43,7 @@ class TestCreateRecurrentEvents(TestRecurrentEvents): """ Every week, on Tuesdays, for 3 occurences """ detached_events = self.event._apply_recurrence_values({ 'rrule_type': 'weekly', - 'tu': True, + 'tue': True, 'interval': 1, 'count': 3, 'event_tz': 'UTC', @@ -63,7 +63,7 @@ class TestCreateRecurrentEvents(TestRecurrentEvents): self.event._apply_recurrence_values({ 'interval': 2, 'rrule_type': 'weekly', - 'tu': True, + 'tue': True, 'count': 2, 'event_tz': 'UTC', }) @@ -81,7 +81,7 @@ class TestCreateRecurrentEvents(TestRecurrentEvents): self.event._apply_recurrence_values({ 'interval': 2, 'rrule_type': 'weekly', - 'tu': True, + 'tue': True, 'count': 2, 'event_tz': 'UTC', }) @@ -96,7 +96,7 @@ class TestCreateRecurrentEvents(TestRecurrentEvents): def test_weekly_until(self): self.event._apply_recurrence_values({ 'rrule_type': 'weekly', - 'tu': True, + 'tue': True, 'interval': 2, 'end_type': 'end_date', 'until': datetime(2019, 11, 15), @@ -156,7 +156,7 @@ class TestCreateRecurrentEvents(TestRecurrentEvents): 'interval': 2, 'month_by': 'day', 'byday': '3', - 'weekday': 'TU', + 'weekday': 'TUE', 'end_type': 'end_date', 'until': date(2020, 3, 15), 'event_tz': 'UTC', @@ -176,7 +176,7 @@ class TestCreateRecurrentEvents(TestRecurrentEvents): 'interval': 2, 'rrule_type': 'monthly', 'month_by': 'day', - 'weekday': 'WE', + 'weekday': 'WED', 'byday': '-1', 'end_type': 'end_date', 'until': date(2020, 1, 15), @@ -211,7 +211,7 @@ class TestCreateRecurrentEvents(TestRecurrentEvents): self.event._apply_recurrence_values({ 'interval': 2, 'rrule_type': 'weekly', - 'mo': True, + 'mon': True, 'count': '2', 'event_tz': 'US/Eastern', # DST change on 2002/10/27 }) @@ -232,7 +232,7 @@ class TestCreateRecurrentEvents(TestRecurrentEvents): self.event._apply_recurrence_values({ 'interval': 1, 'rrule_type': 'weekly', - 'su': True, + 'sun': True, 'count': '2', 'event_tz': 'US/Eastern' # DST change on 2002/4/7 }) @@ -254,7 +254,7 @@ class TestCreateRecurrentEvents(TestRecurrentEvents): self.event._apply_recurrence_values({ 'interval': 1, 'rrule_type': 'weekly', - 'su': True, + 'sun': True, 'count': '2', 'event_tz': 'US/Eastern' # DST change on 2002/4/7 }) @@ -276,7 +276,7 @@ class TestCreateRecurrentEvents(TestRecurrentEvents): self.event._apply_recurrence_values({ 'interval': 1, 'rrule_type': 'weekly', - 'mo': True, + 'mon': True, 'count': 2, 'event_tz': 'Europe/Brussels' # DST change on 2020/3/23 }) @@ -298,7 +298,7 @@ class TestUpdateRecurrentEvents(TestRecurrentEvents): 'stop': datetime(2019, 10, 24, 18, 0), 'recurrency': True, 'rrule_type': 'weekly', - 'tu': True, + 'tue': True, 'interval': 1, 'count': 3, 'event_tz': 'Etc/GMT-4', @@ -322,8 +322,8 @@ class TestUpdateRecurrentEvents(TestRecurrentEvents): self.assertNotEqual(self.recurrence, new_recurrence) self.assertEqual(new_recurrence.count, 2) self.assertEqual(new_recurrence.dtstart, datetime(2019, 11, 2, 1, 0)) - self.assertFalse(new_recurrence.tu) - self.assertTrue(new_recurrence.sa) + self.assertFalse(new_recurrence.tue) + self.assertTrue(new_recurrence.sat) self.assertEventDates(new_recurrence.calendar_event_ids, [ (datetime(2019, 11, 2, 1, 0), datetime(2019, 11, 5, 18, 0)), (datetime(2019, 11, 9, 1, 0), datetime(2019, 11, 12, 18, 0)), @@ -340,8 +340,8 @@ class TestUpdateRecurrentEvents(TestRecurrentEvents): self.assertFalse(self.recurrence.exists()) self.assertEqual(new_recurrence.count, 3) self.assertEqual(new_recurrence.dtstart, datetime(2019, 10, 26, 1, 0)) - self.assertFalse(new_recurrence.tu) - self.assertTrue(new_recurrence.sa) + self.assertFalse(new_recurrence.tue) + self.assertTrue(new_recurrence.sat) self.assertEventDates(new_recurrence.calendar_event_ids, [ (datetime(2019, 10, 26, 1, 0), datetime(2019, 10, 29, 18, 0)), (datetime(2019, 11, 2, 1, 0), datetime(2019, 11, 5, 18, 0)), @@ -374,8 +374,8 @@ class TestUpdateRecurrentEvents(TestRecurrentEvents): def test_change_week_day_rrule(self): recurrence = self.events.recurrence_id recurrence.rrule = 'FREQ=WEEKLY;COUNT=3;BYDAY=WE' # from TU to WE - self.assertFalse(self.recurrence.tu) - self.assertTrue(self.recurrence.we) + self.assertFalse(self.recurrence.tue) + self.assertTrue(self.recurrence.wed) def test_shift_all_base_inactive(self): self.recurrence.base_event_id.active = False @@ -406,7 +406,7 @@ class TestUpdateRecurrentEvents(TestRecurrentEvents): event = self.events[1] event.write({ 'recurrence_update': 'future_events', - 'fr': True, # recurrence is now Tuesday AND Friday + 'fri': True, # recurrence is now Tuesday AND Friday 'count': 4, }) self.assertEventDates(self.recurrence.calendar_event_ids, [ @@ -425,14 +425,14 @@ class TestUpdateRecurrentEvents(TestRecurrentEvents): self.assertEqual(events[2], self.events[2], "Events on Tuesdays should not have changed") self.assertNotEqual(events.recurrence_id, self.recurrence, "Events should no longer be linked to the original recurrence") self.assertEqual(events.recurrence_id.count, 4, "The new recurrence should have 4") - self.assertTrue(event.recurrence_id.tu) - self.assertTrue(event.recurrence_id.fr) + self.assertTrue(event.recurrence_id.tue) + self.assertTrue(event.recurrence_id.fri) def test_update_recurrence_all(self): with self.assertRaises(UserError): self.events[1].write({ 'recurrence_update': 'all_events', - 'mo': True, # recurrence is now Tuesday AND Monday + 'mon': True, # recurrence is now Tuesday AND Monday }) def test_shift_single(self): @@ -484,7 +484,7 @@ class TestUpdateRecurrentEvents(TestRecurrentEvents): 'stop_date': datetime(2019, 10, 24), 'recurrency': True, 'rrule_type': 'weekly', - 'tu': True, + 'tue': True, 'interval': 1, 'count': 3, 'event_tz': 'Etc/GMT-4', @@ -506,8 +506,8 @@ class TestUpdateRecurrentEvents(TestRecurrentEvents): self.assertNotEqual(recurrence, new_recurrence) self.assertEqual(new_recurrence.count, 2) self.assertEqual(new_recurrence.dtstart, datetime(2019, 11, 2, 8, 0)) - self.assertFalse(new_recurrence.tu) - self.assertTrue(new_recurrence.sa) + self.assertFalse(new_recurrence.tue) + self.assertTrue(new_recurrence.sat) self.assertEventDates(new_recurrence.calendar_event_ids, [ (datetime(2019, 11, 2, 8, 0), datetime(2019, 11, 5, 18, 0)), (datetime(2019, 11, 9, 8, 0), datetime(2019, 11, 12, 18, 0)), @@ -527,8 +527,8 @@ class TestUpdateMultiDayWeeklyRecurrentEvents(TestRecurrentEvents): 'stop': datetime(2019, 10, 24, 18, 0), 'recurrency': True, 'rrule_type': 'weekly', - 'tu': True, - 'fr': True, + 'tue': True, + 'fri': True, 'interval': 1, 'count': 3, 'event_tz': 'Etc/GMT-4', @@ -564,11 +564,11 @@ class TestUpdateMultiDayWeeklyRecurrentEvents(TestRecurrentEvents): 'start': event.start + relativedelta(days=3), 'stop': event.stop + relativedelta(days=3), }) - self.assertTrue(self.recurrence.fr) - self.assertTrue(self.recurrence.tu) - self.assertTrue(event.recurrence_id.tu) - self.assertTrue(event.recurrence_id.mo) - self.assertFalse(event.recurrence_id.fr) + self.assertTrue(self.recurrence.fri) + self.assertTrue(self.recurrence.tue) + self.assertTrue(event.recurrence_id.tue) + self.assertTrue(event.recurrence_id.mon) + self.assertFalse(event.recurrence_id.fri) self.assertEqual(event.recurrence_id.count, 2) @@ -586,7 +586,7 @@ class TestUpdateMonthlyByDay(TestRecurrentEvents): 'interval': 1, 'count': 3, 'month_by': 'day', - 'weekday': 'TU', + 'weekday': 'TUE', 'byday': '3', 'event_tz': 'Etc/GMT-4', }) diff --git a/addons/calendar/views/calendar_views.xml b/addons/calendar/views/calendar_views.xml index e5496704d36..d02418f5f37 100644 --- a/addons/calendar/views/calendar_views.xml +++ b/addons/calendar/views/calendar_views.xml @@ -180,13 +180,13 @@ - - - - - - - + + + + + + + - - - - - - - + + + + + + +