예제 #1
0
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
                                                })
예제 #2
0
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
                                                })
예제 #3
0
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()
예제 #4
0
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'
    }]
예제 #6
0
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
                                                })
예제 #9
0
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
예제 #10
0
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
        })