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})
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})
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 })
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})
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 })
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})
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')
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())
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})
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})
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