Skip to content
Snippets Groups Projects
Commit 0ca6e0bc authored by Andrea Callia D'Iddio's avatar Andrea Callia D'Iddio Committed by Ivan Procaccini
Browse files

Auto-shortlist the student proposer in case of project proposed by a student.

parent b6306052
No related branches found
No related tags found
1 merge request!4Auto-shortlist the student proposer in case of project proposed by a student.
......@@ -13,6 +13,23 @@ from app.models.shortlist import Shortlisting
bp = Blueprint("staff", __name__, url_prefix="/staff")
def shortlist_proposer(project):
shortlisting = Shortlisting(student=project.on_behalf, project_id=project.id)
db.session.add(shortlisting)
db.session.commit()
def unshortlist_old_proposer(project: Project):
shortlisting: Shortlisting = (
Shortlisting.query.filter(Shortlisting.project_id == project.id)
.filter_by(student=project.on_behalf)
.first()
)
if shortlisting:
db.session.delete(shortlisting)
db.session.commit()
@bp.route("/projects")
@login_required
def projects():
......@@ -37,6 +54,8 @@ def create_project():
)
db.session.add(project)
db.session.commit()
if project.on_behalf:
shortlist_proposer(project)
return redirect(url_for("staff.projects"))
return render_template("pages/project-form.html", form=form)
......@@ -57,11 +76,16 @@ def delete_project(project_id):
def edit_project(project_id):
if project := Project.query.get(project_id):
form = ProjectForm()
on_behalf_changed = project.on_behalf != form.on_behalf.data
if on_behalf_changed and project.on_behalf:
unshortlist_old_proposer(project)
if form.validate_on_submit():
project.title = form.title.data
project.description = form.description.data
project.on_behalf = form.on_behalf.data
db.session.commit()
if project.on_behalf and on_behalf_changed:
shortlist_proposer(project)
return redirect(url_for("staff.projects"))
form = ProjectForm(obj=project)
return render_template("pages/project-form.html", form=form, project=project)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment