def update_role(): candidate_id = session.get("candidate-id") if not candidate_id: return redirect(url_for("route_blueprint.search_candidate")) if request.method == "POST": session["change-route"] = "route_blueprint.update_role" form_as_dict: dict = request.form.to_dict(flat=False) new_role_title = {"new-title": form_as_dict.pop("new-title")[0]} new_role_numbers = { key: int(value[0]) for key, value in form_as_dict.items() } new_role = {**new_role_numbers, **new_role_title} session["new-role"] = new_role return redirect(url_for("route_blueprint.email_address")) data = { "promotable_grades": Grade.new_grades(Candidate.query.get(candidate_id).current_grade()), "organisations": Organisation.query.all(), "locations": Location.query.all(), "professions": Profession.query.all(), "role_changes": Promotion.query.all(), } return render_template( "updates/role.html", page_header="Role update", data=data, candidate=Candidate.query.get(candidate_id), )
def test_new_grades_returns_correct_grades(self, test_session): current_grade = Grade(value="One below SCS", rank=5) promotion_roles = set( [grade.value for grade in Grade.new_grades(current_grade)] ) assert promotion_roles == {"Grade 7", "Grade 6", "Deputy Director (SCS1)"} assert "Admin Assistant (AA)" not in promotion_roles
def test_new_grades_returns_grades_in_rank_order(self, test_session): current_grade = Grade(value="One below SCS", rank=5) promotion_roles = [grade.value for grade in Grade.new_grades(current_grade)] assert promotion_roles == ["Deputy Director (SCS1)", "Grade 6", "Grade 7"]