Esempio n. 1
0
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),
    )
Esempio n. 2
0
 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
Esempio n. 3
0
 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"]