def review_view(request): mandate_id = request.POST.get("mandate_id") role = request.POST.get("role") mandate = assistant_mandate.find_mandate_by_id(mandate_id) current_reviewer = reviewer.find_by_person(request.user.person) entity = entity_version.get_last_version(current_reviewer.entity) current_role = current_reviewer.role if role == reviewer_role.PHD_SUPERVISOR: try: current_review = review.find_done_by_supervisor_for_mandate(mandate) except ObjectDoesNotExist: current_review = None else: current_review = review.find_review_for_mandate_by_role(mandate, role) assistant = mandate.assistant menu = generate_reviewer_menu_tabs(current_role, mandate, role) return render(request, 'review_view.html', {'review': current_review, 'role': current_role, 'menu': menu, 'menu_type': 'reviewer_menu', 'mandate_id': mandate.id, 'mandate_state': mandate.state, 'current_reviewer': current_reviewer, 'entity': entity, 'assistant': assistant, 'year': mandate.academic_year.year + 1 })
def review_view(request): mandate_id = request.POST.get("mandate_id") role = request.POST.get("role") mandate = assistant_mandate.find_mandate_by_id(mandate_id) current_reviewer = reviewer.Reviewer.objects.filter( person=request.user.person, entity__mandateentity__assistant_mandate=mandate ).first() entity = entity_version.get_last_version(current_reviewer.entity) current_role = current_reviewer.role if role == reviewer_role.PHD_SUPERVISOR: try: current_review = review.find_done_by_supervisor_for_mandate(mandate) except ObjectDoesNotExist: current_review = None else: current_review = review.find_review_for_mandate_by_role(mandate, role) assistant = mandate.assistant menu = generate_reviewer_menu_tabs(current_role, mandate, role) return render(request, 'review_view.html', {'review': current_review, 'role': current_role, 'menu': menu, 'menu_type': 'reviewer_menu', 'mandate_id': mandate.id, 'mandate_state': mandate.state, 'current_reviewer': current_reviewer, 'entity': entity, 'assistant': assistant, 'year': mandate.academic_year.year + 1 })
def find_review_and_change_status(mandate, role): review = None if role == reviewer_role.PHD_SUPERVISOR: review = find_done_by_supervisor_for_mandate(mandate) elif role: review = find_review_for_mandate_by_role(mandate, role) if review: review.status = review_status.IN_PROGRESS review.save()
def review_edit(request): mandate_id = request.POST.get("mandate_id") mandate = assistant_mandate.find_mandate_by_id(mandate_id) try: review.find_done_by_supervisor_for_mandate(mandate) return HttpResponseRedirect(reverse("assistants_home")) except: existing_review, created = review.Review.objects.get_or_create( mandate=mandate, reviewer=None, status=review_status.IN_PROGRESS) previous_mandates = assistant_mandate.find_before_year_for_assistant( mandate.academic_year.year, mandate.assistant) menu = generate_phd_supervisor_menu_tabs(mandate, reviewer_role.PHD_SUPERVISOR) assistant = mandate.assistant current_person = request.user.person form = ReviewForm(initial={ 'mandate': mandate, 'reviewer': existing_review.reviewer, 'status': existing_review.status, 'advice': existing_review.advice, 'changed': timezone.now, 'confidential': existing_review.confidential, 'remark': existing_review.remark }, prefix="rev", instance=existing_review) return render( request, 'review_form.html', { 'review': existing_review, 'role': reviewer_role.PHD_SUPERVISOR, 'year': mandate.academic_year.year + 1, 'absences': mandate.absences, 'comment': mandate.comment, 'mandate_id': mandate.id, 'previous_mandates': previous_mandates, 'current_person': current_person, 'can_validate': True, 'assistant': assistant, 'menu': menu, 'menu_type': 'phd_supervisor_menu', 'form': form })
def generate_phd_supervisor_menu_tabs(mandate, active_item=None): try: latest_review_done = review.find_done_by_supervisor_for_mandate(mandate) review_is_done = latest_review_done.status == review_status.DONE except ObjectDoesNotExist: review_is_done = False is_active = active_item == assistant_mandate_state.PHD_SUPERVISOR return [{ 'item': assistant_mandate_state.PHD_SUPERVISOR, 'class': 'active' if is_active else '', 'action': 'view' if review_is_done else 'edit' }]
def generate_phd_supervisor_menu_tabs(mandate, active_item=None): try: latest_review_done = review.find_done_by_supervisor_for_mandate( mandate) review_is_done = latest_review_done.status == review_status.DONE except ObjectDoesNotExist: review_is_done = False is_active = active_item == assistant_mandate_state.PHD_SUPERVISOR return [{ 'item': assistant_mandate_state.PHD_SUPERVISOR, 'class': 'active' if is_active else '', 'action': 'view' if review_is_done else 'edit' }]
def review_edit(request): mandate_id = request.POST.get("mandate_id") mandate = assistant_mandate.find_mandate_by_id(mandate_id) try: review.find_done_by_supervisor_for_mandate(mandate) return HttpResponseRedirect(reverse("assistants_home")) except: existing_review, created = review.Review.objects.get_or_create( mandate=mandate, reviewer=None, status=review_status.IN_PROGRESS ) previous_mandates = assistant_mandate.find_before_year_for_assistant(mandate.academic_year.year, mandate.assistant) menu = generate_phd_supervisor_menu_tabs(mandate, reviewer_role.PHD_SUPERVISOR) assistant = mandate.assistant current_person = request.user.person form = ReviewForm(initial={'mandate': mandate, 'reviewer': existing_review.reviewer, 'status': existing_review.status, 'advice': existing_review.advice, 'changed': timezone.now, 'confidential': existing_review.confidential, 'remark': existing_review.remark }, prefix="rev", instance=existing_review) return render(request, 'review_form.html', {'review': existing_review, 'role': reviewer_role.PHD_SUPERVISOR, 'year': mandate.academic_year.year + 1, 'absences': mandate.absences, 'comment': mandate.comment, 'mandate_id': mandate.id, 'previous_mandates': previous_mandates, 'current_person': current_person, 'can_validate': True, 'assistant': assistant, 'menu': menu, 'menu_type': 'phd_supervisor_menu', 'form': form})
def review_view(request): mandate_id = request.POST.get("mandate_id") mandate = assistant_mandate.find_mandate_by_id(mandate_id) current_role = reviewer_role.PHD_SUPERVISOR try: current_review = review.find_done_by_supervisor_for_mandate(mandate) except ObjectDoesNotExist: current_review = None assistant = mandate.assistant current_person = request.user.person menu = generate_phd_supervisor_menu_tabs(mandate, current_role) return render(request, 'review_view.html', {'review': current_review, 'role': current_role, 'menu': menu, 'menu_type': 'phd_supervisor_menu', 'mandate_id': mandate.id, 'mandate_state': mandate.state, 'current_person': current_person, 'assistant': assistant, 'year': mandate.academic_year.year + 1 })
def generate_phd_supervisor_menu_tabs(mandate, active_item: None): menu = [] try: latest_review_done = review.find_done_by_supervisor_for_mandate( mandate) if latest_review_done.status == review_status.DONE: review_is_done = True else: review_is_done = False except ObjectDoesNotExist: review_is_done = False if review_is_done is False: if active_item == assistant_mandate_state.PHD_SUPERVISOR: menu.append({ 'item': assistant_mandate_state.PHD_SUPERVISOR, 'class': 'active', 'action': 'edit' }) else: menu.append({ 'item': assistant_mandate_state.PHD_SUPERVISOR, 'class': '', 'action': 'edit' }) else: if active_item == assistant_mandate_state.PHD_SUPERVISOR: menu.append({ 'item': assistant_mandate_state.PHD_SUPERVISOR, 'class': 'active', 'action': 'view' }) else: menu.append({ 'item': assistant_mandate_state.PHD_SUPERVISOR, 'class': '', 'action': 'view' }) return menu
def review_view(request): mandate_id = request.POST.get("mandate_id") mandate = assistant_mandate.find_mandate_by_id(mandate_id) current_role = reviewer_role.PHD_SUPERVISOR try: current_review = review.find_done_by_supervisor_for_mandate(mandate) except ObjectDoesNotExist: current_review = None assistant = mandate.assistant current_person = request.user.person menu = generate_phd_supervisor_menu_tabs(mandate, current_role) return render( request, 'review_view.html', { 'review': current_review, 'role': current_role, 'menu': menu, 'menu_type': 'phd_supervisor_menu', 'mandate_id': mandate.id, 'mandate_state': mandate.state, 'current_person': current_person, 'assistant': assistant, 'year': mandate.academic_year.year + 1 })