示例#1
0
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')
示例#3
0
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')
示例#4
0
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')
示例#5
0
 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)
示例#6
0
 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
        })
示例#8
0
def new_status_display(dissert, opperation):
    new_status = dissertation.get_next_status(dissert, opperation)
    status_dict = dict(DISSERTATION_STATUS)
    return status_dict[new_status]