Exemplo n.º 1
0
def manager_students_list(request):

    current_manager = adviser.search_by_person(
        mdl.person.find_by_user(request.user))
    offers = faculty_adviser.search_by_adviser(current_manager)
    students = mdl.student.find_by_offers_and_academic_year(offers, mdl.academic_year.starting_academic_year())\
        .prefetch_related('dissertation_set', 'offerenrollment_set')

    return layout.render(request, 'manager_students_list.html',
                         {'students': students})
Exemplo n.º 2
0
def manager_dissertations_wait_recep_list(request):
    person = mdl.person.find_by_user(request.user)
    adv = adviser.search_by_person(person)
    offers = faculty_adviser.search_by_adviser(adv)
    offer_props = offer_proposition.search_by_offer(offers)
    show_validation_commission = offer_proposition.show_validation_commission(offer_props)
    show_evaluation_first_year = offer_proposition.show_evaluation_first_year(offer_props)
    disserts = dissertation.search_by_offer_and_status(offers, "TO_RECEIVE")

    return layout.render(request, 'manager_dissertations_wait_recep_list.html',
                         {'dissertations': disserts,
                          'show_validation_commission': show_validation_commission,
                          'show_evaluation_first_year': show_evaluation_first_year})
Exemplo n.º 3
0
def manager_dissertations_wait_comm_list(request):
    person = mdl.person.find_by_user(request.user)
    adv = adviser.search_by_person(person)
    offers = faculty_adviser.search_by_adviser(adv)
    offer_props = offer_proposition.search_by_offer(offers)
    all_advisers_array = str(adviser.convert_advisers_to_array(adviser.find_all_advisers()))
    show_validation_commission = offer_proposition.show_validation_commission(offer_props)
    show_evaluation_first_year = offer_proposition.show_evaluation_first_year(offer_props)
    return layout.render(request, 'manager_dissertations_wait_commission_list.html',
                         {'show_validation_commission': show_validation_commission,
                          'STATUS_CHOICES': STATUS_CHOICES,
                          'show_evaluation_first_year': show_evaluation_first_year,
                          'all_advisers_array': all_advisers_array})
def manager_informations_detail_list_wait(request, pk):
    person = mdl.person.find_by_user(request.user)
    connected_adviser = adviser.search_by_person(person)
    offers = faculty_adviser.search_by_adviser(connected_adviser)
    adv = adviser.get_by_id(pk)
    if adv is None:
        return redirect('manager_informations')
    disserts_role = dissertation_role.search_by_adviser_and_role_and_waiting(
        adv, offers)

    return layout.render(request, "manager_informations_detail_list_wait.html",
                         {
                             'disserts_role': disserts_role,
                             'adviser': adv
                         })
Exemplo n.º 5
0
def manager_dissertations_list(request):
    person = mdl.person.find_by_user(request.user)
    adv = adviser.search_by_person(person)
    offers = faculty_adviser.search_by_adviser(adv)
    disserts = dissertation.search_by_offer(offers)
    offer_props = offer_proposition.search_by_offer(offers)
    start_date=timezone.now().replace(year=timezone.now().year - 10)
    end_date=timezone.now().replace(year=timezone.now().year + 1)
    academic_year_10y=find_academic_years(end_date,start_date)
    show_validation_commission = offer_proposition.show_validation_commission(offer_props)
    show_evaluation_first_year = offer_proposition.show_evaluation_first_year(offer_props)
    return layout.render(request, 'manager_dissertations_list.html',
                         {'dissertations': disserts,
                          'show_validation_commission': show_validation_commission,
                          'show_evaluation_first_year': show_evaluation_first_year,
                          'academic_year_10y': academic_year_10y,
                          'offer_props':offer_props})
