def new_task_action(calendar_id: str, year: int, month: int) -> Response: GregorianCalendar.setfirstweekday(current_app.config["WEEK_STARTING_DAY"]) calendar_data = CalendarData(current_app.config["DATA_FOLDER"], current_app.config["WEEK_STARTING_DAY"]) try: data = calendar_data.load_calendar(calendar_id) except FileNotFoundError: abort(404) current_day, current_month, current_year = GregorianCalendar.current_date() year = max(min(int(year), current_app.config["MAX_YEAR"]), current_app.config["MIN_YEAR"]) month = max(min(int(month), 12), 1) month_names = GregorianCalendar.MONTH_NAMES accounts = calendar_data.accounts_from_calendar(data) if current_month == month and current_year == year: day = current_day else: day = 1 day = int(request.args.get("day", day)) task = { "date": CalendarData.date_for_frontend(year, month, day), "repeats": False, "details": "", } emojis_enabled = current_app.config.get("EMOJIS_ENABLED", False) return cast( Response, render_template( "task.html", calendar_id=calendar_id, year=year, month=month, min_year=current_app.config["MIN_YEAR"], max_year=current_app.config["MAX_YEAR"], month_names=month_names, task=task, accounts=accounts, base_url=current_app.config["BASE_URL"], editing=False, emojis_enabled=emojis_enabled, button_default_color_value=current_app. config["BUTTON_CUSTOM_COLOR_VALUE"], buttons_colors=current_app.config["BUTTONS_COLORS_LIST"], buttons_emojis=current_app.config["BUTTONS_EMOJIS_LIST"] if emojis_enabled else tuple(), ), )
def main_calendar_action(calendar_id: str) -> Response: GregorianCalendar.setfirstweekday(current_app.config["WEEK_STARTING_DAY"]) current_day, current_month, current_year = GregorianCalendar.current_date() year = int(request.args.get("y", current_year)) year = max(min(year, current_app.config["MAX_YEAR"]), current_app.config["MIN_YEAR"]) month = int(request.args.get("m", current_month)) month = max(min(month, 12), 1) month_name = GregorianCalendar.MONTH_NAMES[month - 1] if current_app.config["HIDE_PAST_TASKS"]: view_past_tasks = False else: view_past_tasks = request.cookies.get("ViewPastTasks", "1") == "1" calendar_data = CalendarData(current_app.config["DATA_FOLDER"], current_app.config["WEEK_STARTING_DAY"]) try: data = calendar_data.load_calendar(calendar_id) except FileNotFoundError: abort(404) tasks = calendar_data.tasks_from_calendar(year, month, data) tasks = calendar_data.add_repetitive_tasks_from_calendar( year, month, data, tasks) accounts = calendar_data.accounts_from_calendar(data) balance = calendar_data.balance_from_calendar(data) print("TASKS!!: ", tasks, file=sys.stderr) print("ACCOUNTS!!: ", accounts, file=sys.stderr) if not view_past_tasks: calendar_data.hide_past_tasks(year, month, tasks) if current_app.config[ "WEEK_STARTING_DAY"] == constants.WEEK_START_DAY_MONDAY: weekdays_headers = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"] else: weekdays_headers = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"] calendar_data.sort_balances(calendar_id, 5) balances = calendar_data.get_balances(calendar_id) return cast( Response, render_template( "calendar.html", calendar_id=calendar_id, year=year, month=month, month_name=month_name, current_year=current_year, current_month=current_month, current_day=current_day, month_days=GregorianCalendar.month_days(year, month), previous_month_link=previous_month_link(year, month), next_month_link=next_month_link(year, month), base_url=current_app.config["BASE_URL"], tasks=tasks, accounts=accounts, balance=balance, balances=balances, display_view_past_button=current_app. config["SHOW_VIEW_PAST_BUTTON"], weekdays_headers=weekdays_headers, ), )