Accept Merge Request #268: (feature/创建工作日历代码测试 -> develop)
Merge Request: 工作日历设置---新增将中文的星期转换成英文的星期的方法,删除了大部分日志。 Created By: @禹翔辉 Accepted By: @禹翔辉 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/268?initial=true
This commit is contained in:
@@ -112,7 +112,6 @@ class WorkLogSetting(models.Model):
|
|||||||
创建记录时,生成工作日历
|
创建记录时,生成工作日历
|
||||||
"""
|
"""
|
||||||
record = super(WorkLogSetting, self).create(vals)
|
record = super(WorkLogSetting, self).create(vals)
|
||||||
logging.info("工作日历设置【新建】记录时,创建工作日历记录!!!")
|
|
||||||
record.generate_work_calendar()
|
record.generate_work_calendar()
|
||||||
return record
|
return record
|
||||||
|
|
||||||
@@ -123,7 +122,6 @@ class WorkLogSetting(models.Model):
|
|||||||
# 先删除之前创建的工作日历事件记录
|
# 先删除之前创建的工作日历事件记录
|
||||||
self.env['sf.work.schedule.calendar'].search([('calendar_code', '=', self.code)]).unlink()
|
self.env['sf.work.schedule.calendar'].search([('calendar_code', '=', self.code)]).unlink()
|
||||||
result = super(WorkLogSetting, self).write(vals)
|
result = super(WorkLogSetting, self).write(vals)
|
||||||
logging.info("工作日历设置【更新】记录时,创建工作日历记录!!!")
|
|
||||||
self.generate_work_calendar()
|
self.generate_work_calendar()
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@@ -131,28 +129,66 @@ class WorkLogSetting(models.Model):
|
|||||||
"""
|
"""
|
||||||
生成工作日历
|
生成工作日历
|
||||||
"""
|
"""
|
||||||
logging.info('开始创建工作日历记录')
|
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
# start_date = date.today() # 开始日期
|
# start_date = date.today() # 开始日期
|
||||||
# end_date = start_date + timedelta(days=365) # 结束日期
|
# end_date = start_date + timedelta(days=365) # 结束日期
|
||||||
# 获取本年第一天和最后一天
|
# 获取本年第一天和最后一天
|
||||||
start_date = datetime.now().replace(month=1, day=1).date()
|
start_date = datetime.now().replace(month=1, day=1).date()
|
||||||
end_date = datetime.now().replace(month=1, day=31).date()
|
end_date = datetime.now().replace(month=12, day=31).date()
|
||||||
logging.info(f'start_date: {start_date} , end_date: {end_date}')
|
|
||||||
# 休息日列表
|
# 休息日列表
|
||||||
rest_days = self.day_off_ids.mapped('name')
|
rest_days = self.chinese_weekdays_to_english(self.day_off_ids.mapped('name'))
|
||||||
logging.info(f'获取界面输入的休息日:{rest_days}')
|
|
||||||
for single_date in self.daterange(start_date, end_date):
|
for single_date in self.daterange(start_date, end_date):
|
||||||
is_workday = single_date.strftime("%A")
|
is_workday = self.chinese_weekday_to_english(single_date.strftime("%A"))
|
||||||
logging.info(f'获取一月份每天的星期:{is_workday}')
|
logging.info(f"每天的星期:{is_workday}")
|
||||||
if is_workday in rest_days:
|
if is_workday in rest_days:
|
||||||
print('is_workday in rest_days', is_workday)
|
print('is_workday in rest_days', is_workday)
|
||||||
self.env['sf.work.schedule.calendar'].sudo().create({
|
self.env['sf.work.schedule.calendar'].sudo().create({
|
||||||
'name': '休息日',
|
'name': '休息日',
|
||||||
'name_id': self.id,
|
'name_id': self.id,
|
||||||
'date_time': single_date})
|
'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
|
@staticmethod
|
||||||
def daterange(start_date, end_date):
|
def daterange(start_date, end_date):
|
||||||
@@ -202,13 +238,13 @@ class DayOff(models.Model):
|
|||||||
_description = '休息日'
|
_description = '休息日'
|
||||||
|
|
||||||
name = fields.Selection([
|
name = fields.Selection([
|
||||||
('星期一', '星期一'),
|
('Monday ', '星期一'),
|
||||||
('星期二', '星期二'),
|
('Tuesday ', '星期二'),
|
||||||
('星期三', '星期三'),
|
('Wednesday ', '星期三'),
|
||||||
('星期四', '星期四'),
|
('Thursday ', '星期四'),
|
||||||
('星期五', '星期五'),
|
('Friday ', '星期五'),
|
||||||
('星期六', '星期六'),
|
('Saturday ', '星期六'),
|
||||||
('星期日', '星期日')], '休息日名称')
|
('Sunday ', '星期日')], '休息日名称')
|
||||||
|
|
||||||
|
|
||||||
class WorkScheduleCalendar(models.Model):
|
class WorkScheduleCalendar(models.Model):
|
||||||
|
|||||||
Reference in New Issue
Block a user