我想在项目仪表板的时间线视图中显示项目期间中包含的公共假日
首先,我得到了每个项目中包含的假期列表,这里是我的功能:
holiday_in_project = fields.Text('Holiday in project', compute='get_holiday')
# get holiday include in interval date project
@api.depends('date_start', 'date')
def get_holiday(self):
if self.resource_calendar_id:
for leave_ids in self.env['resource.calendar.leaves'].search([
('calendar_id', '=', self.resource_calendar_id.name),
]):
# datetime to date
date_from = leave_ids.date_from.date()
date_to = leave_ids.date_to.date()
Range = namedtuple('Range', ['start', 'end'])
r1 = Range(start=self.date_start, end=self.date)
r2 = Range(start=date_from, end=date_to)
latest_start = max(r1.start, r2.start)
earliest_end = min(r1.end, r2.end)
overlap = (earliest_end - latest_start).days + 1
overlapping_dates = []
if overlap > 0:
overlapping_dates = range(latest_start.toordinal(), earliest_end.toordinal() + 1)
overlapping_dates = [date.fromordinal(x) for x in overlapping_dates]
# print('overlapping_dates')
# print(overlapping_dates)
self.holiday_in_project = overlapping_dates
# reconvert text to liste (if need)
liste = self.holiday_in_project.split(',')
print(liste)
现在我必须从javascript调用我的函数,以不同的颜色在时间线视图中显示结果(公共假日),我该怎么做?
例如:2020年1月1日是公共假日,如下所示:
目前没有回答
相关问题 更多 >
编程相关推荐