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

Support unshortlisting for a project.

parent 2163982e
No related branches found
No related tags found
1 merge request!3Support unshortlisting for a project.
......@@ -2,6 +2,7 @@ from .message_builders import (
login_manager_message,
login_unsuccessful_error,
project_not_found,
shortlist_not_found,
)
#########################################################################
......@@ -12,3 +13,4 @@ LOGIN_UNSUCCESSFUL_ERROR = login_unsuccessful_error()
LOGIN_MANAGER_MESSAGE = login_manager_message()
PROJECT_NOT_FOUND = project_not_found()
SHORTLIST_NOT_FOUND = shortlist_not_found()
......@@ -54,3 +54,13 @@ def project_not_found():
style=ERROR,
)
)
def shortlist_not_found():
return MessageEncoder.encode(
Message(
header="<h3><strong>Shortlist not found</strong></h3>",
body="<p>The selected shortlisting could not be found.</p>",
style=ERROR,
)
)
......@@ -20,7 +20,7 @@
{{ form.is_student_proposal(class="w3-check", id="is-student-proposal") }}&ensp;{{ form.is_student_proposal.label }}
</div>
<div class="w3-threequarter">
{{ form.on_behalf(placeholder="Student proposer", class="w3-input w3-border", id="student-proposer") }}
{{ form.on_behalf(placeholder="Student username", class="w3-input w3-border", id="student-proposer") }}
</div>
</section>
<button type="submit" class="w3-btn w3-{{ theme_colour }}">Save</button>
......
......@@ -12,7 +12,8 @@
<a href="{{ url_for("student.view_project", project_id=project.id) }}"
class="w3-button w3-hover-blue">View</a>
{% if project.id in short_listings %}
<button class="w3-button w3-hover-blue" disabled>Shortlist</button>
<a href="{{ url_for("student.unshortlist_project", project_id=project.id) }}"
class="w3-button w3-hover-blue">Unshortlist</a>
{% else %}
<a href="{{ url_for("student.shortlist_project", project_id=project.id) }}"
class="w3-button w3-hover-blue">Shortlist</a>
......
......@@ -72,3 +72,22 @@ def shortlist_project(project_id):
else:
flash(messages.PROJECT_NOT_FOUND)
return redirect(url_for("student.projects"))
@bp.route("/projects/<project_id>/unshortlist")
@login_required
def unshortlist_project(project_id):
if Project.query.get(project_id):
shortlist: Shortlisting = (
Shortlisting.query.filter(Shortlisting.project_id == project_id)
.filter_by(student=current_user.username)
.first()
)
if shortlist:
db.session.delete(shortlist)
db.session.commit()
else:
flash(messages.SHORTLIST_NOT_FOUND)
else:
flash(messages.PROJECT_NOT_FOUND)
return redirect(url_for("student.projects"))
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