add period templates, add period, edit period, delete period
This commit is contained in:
44
app.py
44
app.py
@@ -4,7 +4,7 @@ from datetime import datetime, date
|
||||
from flask import Flask, render_template, redirect
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
from flask_wtf import FlaskForm
|
||||
from wtforms import (StringField, DateField, TextAreaField, IntegerField, BooleanField,
|
||||
from wtforms import (StringField, DateField, TimeField, TextAreaField, IntegerField, BooleanField,
|
||||
RadioField)
|
||||
from wtforms.validators import InputRequired, Length
|
||||
from wtforms_sqlalchemy.orm import QuerySelectField
|
||||
@@ -65,6 +65,10 @@ class EventForm(FlaskForm):
|
||||
# period_num = IntegerField(validators=[InputRequired()])
|
||||
selectedTask = QuerySelectField(label='New Task', query_factory=get_tasks, get_label='title', allow_blank=True, blank_text='(no task)')
|
||||
|
||||
class PeriodForm(FlaskForm):
|
||||
weekendSchedule = BooleanField(label='Include on Weekends?', false_values=None)
|
||||
periodTime = TimeField('Time', format="%H:%M")
|
||||
|
||||
@app.route('/')
|
||||
def index():
|
||||
return redirect('/events')
|
||||
@@ -76,6 +80,43 @@ def events():
|
||||
|
||||
return render_template('events.html', events=events, periods=periods, datetime=datetime, date=date)
|
||||
|
||||
@app.route('/periods')
|
||||
def periods():
|
||||
periods = Period.query.all()
|
||||
return render_template('periods.html', periods=periods, datetime=datetime)
|
||||
|
||||
@app.route('/period/edit/<int:periodNum>', methods=('GET', 'POST'))
|
||||
def editPeriod(periodNum):
|
||||
period = Period.query.get_or_404(periodNum)
|
||||
form = PeriodForm(obj=period)
|
||||
if form.validate_on_submit():
|
||||
period.periodTime = str(form.periodTime.data)
|
||||
period.weekendSchedule = form.weekendSchedule.data
|
||||
db.session.commit()
|
||||
return redirect(f'/period/edit/{periodNum}')
|
||||
return render_template('editPeriod.html', period=period, form=form, datetime=datetime)
|
||||
|
||||
@app.post('/period/delete/<int:periodNum>')
|
||||
def delete_period(periodNum):
|
||||
period = Period.query.get_or_404(periodNum)
|
||||
db.session.delete(period)
|
||||
db.session.commit()
|
||||
return redirect('/periods')
|
||||
|
||||
@app.route('/period/new', methods=('GET', 'POST'))
|
||||
def newPeriod():
|
||||
form = PeriodForm()
|
||||
if form.validate_on_submit():
|
||||
period = Period(periodTime=str(form.periodTime.data),
|
||||
weekendSchedule=form.weekendSchedule.data
|
||||
)
|
||||
print(period.periodTime)
|
||||
print(period.weekendSchedule)
|
||||
db.session.add(period)
|
||||
db.session.commit()
|
||||
return redirect(f'/period/edit/{period.period}')
|
||||
return render_template('newPeriod.html', form=form)
|
||||
|
||||
@app.route('/event/edit/<int:event_id>/', methods=('GET', 'POST'))
|
||||
def editEvent(event_id):
|
||||
event = Event.query.get_or_404(event_id)
|
||||
@@ -88,6 +129,7 @@ def editEvent(event_id):
|
||||
db.session.commit()
|
||||
return redirect('/events')
|
||||
return render_template('editEvent.html', event=event, form=form, datetime=datetime)
|
||||
|
||||
@app.route('/tasks')
|
||||
def tasks():
|
||||
tasks = Task.query.all()
|
||||
|
@@ -24,6 +24,9 @@
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/tasks">Tasks</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/periods">Periods</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
29
templates/editPeriod.html
Normal file
29
templates/editPeriod.html
Normal file
@@ -0,0 +1,29 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block content %}
|
||||
<span><h1>{% block title %} Edit Period {% endblock %}</h1></span>
|
||||
<p>
|
||||
<b>Period {{ period.period }}</b>
|
||||
</p>
|
||||
|
||||
<form method="post">
|
||||
{{ form.csrf_token }}
|
||||
<p>
|
||||
{{ form.periodTime.label }}
|
||||
{{ form.periodTime(value=period.periodTime) }}
|
||||
</p>
|
||||
<p>
|
||||
{{ form.weekendSchedule.label }}
|
||||
{{ form.weekendSchedule }}
|
||||
</p>
|
||||
<p>
|
||||
<button class="btn btn-primary" type="submit">Submit</button>
|
||||
</p>
|
||||
</form>
|
||||
<form method="post"
|
||||
action="{{url_for('delete_period',
|
||||
periodNum=period.period) }}">
|
||||
<input class="btn btn-danger" type="submit" value="Delete Period"
|
||||
onclick="return confirm('Are you sure you want to delete this period?')">
|
||||
</form>
|
||||
{% endblock %}
|
20
templates/newPeriod.html
Normal file
20
templates/newPeriod.html
Normal file
@@ -0,0 +1,20 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block content %}
|
||||
<span><h1>{% block title %} New Period {% endblock %}</h1></span>
|
||||
|
||||
<form method="post">
|
||||
{{ form.csrf_token }}
|
||||
<p>
|
||||
{{ form.periodTime.label }}
|
||||
{{ form.periodTime }}
|
||||
</p>
|
||||
<p>
|
||||
{{ form.weekendSchedule.label }}
|
||||
{{ form.weekendSchedule }}
|
||||
</p>
|
||||
<p>
|
||||
<button class="btn btn-primary" type="submit">Submit</button>
|
||||
</p>
|
||||
</form>
|
||||
{% endblock %}
|
23
templates/periods.html
Normal file
23
templates/periods.html
Normal file
@@ -0,0 +1,23 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block content %}
|
||||
<span><h1>{% block title %} Periods {% endblock %}</h1></span> <a class="btn btn-primary" href="/period/new" role="button">New Period </a> <br> <br>
|
||||
<div>
|
||||
{% for period in periods %}
|
||||
{% set convertedTime = datetime.strptime(period.periodTime, "%H:%M:%S") %}
|
||||
<div class="float-right">
|
||||
<form method="post"
|
||||
action="{{url_for('delete_period',
|
||||
periodNum=period.period) }}">
|
||||
<input class="btn btn-danger" type="submit" value="Delete"
|
||||
onclick="return confirm('Are you sure you want to delete this period?')">
|
||||
</form></div>
|
||||
<div class="float-right"><a type="button" class="btn btn-primary mr-1" href="/period/edit/{{ period.period }}">Edit</a>
|
||||
</div>
|
||||
<div>
|
||||
<p><b>Period {{ period.period }}</b> <br> Time: {{ convertedTime.strftime("%I:%M %p") }} </p>
|
||||
</div>
|
||||
<hr>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endblock %}
|
Reference in New Issue
Block a user