Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def run(self, project_name):
demo_project = Project.query.get(project_name)
db.session.delete(demo_project)
db.session.commit()
def edit_project():
edit_form = EditProjectForm()
if request.method == "POST":
if edit_form.validate():
project = edit_form.update(g.project)
db.session.add(project)
db.session.commit()
return redirect(url_for(".list_bills"))
else:
edit_form.name.data = g.project.name
edit_form.contact_email.data = g.project.contact_email
return render_template(
"edit_project.html", edit_form=edit_form, current_view="edit_project"
)
def edit_member(member_id):
member = Person.query.get(member_id, g.project)
if not member:
raise NotFound()
form = MemberForm(g.project, edit=True)
if request.method == "POST" and form.validate():
form.save(g.project, member)
db.session.commit()
flash(_("User '%(name)s' has been edited", name=member.name))
return redirect(url_for(".list_bills"))
form.fill(member)
return render_template("edit_member.html", form=form, edit=True)
def reactivate(member_id):
person = (
Person.query.filter(Person.id == member_id)
.filter(Project.id == g.project.id)
.all()
)
if person:
person[0].activated = True
db.session.commit()
flash(_("%(name)s is part of this project again", name=person[0].name))
return redirect(url_for(".list_bills"))
def post(self, project):
form = get_billform_for(project, True, meta={"csrf": False})
if form.validate():
bill = Bill()
form.save(bill, project)
db.session.add(bill)
db.session.commit()
return bill.id, 201
return form.errors, 400
def add_member():
# FIXME manage form errors on the list_bills page
form = MemberForm(g.project)
if request.method == "POST":
if form.validate():
member = form.save(g.project, Person())
db.session.commit()
flash(_("%(member)s had been added", member=member.name))
return redirect(url_for(".list_bills"))
return render_template("add_member.html", form=form)
def add_bill():
form = get_billform_for(g.project)
if request.method == "POST":
if form.validate():
# save last selected payer in session
session["last_selected_payer"] = form.payer.data
session.update()
bill = Bill()
db.session.add(form.save(bill, g.project))
db.session.commit()
flash(_("The bill has been added"))
args = {}
if form.submit2.data:
args["add_bill"] = True
return redirect(url_for(".list_bills", **args))
return render_template("add_bill.html", form=form)
def delete_bill(bill_id):
# fixme: everyone is able to delete a bill
bill = Bill.query.get(g.project, bill_id)
if not bill:
return redirect(url_for(".list_bills"))
db.session.delete(bill)
db.session.commit()
flash(_("The bill has been deleted"))
return redirect(url_for(".list_bills"))
def delete(self, project, bill_id):
bill = Bill.query.delete(project, bill_id)
db.session.commit()
if not bill:
return "Not Found", 404
return "OK", 200
def put(self, project, member_id):
form = APIMemberForm(project, meta={"csrf": False}, edit=True)
if form.validate():
member = Person.query.get(member_id, project)
form.save(project, member)
db.session.commit()
return member
return form.errors, 400