79 lines
2.3 KiB
Python
79 lines
2.3 KiB
Python
from flask import redirect, render_template, request, url_for, flash
|
|
|
|
from datetime import time
|
|
|
|
from app import webapp
|
|
from app.models.callback import Callback
|
|
from app.models.schedule import Schedule
|
|
from app.views.auth import login_required
|
|
|
|
@webapp.route('/callback/schedule/<uuid>')
|
|
@login_required
|
|
def schedule(uuid:str):
|
|
callback = Callback.get_callback(uuid)
|
|
schedules = Schedule.get_schedules(uuid)
|
|
|
|
return render_template("schedule.html",callback=callback, schedules=schedules)
|
|
|
|
@webapp.route('/create_schedule/<uuid>', methods=['POST'])
|
|
@login_required
|
|
def create_schedule(uuid:str):
|
|
|
|
callback = None
|
|
|
|
try:
|
|
callback = Callback.get_callback(uuid=uuid)
|
|
except Exception as e:
|
|
flash("Something went wrong.", "error")
|
|
return redirect(url_for('callbacks'))
|
|
|
|
if not request.form['name']:
|
|
flash("Name required", "error")
|
|
return redirect(url_for('schedule', uuid=callback.uuid))
|
|
|
|
name = request.form['name']
|
|
startday = request.form['startday']
|
|
starttime_str = request.form['starttime']
|
|
endday = request.form['endday']
|
|
endtime_str = request.form['endtime']
|
|
|
|
starttime_split = starttime_str.split(":")
|
|
starttime = time(int(starttime_split[0]), int(starttime_split[1]), 0, 0)
|
|
|
|
endtime_split = endtime_str.split(":")
|
|
endtime = time(int(endtime_split[0]), int(endtime_split[1]), 0, 0)
|
|
|
|
if(startday > endday):
|
|
flash("Start day has to be the same or earlier than end day", "error")
|
|
return redirect(url_for('schedule', uuid=callback.uuid))
|
|
if(startday == endday):
|
|
if(starttime >= endtime):
|
|
flash("Start time needs to be earlier than end time", "error")
|
|
return redirect(url_for('schedule', uuid=callback.uuid))
|
|
|
|
schedule = Schedule(name, uuid, startday, starttime, endday, endtime)
|
|
schedule.save()
|
|
|
|
flash("Schedule created", "success")
|
|
|
|
return redirect(url_for('schedule', uuid=callback.uuid))
|
|
|
|
@webapp.route('/delete_schedule/<id>')
|
|
@login_required
|
|
def delete_schedule(id:int):
|
|
|
|
schedule = None
|
|
|
|
try:
|
|
schedule = Schedule.get_schedule(id=id)
|
|
except Exception as e:
|
|
flash("Something went wrong.", "error")
|
|
return redirect(url_for('callbacks'))
|
|
|
|
uuid = schedule.callback_id
|
|
|
|
schedule.delete()
|
|
|
|
flash("Schedule deleted", "success")
|
|
|
|
return redirect(url_for('schedule', uuid=uuid)) |