Skip to content

Commit 6465060

Browse files
author
HenryVisuri
committed
Added validation for invalid weeks in AutomaticDate calculate
1 parent c69e3f8 commit 6465060

1 file changed

Lines changed: 15 additions & 9 deletions

File tree

projects/models/deadline.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -767,15 +767,21 @@ def calculate(self, business_days_only, year=datetime.datetime.now().year):
767767
return_dates = []
768768

769769
if self.week:
770-
start_date = datetime.datetime.strptime( \
771-
f"{year}-W{self.week}-1", "%G-W%V-%u").date()
772-
end_date = datetime.datetime.strptime( \
773-
f"{year}-W{self.week}-7", "%G-W%V-%u").date()
774-
return_dates = self._get_weekdays_in_range(
775-
start_date,
776-
end_date,
777-
business_days_only,
778-
)
770+
last_day = datetime.date(year, 12, 31)
771+
max_week = last_day.isocalendar()[1]
772+
773+
if self.week > max_week:
774+
return_dates = []
775+
else:
776+
start_date = datetime.datetime.strptime( \
777+
f"{year}-W{self.week}-1", "%G-W%V-%u").date()
778+
end_date = datetime.datetime.strptime( \
779+
f"{year}-W{self.week}-7", "%G-W%V-%u").date()
780+
return_dates = self._get_weekdays_in_range(
781+
start_date,
782+
end_date,
783+
business_days_only,
784+
)
779785
elif self.start_date and self.end_date:
780786
start = self._parse_date(self.start_date, year)
781787
end = self._parse_date(self.end_date, year)

0 commit comments

Comments
 (0)