Newer
Older
from flask import render_template, Blueprint, redirect, url_for, flash, request, g
from flask_login import login_required, current_user
from app import Project, db, messages
from app.forms.project import ProjectForm
bp = Blueprint("staff", __name__, url_prefix="/staff")
@bp.route("/projects", methods=["GET", "POST"])
form = ProjectForm()
if form.validate_on_submit():
title=form.title.data,
description=form.description.data,
proposer=current_user.username,
)
db.session.add(project)
db.session.commit()
return redirect(url_for("staff.projects"))
active_projects: list[Project] = Project.query.filter(
Project.deleted.is_(None)
).all()
return render_template("pages/projects.html", projects=active_projects)
@bp.route("/projects/create")
@login_required
def create_project():
return render_template("pages/project-form.html", form=ProjectForm())
@bp.route("/projects/<project_id>/delete")
def delete_project(project_id):
if project := Project.query.get(project_id):
project.deleted = datetime.utcnow()
db.session.commit()
else:
flash(messages.PROJECT_NOT_FOUND)
return redirect(url_for("staff.projects"))