Exemplo n.º 6
0
def manager_dissertations_search(request):
    person = mdl.person.find_by_user(request.user)
    adv = adviser.search_by_person(person)
    offers = faculty_adviser.search_by_adviser(adv)
    disserts = dissertation.search(terms=request.GET.get('search',''), active=True)
    disserts = disserts.filter(offer_year_start__offer__in=offers)
    offer_prop_search = request.GET.get('offer_prop_search','')
    academic_year_search=request.GET.get('academic_year','')
    status_search=request.GET.get('status_search','')

    if offer_prop_search!='':
        offer_prop_search=int(offer_prop_search)
        offer_prop=offer_proposition.find_by_id(offer_prop_search)
        disserts = disserts.filter(offer_year_start__offer=offer_prop.offer)
    if academic_year_search!='':
        academic_year_search = int(academic_year_search)
        disserts = disserts.filter(
            offer_year_start__academic_year=academic_year.find_academic_year_by_id(academic_year_search)
        )
    if status_search!='':
        disserts = disserts.filter(status=status_search)
    offer_props = offer_proposition.search_by_offer(offers)
    show_validation_commission = offer_proposition.show_validation_commission(offer_props)
    show_evaluation_first_year = offer_proposition.show_evaluation_first_year(offer_props)
    start_date=timezone.now().replace(year=timezone.now().year - 10)
    end_date=timezone.now().replace(year=timezone.now().year + 1)
    academic_year_10y = academic_year.find_academic_years(end_date,start_date)

    if 'bt_xlsx' in request.GET:
        xls = generate_xls(disserts)
        filename = 'dissertations_{}.xlsx'.format(time.strftime("%Y-%m-%d_%H:%M"))
        response = HttpResponse(xls, content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
        response['Content-Disposition'] = "%s%s" % ("attachment; filename=", filename)
        return response

    else:
        return layout.render(request, "manager_dissertations_list.html",
                                      {'dissertations': disserts,
                                       'show_validation_commission': show_validation_commission,
                                       'show_evaluation_first_year': show_evaluation_first_year,
                                       'academic_year_10y': academic_year_10y,
                                       'offer_props':offer_props,
                                       'offer_prop_search':offer_prop_search,
                                       'academic_year_search':academic_year_search,
                                       'status_search':status_search
                                       })
Exemplo n.º 7
0
def manager_proposition_dissertations_search(request):
    person = mdl.person.find_by_user(request.user)
    adv = adviser.search_by_person(person)
    offers = faculty_adviser.search_by_adviser(adv)
    propositions_dissertations = proposition_dissertation.search(
        request.GET['search'], active=True, offers=offers)

    if 'bt_xlsx' in request.GET:
        filename = "EXPORT_propositions_{}.xlsx".format(
            time.strftime("%Y-%m-%d_%H:%M"))
        workbook = Workbook(encoding='utf-8')
        worksheet1 = workbook.active
        worksheet1.title = "proposition_dissertation"
        worksheet1.append([
            'Date_de_création', 'Teacher', 'Title', 'Type', 'Level',
            'Collaboration', 'Max_number_student', 'Visibility', 'Active',
            'Programme(s)', 'Description'
        ])
        types_choices = dict(PropositionDissertation.TYPES_CHOICES)
        levels_choices = dict(PropositionDissertation.LEVELS_CHOICES)
        collaboration_choices = dict(
            PropositionDissertation.COLLABORATION_CHOICES)
        for proposition in propositions_dissertations:
            offers = ""
            for offer in proposition.propositionoffer_set.all():
                offers += "{} ".format(str(offer))
            worksheet1.append([
                proposition.created_date,
                str(proposition.author), proposition.title,
                str(types_choices[proposition.type]),
                str(levels_choices[proposition.level]),
                str(collaboration_choices[proposition.collaboration]),
                proposition.max_number_student, proposition.visibility,
                proposition.active, offers, proposition.description
            ])
        response = HttpResponse(save_virtual_workbook(workbook),
                                content_type='application/vnd.ms-excel')
        response['Content-Disposition'] = "%s%s" % ("attachment; filename=",
                                                    filename)
        return response

    else:
        return layout.render(
            request, "manager_proposition_dissertations_list.html",
            {'propositions_dissertations': propositions_dissertations})
Exemplo n.º 8
0
def manager_dissertations_edit(request, pk):
    dissert = dissertation.find_by_id(pk)
    if dissert is None:
        return redirect('manager_dissertations_list')
    person = mdl.person.find_by_user(request.user)
    adv = adviser.search_by_person(person)
    if adviser_can_manage(dissert, adv):
        offers = faculty_adviser.search_by_adviser(adv)
        if request.method == "POST":
            form = ManagerDissertationEditForm(request.POST, instance=dissert)
            if form.is_valid():
                dissert = form.save()
                justification = "manager_edit_dissertation"
                dissertation_update.add(request,
                                        dissert,
                                        dissert.status,
                                        justification=justification)
                return redirect('manager_dissertations_detail', pk=dissert.pk)
            else:
                form.fields[
                    "proposition_dissertation"].queryset = proposition_dissertation.search_by_offers(
                        offers)
                form.fields["author"].queryset = mdl.student.find_by_offer(
                    offers)
                form.fields[
                    "offer_year_start"].queryset = mdl.offer_year.find_by_offer(
                        offers)
        else:
            form = ManagerDissertationEditForm(instance=dissert)
            form.fields[
                "proposition_dissertation"].queryset = proposition_dissertation.search_by_offers(
                    offers)
            form.fields["author"].queryset = mdl.student.find_by_offer(offers)
            form.fields[
                "offer_year_start"].queryset = mdl.offer_year.find_by_offer(
                    offers)

        return layout.render(
            request, 'manager_dissertations_edit.html', {
                'form': form,
                'dissert': dissert,
                'defend_periode_choices': dissertation.DEFEND_PERIODE_CHOICES
            })
    else:
        return redirect('manager_dissertations_list')
Exemplo n.º 9
0
def manager_dissertations_wait_comm_jsonlist(request):
    person = mdl.person.find_by_user(request.user)
    adv = adviser.search_by_person(person)
    offers = faculty_adviser.search_by_adviser(adv)
    disserts = dissertation.search_by_offer_and_status(offers, "COM_SUBMIT")
    dissert_waiting_list_json = [
        {
            'pk': dissert.pk,
            'title': dissert.title,
            'author': "{p.last_name} {p.first_name} ".format(p=dissert.author.person),
            'status': dissert.status,
            'offer_year': str(dissert.offer_year_start.academic_year),
            'offer': dissert.offer_year_start.acronym,
            'proposition_dissertation': str(dissert.proposition_dissertation),
            'description': dissert.description
        } for dissert in disserts
    ]
    return JsonResponse(dissert_waiting_list_json, safe=False)
def manager_informations_detail_list(request, pk):
    person = mdl.person.find_by_user(request.user)
    connected_adviser = adviser.search_by_person(person)
    offers = faculty_adviser.search_by_adviser(connected_adviser)
    adv = adviser.get_by_id(pk)
    if adv is None:
        return redirect('manager_informations')

    adv_list_disserts_pro = dissertation_role.search_by_adviser_and_role_and_offers(
        adv, 'PROMOTEUR', offers)
    adv_list_disserts_copro = dissertation_role.search_by_adviser_and_role_and_offers(
        adv, 'CO_PROMOTEUR', offers)
    adv_list_disserts_reader = dissertation_role.search_by_adviser_and_role_and_offers(
        adv, 'READER', offers)
    adv_list_disserts_accompanist = dissertation_role.search_by_adviser_and_role_and_offers(
        adv, 'ACCOMPANIST', offers)
    adv_list_disserts_internship = dissertation_role.search_by_adviser_and_role_and_offers(
        adv, 'INTERNSHIP', offers)
    adv_list_disserts_president = dissertation_role.search_by_adviser_and_role_and_offers(
        adv, 'PRESIDENT', offers)

    return layout.render(request, "manager_informations_detail_list.html",
                         locals())
Exemplo n.º 11
0
def manager_dissertations_new(request):
    person = mdl.person.find_by_user(request.user)
    adv = adviser.search_by_person(person)
    offers = faculty_adviser.search_by_adviser(adv)
    if request.method == "POST":
        form = ManagerDissertationForm(request.POST)
        if form.is_valid():
            dissert = form.save()
            justification = "manager_creation_dissertation"
            dissertation_update.add(request, dissert, dissert.status, justification=justification)
            return redirect('manager_dissertations_detail', pk=dissert.pk)
        else:
            form.fields["proposition_dissertation"].queryset = proposition_dissertation.search_by_offers(offers)
            form.fields["author"].queryset = mdl.student.find_by_offer(offers)
            form.fields["offer_year_start"].queryset = mdl.offer_year.find_by_offer(offers)

    else:
        form = ManagerDissertationForm(initial={'active': True})
        form.fields["proposition_dissertation"].queryset = proposition_dissertation.search_by_offers(offers)
        form.fields["author"].queryset = mdl.student.find_by_offer(offers)
        form.fields["offer_year_start"].queryset = mdl.offer_year.find_by_offer(offers)
    return layout.render(request, 'manager_dissertations_new.html',
                         {'form': form,
                          'defend_periode_choices': dissertation.DEFEND_PERIODE_CHOICES})
Exemplo n.º 12
0
def manager_offer_parameters(request):
    person = mdl.person.find_by_user(request.user)
    adv = adviser.search_by_person(person)
    offers = faculty_adviser.search_by_adviser(adv)
    offer_props = offer_proposition.search_by_offer(offers)
    return layout.render(request, 'manager_offer_parameters.html', {'offer_propositions': offer_props})
Exemplo n.º 13
0
def adviser_can_manage(dissertation,adviser):
    offers_of_adviser=faculty_adviser.search_by_adviser(adviser)
    if (dissertation.offer_year_start.offer in offers_of_adviser) and adviser.type=='MGR':
        return True
    else:
        return False