diff --git a/sf_plan_management/models/calendar_base.py b/sf_plan_management/models/calendar_base.py index d67842e8..5b86e6dd 100644 --- a/sf_plan_management/models/calendar_base.py +++ b/sf_plan_management/models/calendar_base.py @@ -112,7 +112,6 @@ class WorkLogSetting(models.Model): 创建记录时,生成工作日历 """ record = super(WorkLogSetting, self).create(vals) - logging.info("工作日历设置【新建】记录时,创建工作日历记录!!!") record.generate_work_calendar() return record @@ -123,7 +122,6 @@ class WorkLogSetting(models.Model): # 先删除之前创建的工作日历事件记录 self.env['sf.work.schedule.calendar'].search([('calendar_code', '=', self.code)]).unlink() result = super(WorkLogSetting, self).write(vals) - logging.info("工作日历设置【更新】记录时,创建工作日历记录!!!") self.generate_work_calendar() return result @@ -131,28 +129,66 @@ class WorkLogSetting(models.Model): """ 生成工作日历 """ - logging.info('开始创建工作日历记录') self.ensure_one() # start_date = date.today() # 开始日期 # end_date = start_date + timedelta(days=365) # 结束日期 # 获取本年第一天和最后一天 start_date = datetime.now().replace(month=1, day=1).date() - end_date = datetime.now().replace(month=1, day=31).date() - logging.info(f'start_date: {start_date} , end_date: {end_date}') + end_date = datetime.now().replace(month=12, day=31).date() # 休息日列表 - rest_days = self.day_off_ids.mapped('name') - logging.info(f'获取界面输入的休息日:{rest_days}') + rest_days = self.chinese_weekdays_to_english(self.day_off_ids.mapped('name')) for single_date in self.daterange(start_date, end_date): - is_workday = single_date.strftime("%A") - logging.info(f'获取一月份每天的星期:{is_workday}') + is_workday = self.chinese_weekday_to_english(single_date.strftime("%A")) + logging.info(f"每天的星期:{is_workday}") if is_workday in rest_days: print('is_workday in rest_days', is_workday) self.env['sf.work.schedule.calendar'].sudo().create({ 'name': '休息日', 'name_id': self.id, 'date_time': single_date}) - logging.info('创建一条工作日历记录,休息时间: %s' % is_workday) - logging.info('工作日历记录创建完成') + + @staticmethod + def chinese_weekdays_to_english(chinese_weekdays): + """ + 将元组的中文星期转换成英文 + :param chinese_weekdays: + :return: + """ + weekdays = { + '星期一': 'Monday', + '星期二': 'Tuesday', + '星期三': 'Wednesday', + '星期四': 'Thursday', + '星期五': 'Friday', + '星期六': 'Saturday', + '星期日': 'Sunday' + } + english_weekdays = [] + for chinese_weekday in chinese_weekdays: + english_weekday = weekdays.get(chinese_weekday, 'Invalid weekday') + english_weekdays.append(english_weekday) + return english_weekdays + + @staticmethod + def chinese_weekday_to_english(chinese_weekday): + """ + 将单个的中文星期转换成英文 + :param chinese_weekday: + :return: + """ + weekdays = { + '星期一': 'Monday', + '星期二': 'Tuesday', + '星期三': 'Wednesday', + '星期四': 'Thursday', + '星期五': 'Friday', + '星期六': 'Saturday', + '星期日': 'Sunday' + } + weekday = weekdays.get(chinese_weekday) + if weekday: + return weekday + return chinese_weekday @staticmethod def daterange(start_date, end_date): @@ -202,13 +238,13 @@ class DayOff(models.Model): _description = '休息日' name = fields.Selection([ - ('星期一', '星期一'), - ('星期二', '星期二'), - ('星期三', '星期三'), - ('星期四', '星期四'), - ('星期五', '星期五'), - ('星期六', '星期六'), - ('星期日', '星期日')], '休息日名称') + ('Monday ', '星期一'), + ('Tuesday ', '星期二'), + ('Wednesday ', '星期三'), + ('Thursday ', '星期四'), + ('Friday ', '星期五'), + ('Saturday ', '星期六'), + ('Sunday ', '星期日')], '休息日名称') class WorkScheduleCalendar(models.Model):