add edit event feature

This commit is contained in:
2022-11-16 19:56:19 -05:00
parent cb944d8bbe
commit 3082ab7307
4 changed files with 49 additions and 7 deletions

25
app.py
View File

@@ -53,16 +53,17 @@ class Event(db.Model):
def __repr__(self):
return f'<Event "{self.id}">'
def get_tasks():
return Task.query
class TaskForm(FlaskForm):
title = StringField('Title', validators=[InputRequired(),
Length(min=5, max=100)])
description = TextAreaField('Description', validators=[InputRequired(),
Length(max=200)])
class EventForm(FlaskForm):
eventDate = DateField('Date', validators=[InputRequired()], format='m-%d-%Y')
period_num = IntegerField(validators=[InputRequired()])
selectedTask = QuerySelectField(label='Task', get_label='title' )
# eventDate = DateField('Date', validators=[InputRequired()], format='m-%d-%Y')
# period_num = IntegerField(validators=[InputRequired()])
selectedTask = QuerySelectField(label='New Task', query_factory=get_tasks, get_label='title', allow_blank=True, blank_text='(no task)')
@app.route('/')
def index():
@@ -71,12 +72,22 @@ def index():
@app.route('/events')
def events():
events = Event.query.all()
tasks = Task.query.order_by('title')
periods = Period.query.all()
form = EventForm(obj=tasks)
return render_template('events.html', events=events, periods=periods, datetime=datetime, date=date, form=form)
return render_template('events.html', events=events, periods=periods, datetime=datetime, date=date)
@app.route('/event/edit/<int:event_id>/', methods=('GET', 'POST'))
def editEvent(event_id):
event = Event.query.get_or_404(event_id)
form = EventForm(obj=event)
if form.validate_on_submit():
if hasattr(form.selectedTask.data, 'id'):
event.task_id = form.selectedTask.data.id
else:
event.task_id = None
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()