def manager_dissertations_to_dir_ko(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)): old_status = dissert.status new_status = dissertation.get_next_status(dissert, "refuse") status_dict = dict(dissertation.STATUS_CHOICES) new_status_display = status_dict[new_status] if request.method == "POST": form = ManagerDissertationUpdateForm(request.POST) if form.is_valid(): dissert.refuse() data = form.cleaned_data justification = data['justification'] dissertation_update.add(request, dissert, old_status, justification=justification) return redirect('manager_dissertations_detail', pk=pk) else: form = ManagerDissertationUpdateForm() return layout.render(request, 'manager_dissertations_add_justification.html', {'form': form, 'dissert': dissert, 'new_status_display': new_status_display}) else: return redirect('manager_dissertations_list')
def dissertation_to_dir_submit(request, pk): dissert = get_object_or_404(dissertation.Dissertation, pk=pk) person = request.user.person student = person.student_set.first() submitted_memories_count = dissertation.count_disser_submit_by_student_in_educ_group( student, dissert.education_group_year.education_group) if dissert.author_is_logged_student( request) and submitted_memories_count == 0: new_status = dissertation.get_next_status(dissert, "go_forward") status_dict = dict(dissertation_status.DISSERTATION_STATUS) new_status_display = status_dict.get(new_status, dissertation_status.DIR_SUBMIT) form = DissertationUpdateForm(request.POST or None, dissertation=dissert, person=person, action="go_forward") if form.is_valid(): form.save() return redirect('dissertation_detail', pk=pk) return layout.render( request, 'dissertation_add_justification.html', { 'form': form, 'dissertation': dissert, "new_status_display": new_status_display }) else: return redirect('dissertations')
def dissertation_to_dir_submit(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) submitted_memories_count = dissertation.count_submit_by_user(student, memory.offer_year_start.offer) if memory.author_is_logged_student(request) and submitted_memories_count == 0: old_status = memory.status new_status = dissertation.get_next_status(memory, "go_forward") status_dict = dict(dissertation.STATUS_CHOICES) new_status_display = status_dict[new_status] if request.method == "POST": form = DissertationUpdateForm(request.POST) if form.is_valid(): memory.go_forward() data = form.cleaned_data justification = data['justification'] dissertation_update.add(request, memory, old_status, justification=justification) return redirect('dissertation_detail', pk=pk) else: form = DissertationUpdateForm() return layout.render(request, 'dissertation_add_justification.html', {'form': form, 'dissertation': memory, "new_status_display": new_status_display}) else: return redirect('dissertations')
def dissertation_to_dir_submit(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) submitted_memories_count = dissertation.count_submit_by_user( student, memory.offer_year_start.offer) if memory.author_is_logged_student( request) and submitted_memories_count == 0: old_status = memory.status new_status = dissertation.get_next_status(memory, "go_forward") status_dict = dict(dissertation.STATUS_CHOICES) new_status_display = status_dict[new_status] if request.method == "POST": form = DissertationUpdateForm(request.POST) if form.is_valid(): memory.go_forward() data = form.cleaned_data justification = data['justification'] dissertation_update.add(request, memory, old_status, justification=justification) return redirect('dissertation_detail', pk=pk) else: form = DissertationUpdateForm() return layout.render( request, 'dissertation_add_justification.html', { 'form': form, 'dissertation': memory, "new_status_display": new_status_display }) else: return redirect('dissertations')
def test_get_next_status_accept_1(self): self.offer_prop2 = OfferPropositionFactory( education_group=self.education_group2, validation_commission_exists=True, evaluation_first_year=True ) self.dissertation_x = DissertationFactory(status=dissertation_status.DIR_SUBMIT, education_group_year=self.education_group_year2) self.assertEqual(dissertation.get_next_status(self.dissertation_x, "accept"), dissertation_status.COM_SUBMIT)
def test_get_next_status_refuse(self): self.dissertation_a = DissertationFactory(status=dissertation_status.DIR_SUBMIT) self.assertEqual(dissertation.get_next_status(self.dissertation_a, "refuse"), dissertation_status.DIR_KO) self.dissertation_a.status = dissertation_status.COM_SUBMIT self.assertEqual(dissertation.get_next_status(self.dissertation_a, "refuse"), dissertation_status.COM_KO) self.dissertation_a.status = dissertation_status.EVA_SUBMIT self.assertEqual(dissertation.get_next_status(self.dissertation_a, "refuse"), dissertation_status.EVA_KO) self.dissertation_a.status = dissertation_status.DEFENDED self.assertEqual(dissertation.get_next_status(self.dissertation_a, "refuse"), dissertation_status.ENDED_LOS) self.dissertation_a.status = dissertation_status.DRAFT self.assertEqual(dissertation.get_next_status(self.dissertation_a, "refuse"), dissertation_status.DRAFT) self.dissertation_a.status = dissertation_status.TO_DEFEND self.assertEqual(dissertation.get_next_status(self.dissertation_a, "refuse"), dissertation_status.TO_DEFEND)
def dissertation_back_to_draft(request, pk): dissert = get_object_or_404(dissertation.Dissertation, pk=pk) person = request.user.person new_status = dissertation.get_next_status(dissert, "go_back") status_dict = dict(dissertation_status.DISSERTATION_STATUS) new_status_display = status_dict.get(new_status, dissertation_status.DRAFT) form = DissertationUpdateForm(request.POST or None, dissertation=dissert, person=person, action="go_back") if form.is_valid(): form.save() return redirect('dissertation_detail', pk=pk) return layout.render( request, 'dissertation_add_justification.html', { 'form': form, 'dissertation': dissert, "new_status_display": new_status_display })
def new_status_display(dissert, opperation): new_status = dissertation.get_next_status(dissert, opperation) status_dict = dict(DISSERTATION_STATUS) return status_dict[new_status]