def delete_task_action(calendar_id: str, year: str, month: str, day: str, task_id: str) -> Response: calendar_data = CalendarData(current_app.config["DATA_FOLDER"], current_app.config["WEEK_STARTING_DAY"]) calendar_data.delete_task( calendar_id=calendar_id, year_str=year, month_str=month, day_str=day, task_id=int(task_id), ) return cast(Response, jsonify({}))
def update_task_action(calendar_id: str, year: str, month: str, day: str, task_id: str) -> Response: # Logic is same as save + delete, could refactor but can wait until need to change any save/delete logic calendar_data = CalendarData(current_app.config["DATA_FOLDER"], current_app.config["WEEK_STARTING_DAY"]) # For creation of "updated" task use only form data title = request.form["title"].strip() date = request.form.get("date", "") if len(date) > 0: fragments = re.split("-", date) updated_year = int(fragments[0]) # type: Optional[int] updated_month = int(fragments[1]) # type: Optional[int] updated_day = int(fragments[2]) # type: Optional[int] else: updated_year = updated_month = updated_day = None is_all_day = request.form.get("is_all_day", "0") == "1" start_time = request.form["start_time"] end_time = request.form.get("end_time", None) details = request.form["details"].replace("\r", "").replace("\n", "<br>") color = request.form["color"] has_repetition = request.form.get("repeats", "0") == "1" repetition_type = request.form.get("repetition_type", "") repetition_subtype = request.form.get("repetition_subtype", "") repetition_value = int(request.form["repetition_value"]) # type: int calendar_data.create_task( calendar_id=calendar_id, year=updated_year, month=updated_month, day=updated_day, title=title, is_all_day=is_all_day, start_time=start_time, end_time=end_time, details=details, color=color, has_repetition=has_repetition, repetition_type=repetition_type, repetition_subtype=repetition_subtype, repetition_value=repetition_value, ) # For deletion of old task data use only url data calendar_data.delete_task( calendar_id=calendar_id, year_str=year, month_str=month, day_str=day, task_id=int(task_id), ) if updated_year is None: return redirect("{}/{}/".format(current_app.config["BASE_URL"], calendar_id), code=302) else: return redirect( "{}/{}/?y={}&m={}".format(current_app.config["BASE_URL"], calendar_id, updated_year, updated_month), code=302, )