[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 <msh@odoo.com>
This commit is contained in:
YOGRAJ TANDEL
2021-03-26 12:25:44 +00:00
committed by Yannick Tivisse
co-authored by Mohammed Shekha
parent 3d0b77a711
commit 7fb9c81296
13 changed files with 149 additions and 151 deletions
+9 -9
View File
@@ -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):
+33 -31
View File
@@ -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:
@@ -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'
+32 -32
View File
@@ -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',
})
+7 -7
View File
@@ -180,13 +180,13 @@
</div>
</group>
<group attrs="{'invisible': [('rrule_type', '!=', 'weekly')]}" name="weekdays">
<field name="mo"/>
<field name="tu"/>
<field name="we"/>
<field name="th"/>
<field name="fr"/>
<field name="sa"/>
<field name="su"/>
<field name="mon"/>
<field name="tue"/>
<field name="wed"/>
<field name="thu"/>
<field name="fri"/>
<field name="sat"/>
<field name="sun"/>
</group>
<group attrs="{'invisible': [('rrule_type', '!=', 'monthly')]}">
<label string="Day of Month" for="month_by"/>
+11 -13
View File
@@ -12,7 +12,7 @@ from textwrap import dedent
from odoo.addons.base.models.res_partner import _tz_get
_logger = logging.getLogger(__name__)
WEEKDAY_TO_NAME = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
WEEKDAY_TO_NAME = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']
CRON_DEPENDS = {'name', 'active', 'mode', 'until', 'notification_time', 'notification_moment', 'tz'}
@@ -42,13 +42,13 @@ class LunchAlert(models.Model):
cron_id = fields.Many2one('ir.cron', ondelete='cascade', required=True, readonly=True)
until = fields.Date('Show Until')
recurrency_monday = fields.Boolean('Monday', default=True)
recurrency_tuesday = fields.Boolean('Tuesday', default=True)
recurrency_wednesday = fields.Boolean('Wednesday', default=True)
recurrency_thursday = fields.Boolean('Thursday', default=True)
recurrency_friday = fields.Boolean('Friday', default=True)
recurrency_saturday = fields.Boolean('Saturday', default=True)
recurrency_sunday = fields.Boolean('Sunday', default=True)
mon = fields.Boolean(default=True)
tue = fields.Boolean(default=True)
wed = fields.Boolean(default=True)
thu = fields.Boolean(default=True)
fri = fields.Boolean(default=True)
sat = fields.Boolean(default=True)
sun = fields.Boolean(default=True)
available_today = fields.Boolean('Is Displayed Today',
compute='_compute_available_today', search='_search_available_today')
@@ -63,12 +63,10 @@ class LunchAlert(models.Model):
'Notification time must be between 0 and 12')
]
@api.depends('recurrency_monday', 'recurrency_tuesday', 'recurrency_wednesday',
'recurrency_thursday', 'recurrency_friday', 'recurrency_saturday',
'recurrency_sunday')
@api.depends('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun')
def _compute_available_today(self):
today = fields.Date.context_today(self)
fieldname = 'recurrency_%s' % (WEEKDAY_TO_NAME[today.weekday()])
fieldname = WEEKDAY_TO_NAME[today.weekday()]
for alert in self:
alert.available_today = alert.until > today if alert.until else True and alert[fieldname]
@@ -79,7 +77,7 @@ class LunchAlert(models.Model):
searching_for_true = (operator == '=' and value) or (operator == '!=' and not value)
today = fields.Date.context_today(self)
fieldname = 'recurrency_%s' % (WEEKDAY_TO_NAME[today.weekday()])
fieldname = WEEKDAY_TO_NAME[today.weekday()]
return expression.AND([
[(fieldname, operator, value)],
+11 -13
View File
@@ -13,7 +13,7 @@ from odoo.tools import float_round
from odoo.addons.base.models.res_partner import _tz_get
WEEKDAY_TO_NAME = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
WEEKDAY_TO_NAME = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']
CRON_DEPENDS = {'name', 'active', 'send_by', 'automatic_email_time', 'moment', 'tz'}
def float_to_time(hours, moment='am', tz=None):
@@ -62,13 +62,13 @@ class LunchSupplier(models.Model):
automatic_email_time = fields.Float('Order Time', default=12.0, required=True)
cron_id = fields.Many2one('ir.cron', ondelete='cascade', required=True, readonly=True)
recurrency_monday = fields.Boolean('Monday', default=True)
recurrency_tuesday = fields.Boolean('Tuesday', default=True)
recurrency_wednesday = fields.Boolean('Wednesday', default=True)
recurrency_thursday = fields.Boolean('Thursday', default=True)
recurrency_friday = fields.Boolean('Friday', default=True)
recurrency_saturday = fields.Boolean('Saturday')
recurrency_sunday = fields.Boolean('Sunday')
mon = fields.Boolean(default=True)
tue = fields.Boolean(default=True)
wed = fields.Boolean(default=True)
thu = fields.Boolean(default=True)
fri = fields.Boolean(default=True)
sat = fields.Boolean()
sun = fields.Boolean()
recurrency_end_date = fields.Date('Until', help="This field is used in order to ")
@@ -206,9 +206,7 @@ class LunchSupplier(models.Model):
orders.action_confirm()
@api.depends('recurrency_end_date', 'recurrency_monday', 'recurrency_tuesday',
'recurrency_wednesday', 'recurrency_thursday', 'recurrency_friday',
'recurrency_saturday', 'recurrency_sunday')
@api.depends('recurrency_end_date', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun')
def _compute_available_today(self):
now = fields.Datetime.now().replace(tzinfo=pytz.UTC)
@@ -218,7 +216,7 @@ class LunchSupplier(models.Model):
if supplier.recurrency_end_date and now.date() >= supplier.recurrency_end_date:
supplier.available_today = False
else:
fieldname = 'recurrency_%s' % (WEEKDAY_TO_NAME[now.weekday()])
fieldname = WEEKDAY_TO_NAME[now.weekday()]
supplier.available_today = supplier[fieldname]
def _search_available_today(self, operator, value):
@@ -228,7 +226,7 @@ class LunchSupplier(models.Model):
searching_for_true = (operator == '=' and value) or (operator == '!=' and not value)
now = fields.Datetime.now().replace(tzinfo=pytz.UTC).astimezone(pytz.timezone(self.env.user.tz or 'UTC'))
fieldname = 'recurrency_%s' % (WEEKDAY_TO_NAME[now.weekday()])
fieldname = WEEKDAY_TO_NAME[now.weekday()]
recurrency_domain = expression.OR([
[('recurrency_end_date', '=', False)],
+14 -14
View File
@@ -91,13 +91,13 @@ class LunchSupplier(models.Model):
('active', populate.cartesian([True, False])),
('send_by', populate.cartesian(['phone', 'mail'])),
('delivery', populate.cartesian(['delivery', 'no_delivery'])),
('recurrency_monday', populate.iterate([True, False], [0.9, 0.1])),
('recurrency_tuesday', populate.iterate([True, False], [0.9, 0.1])),
('recurrency_wednesday', populate.iterate([True, False], [0.9, 0.1])),
('recurrency_thursday', populate.iterate([True, False], [0.9, 0.1])),
('recurrency_friday', populate.iterate([True, False], [0.9, 0.1])),
('recurrency_saturday', populate.iterate([False, True], [0.9, 0.1])),
('recurrency_sunday', populate.iterate([False, True], [0.9, 0.1])),
('mon', populate.iterate([True, False], [0.9, 0.1])),
('tue', populate.iterate([True, False], [0.9, 0.1])),
('wed', populate.iterate([True, False], [0.9, 0.1])),
('thu', populate.iterate([True, False], [0.9, 0.1])),
('fri', populate.iterate([True, False], [0.9, 0.1])),
('sat', populate.iterate([False, True], [0.9, 0.1])),
('sun', populate.iterate([False, True], [0.9, 0.1])),
('available_location_ids', populate.iterate(
[[], [(6, 0, location_ids)]],
then=populate.compute(get_location_ids))),
@@ -150,13 +150,13 @@ class LunchAlert(models.Model):
('active', populate.cartesian([True, False])),
('recipients', populate.cartesian(['everyone', 'last_week', 'last_month', 'last_year'])),
('mode', populate.iterate(['alert', 'chat'])),
('recurrency_monday', populate.iterate([True, False], [0.9, 0.1])),
('recurrency_tuesday', populate.iterate([True, False], [0.9, 0.1])),
('recurrency_wednesday', populate.iterate([True, False], [0.9, 0.1])),
('recurrency_thursday', populate.iterate([True, False], [0.9, 0.1])),
('recurrency_friday', populate.iterate([True, False], [0.9, 0.1])),
('recurrency_saturday', populate.iterate([False, True], [0.9, 0.1])),
('recurrency_sunday', populate.iterate([False, True], [0.9, 0.1])),
('mon', populate.iterate([True, False], [0.9, 0.1])),
('tue', populate.iterate([True, False], [0.9, 0.1])),
('wed', populate.iterate([True, False], [0.9, 0.1])),
('thu', populate.iterate([True, False], [0.9, 0.1])),
('fri', populate.iterate([True, False], [0.9, 0.1])),
('sat', populate.iterate([False, True], [0.9, 0.1])),
('sun', populate.iterate([False, True], [0.9, 0.1])),
('name', populate.constant('alert_{counter}')),
('message', populate.constant('<strong>alert message {counter}</strong>')),
('notification_time', populate.randfloat(0, 12)),
+5 -5
View File
@@ -56,10 +56,10 @@ env['lunch.supplier'].browse([{self.supplier_kothai.id}])._send_auto_email()""")
self.env.user.tz = 'Europe/Brussels'
Supplier = self.env['lunch.supplier']
tests = [(self.monday_1am, 1.0, 'monday'), (self.monday_10am, 10.0, 'monday'),
(self.monday_1pm, 13.0, 'monday'), (self.monday_8pm, 20.0, 'monday'),
(self.saturday_3am, 3.0, 'saturday'), (self.saturday_10am, 10.0, 'saturday'),
(self.saturday_1pm, 13.0, 'saturday'), (self.saturday_8pm, 20.0, 'saturday')]
tests = [(self.monday_1am, 1.0, 'mon'), (self.monday_10am, 10.0, 'mon'),
(self.monday_1pm, 13.0, 'mon'), (self.monday_8pm, 20.0, 'mon'),
(self.saturday_3am, 3.0, 'sat'), (self.saturday_10am, 10.0, 'sat'),
(self.saturday_1pm, 13.0, 'sat'), (self.saturday_8pm, 20.0, 'sat')]
# It should return an empty domain if we compare to values other than datetime
assert Supplier._search_available_today('>', 7) == []
@@ -69,7 +69,7 @@ env['lunch.supplier'].browse([{self.supplier_kothai.id}])._send_auto_email()""")
with patch.object(fields.Datetime, 'now', return_value=value) as _:
assert Supplier._search_available_today('=', True) == ['&', '|', ('recurrency_end_date', '=', False),
('recurrency_end_date', '>', value.replace(tzinfo=pytz.UTC).astimezone(pytz.timezone(self.env.user.tz))),
('recurrency_%s' % (dayname), '=', True)],\
(dayname, '=', True)],\
'Wrong domain generated for values (%s, %s)' % (value, rvalue)
with patch.object(fields.Datetime, 'now', return_value=self.monday_10am) as _:
+7 -7
View File
@@ -49,13 +49,13 @@
<field name="active" widget="boolean_toggle"/>
</group>
<group>
<field name="recurrency_monday"/>
<field name="recurrency_tuesday"/>
<field name="recurrency_wednesday"/>
<field name="recurrency_thursday"/>
<field name="recurrency_friday"/>
<field name="recurrency_saturday"/>
<field name="recurrency_sunday"/>
<field name="mon"/>
<field name="tue"/>
<field name="wed"/>
<field name="thu"/>
<field name="fri"/>
<field name="sat"/>
<field name="sun"/>
<label for="notification_time" attrs="{'invisible': [['mode', '!=', 'chat']]}"/>
<div class="o_row" attrs="{'invisible': [['mode', '!=', 'chat']]}">
<field name="notification_time" attrs="{'required': [('mode', '=', 'chat')]}" widget="float_time"/>
+7 -7
View File
@@ -47,13 +47,13 @@
<group>
<group string="Availability">
<field name="tz" groups="base.group_no_one"/>
<field name="recurrency_monday"/>
<field name="recurrency_tuesday"/>
<field name="recurrency_wednesday"/>
<field name="recurrency_thursday"/>
<field name="recurrency_friday"/>
<field name="recurrency_saturday"/>
<field name="recurrency_sunday"/>
<field name="mon"/>
<field name="tue"/>
<field name="wed"/>
<field name="thu"/>
<field name="fri"/>
<field name="sat"/>
<field name="sun"/>
<field name="recurrency_end_date" groups="base.group_no_one"/>
</group>
<group string="Orders">
+7 -7
View File
@@ -312,13 +312,13 @@ class Meeting(models.Model):
if recurrence.month_by == 'day' or recurrence.rrule_type == 'weekly':
pattern['daysOfWeek'] = [
weekday_name for weekday_name, weekday in {
'monday': recurrence.mo,
'tuesday': recurrence.tu,
'wednesday': recurrence.we,
'thursday': recurrence.th,
'friday': recurrence.fr,
'saturday': recurrence.sa,
'sunday': recurrence.su,
'monday': recurrence.mon,
'tuesday': recurrence.tue,
'wednesday': recurrence.wed,
'thursday': recurrence.thu,
'friday': recurrence.fri,
'saturday': recurrence.sat,
'sunday': recurrence.sun,
}.items() if weekday]
pattern['firstDayOfWeek'] = 'sunday'
@@ -192,7 +192,7 @@ class MicrosoftEvent(abc.Set):
result['month_by'] = month_by
week_days = [x[:2] for x in pattern.get('daysOfWeek', [])]
for week_day in ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su']:
for week_day in ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']:
result[week_day] = week_day in week_days
if week_days:
result['weekday'] = week_days[0].upper()