def edit_run(runid): run = Run.query.filter_by(id=runid).first_or_404() form = RunForm(request.form, obj=run) users = User.query.all() form.person.choices = [(user.id, user.name) for user in users] cafes = Cafe.query.all() form.cafeid.choices = [(cafe.id, cafe.name) for cafe in cafes] if request.method == "GET": print run.time.strftime('%Y-%m-%d %H:%M:%S %Z%z') return render_template("runform.html", form=form, formtype="Edit", current_user=current_user) if request.method == "POST" and form.validate_on_submit(): person = User.query.filter_by(id=form.data["person"]).first() run.person = person.id run.fetcher = person run.cafeid = form.data["cafeid"] run.pickup = form.data["pickup"] db.session.commit() write_to_events("updated", "run", run.id) db.session.commit() flash("Run edited", "success") return redirect(url_for("view_run", runid=run.id)) else: for field, errors in form.errors.items(): flash("Error in %s: %s" % (field, "; ".join(errors)), "danger") return render_template("runform.html", form=form, formtype="Edit", current_user=current_user)
def add_run(cafeid=None): form = RunForm(request.form) users = User.query.all() form.person.choices = [(user.id, user.name) for user in users] cafes = Cafe.query.all() if not cafes: flash( "There are no cafes currently configured. Please add one before creating a run", "warning") return redirect(url_for("home")) form.cafeid.choices = [(cafe.id, cafe.name) for cafe in cafes] if request.method == "GET": if cafeid: form.cafe.data = cafeid form.person.data = current_user.id form.time.data = sydney_timezone_now() + timedelta( minutes=30) # strftime("%Y/%m/%d %H:%M:%S") return render_template("runform.html", form=form, formtype="Add", current_user=current_user) if form.validate_on_submit(): # Add run print form.data run = Run(form.data["time"]) person = User.query.filter_by(id=form.data["person"]).first() run.person = person.id run.fetcher = person run.cafeid = form.data["cafeid"] run.pickup = form.data["pickup"] #run.modified = sydney_timezone_now() run.modified = sydney_timezone_now() db.session.add(run) db.session.commit() write_to_events("created", "run", run.id) flash("Run added", "success") return redirect(url_for("view_run", runid=run.id)) else: for field, errors in form.errors.items(): flash("Error in %s: %s" % (field, "; ".join(errors)), "danger") return render_template("runform.html", form=form, formtype="Add", current_user=current_user)
def edit_run(runid): run = Run.query.filter_by(id=runid).first_or_404() form = RunForm(request.form, obj=run) statuses = Status.query.all() form.statusid.choices = [(s.id, s.description) for s in statuses] users = User.query.all() form.person.choices = [(user.id, user.name) for user in users] cafes = Cafe.query.all() form.cafeid.choices = [(cafe.id, cafe.name) for cafe in cafes] if request.method == "GET": print run.time.strftime('%Y-%m-%d %H:%M:%S %Z%z') return render_template("runform.html", form=form, formtype="Edit", current_user=current_user) if request.method == "POST" and form.validate_on_submit(): print form.data #print type(form.data["time"]) #print type(run.time) #print type (sydney_timezone_now()) oldstatus = run.status.description #form.populate_obj(run) person = User.query.filter_by(id=form.data["person"]).first() run.person = person.id run.fetcher = person run.cafeid = form.data["cafeid"] run.pickup = form.data["pickup"] run.statusid = form.data["statusid"] #localtz = pytz.timezone("Australia/Sydney") newstatus = Status.query.filter_by(id=form.data["statusid"]).first().description #run.modified = sydney_timezone_now() db.session.commit() write_to_events("updated", "run", run.id) db.session.commit() flash("Run edited", "success") if oldstatus != newstatus and newstatus == "Pickup": call_to_pickup(run) return redirect(url_for("view_run", runid=run.id)) else: for field, errors in form.errors.items(): flash("Error in %s: %s" % (field, "; ".join(errors)), "danger") return render_template("runform.html", form=form, formtype="Edit", current_user=current_user)