parent
220256dd91
commit
7f12282c42
17
web_view.py
17
web_view.py
|
@ -231,14 +231,29 @@ async def gaps_page() -> str:
|
|||
|
||||
@app.route("/weekends")
|
||||
async def weekends() -> str:
|
||||
"""List of available weekends using an optional date parameter."""
|
||||
"""List of available weekends using an optional date, week, or year parameter."""
|
||||
today = datetime.now().date()
|
||||
date_str = flask.request.args.get("date")
|
||||
week_str = flask.request.args.get("week")
|
||||
year_str = flask.request.args.get("year")
|
||||
|
||||
if date_str:
|
||||
try:
|
||||
start = datetime.strptime(date_str, "%Y-%m-%d").date()
|
||||
except ValueError:
|
||||
return flask.abort(400, description="Invalid date format. Use YYYY-MM-DD.")
|
||||
elif week_str:
|
||||
try:
|
||||
week = int(week_str)
|
||||
year = int(year_str) if year_str else today.year
|
||||
if week < 1 or week > 53:
|
||||
return flask.abort(400, description="Week number must be between 1 and 53.")
|
||||
# Calculate the date of the first day of the given week
|
||||
jan_1 = date(year, 1, 1)
|
||||
week_1_start = jan_1 - timedelta(days=jan_1.weekday())
|
||||
start = week_1_start + timedelta(weeks=week - 1)
|
||||
except ValueError:
|
||||
return flask.abort(400, description="Invalid week or year format. Use integers.")
|
||||
else:
|
||||
start = date(today.year, 1, 1)
|
||||
|
||||
|
|
Loading…
Reference in a new issue