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 dissertation_new(request): person = mdl.person.find_by_user(request.user) student = mdl.student.find_by_person(person) offers = mdl.offer.find_by_student(student) offer_propositions = offer_proposition.search_by_offers(offers) date_now = timezone.now().date() if any(o.start_visibility_dissertation <= date_now <= o.end_visibility_dissertation for o in offer_propositions): if request.method == "POST": form = DissertationForm(request.POST) if form.is_valid(): memory = form.save() dissertation_update.add(request, memory, memory.status, justification="student_creation_dissertation") return redirect('dissertation_detail', pk=memory.pk) else: form.fields["offer_year_start"].queryset = offer_year.find_by_student_enrollment(student) form.fields["proposition_dissertation"].queryset = proposition_dissertation.search_by_offers(offers) else: form = DissertationForm(initial={'active': True, 'author': student}) form.fields["offer_year_start"].queryset = offer_year.find_by_student_enrollment(student) form.fields["proposition_dissertation"].queryset = proposition_dissertation.search_by_offers(offers) return layout.render(request, 'dissertation_form.html', {'form': form, 'defend_periode_choices': dissertation.DEFEND_PERIODE_CHOICES}) else: return redirect('dissertations')
def manager_proposition_dissertations(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_by_offers(offers) return layout.render(request, 'manager_proposition_dissertations_list.html', {'propositions_dissertations': propositions_dissertations})
def dissertation_new(request): person = mdl.person.find_by_user(request.user) student = mdl.student.find_by_person(person) offers = mdl.offer.find_by_student(student) offer_propositions = offer_proposition.search_by_offers(offers) date_now = timezone.now().date() if any(o.start_visibility_dissertation <= date_now <= o.end_visibility_dissertation for o in offer_propositions): if request.method == "POST": form = DissertationForm(request.POST) if form.is_valid(): memory = form.save() dissertation_update.add( request, memory, memory.status, justification="student_creation_dissertation") return redirect('dissertation_detail', pk=memory.pk) else: form.fields[ "offer_year_start"].queryset = offer_year.find_by_student_enrollment( student) form.fields[ "proposition_dissertation"].queryset = proposition_dissertation.search_by_offers( offers) else: form = DissertationForm(initial={ 'active': True, 'author': student }) form.fields[ "offer_year_start"].queryset = offer_year.find_by_student_enrollment( student) form.fields[ "proposition_dissertation"].queryset = proposition_dissertation.search_by_offers( offers) return layout.render( request, 'dissertation_form.html', { 'form': form, 'defend_periode_choices': dissertation.DEFEND_PERIODE_CHOICES }) else: return redirect('dissertations')
def dissertation_edit(request, pk): memory = get_object_or_404(dissertation.Dissertation, pk=pk) person = mdl.person.find_by_user(request.user) student = mdl.student.find_by_person(person) if memory.author_is_logged_student(request): offers = mdl.offer.find_by_student(student) offer_pro = offer_proposition.search_by_offer(memory.offer_year_start.offer) if memory.status == 'DRAFT' or memory.status == 'DIR_KO': if request.method == "POST": form = DissertationEditForm(request.POST, instance=memory) if form.is_valid(): memory = form.save() dissertation_update.add(request, memory, memory.status, justification="student_edit_dissertation") return redirect('dissertation_detail', pk=memory.pk) else: form.fields["offer_year_start"].queryset = offer_year.find_by_offer(offers) form.fields["proposition_dissertation"].queryset = proposition_dissertation.search_by_offers(offers) else: form = DissertationEditForm(instance=memory) form.fields["offer_year_start"].queryset = offer_year.find_by_offer(offers) form.fields["proposition_dissertation"].queryset = proposition_dissertation.search_by_offers(offers) return layout.render(request, 'dissertation_edit_form.html', {'form': form, 'defend_periode_choices': dissertation.DEFEND_PERIODE_CHOICES}) else: if offer_pro.start_edit_title <= timezone.now().date() <= offer_pro.end_edit_title: if request.method == "POST": form = DissertationTitleForm(request.POST, instance=memory) if form.is_valid(): memory = form.save() dissertation_update.add(request, memory, memory.status, justification="student_edit_title") return redirect('dissertation_detail', pk=memory.pk) else: form = DissertationTitleForm(instance=memory) return layout.render(request, 'dissertation_title_form.html', {'form': form}) else: return redirect('dissertation_detail', pk=memory.pk) else: return redirect('dissertations')
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 dissertation_edit(request, pk): memory = get_object_or_404(dissertation.Dissertation, pk=pk) person = mdl.person.find_by_user(request.user) student = mdl.student.find_by_person(person) if memory.author_is_logged_student(request): offers = mdl.offer.find_by_student(student) offer_pro = offer_proposition.search_by_offer( memory.offer_year_start.offer) if memory.status == 'DRAFT' or memory.status == 'DIR_KO': if request.method == "POST": form = DissertationEditForm(request.POST, instance=memory) if form.is_valid(): memory = form.save() dissertation_update.add( request, memory, memory.status, justification="student_edit_dissertation") return redirect('dissertation_detail', pk=memory.pk) else: form.fields[ "offer_year_start"].queryset = offer_year.find_by_offer( offers) form.fields[ "proposition_dissertation"].queryset = proposition_dissertation.search_by_offers( offers) else: form = DissertationEditForm(instance=memory) form.fields[ "offer_year_start"].queryset = offer_year.find_by_offer( offers) form.fields[ "proposition_dissertation"].queryset = proposition_dissertation.search_by_offers( offers) return layout.render( request, 'dissertation_edit_form.html', { 'form': form, 'defend_periode_choices': dissertation.DEFEND_PERIODE_CHOICES }) else: if offer_pro.start_edit_title <= timezone.now().date( ) <= offer_pro.end_edit_title: if request.method == "POST": form = DissertationTitleForm(request.POST, instance=memory) if form.is_valid(): memory = form.save() dissertation_update.add( request, memory, memory.status, justification="student_edit_title") return redirect('dissertation_detail', pk=memory.pk) else: form = DissertationTitleForm(instance=memory) return layout.render(request, 'dissertation_title_form.html', {'form': form}) else: return redirect('dissertation_detail', pk=memory.pk) else: return redirect('dissertations')