def add_task_if_starts_in_period(self, task): ending_date = DateUtils.from_date_offset(self.start_date, self.num_days) if task.date < self.start_date: return False if task.date >= ending_date: return False self.add_task(task) return True
def __init__(self, start_date, num_days, task_filter=TaskFilter(), tasks=None): self.start_date = start_date self.num_days = num_days self.users = set() self.tasks = tasks self.task_filter = task_filter.create_same_filter_with_different_dates( self.start_date, DateUtils.from_date_offset(self.start_date, num_days - 1))
def filter_tasks(self, date=None, day_offset=None, user=None, only_onsite=False): if date is None and day_offset is not None: date = DateUtils.from_date_offset(self.start_date, day_offset) def filter_task(task): if user is not None and task.user != user: return False if date is not None and not DateUtils.same_date(task.date, date): return False if only_onsite and not task.onsite: return False return True return list(filter(filter_task, self.tasks))
def get_all_dates(self): return [DateUtils.from_date_offset(self.start_date, offset) for offset in range(0, self.num_days)]