Exemple #1
0
def mandate_save(request):
    mandate_id = request.POST.get("mandate_id")
    mandate = assistant_mdl.assistant_mandate.find_mandate_by_id(mandate_id)
    if request.POST.get('del_rev'):
        mandate.assistant.supervisor = None
        mandate.assistant.save()
    elif request.POST.get('person_id'):
        try:
            substitute_supervisor = person.find_by_id(request.POST.get('person_id'))
            if substitute_supervisor:
                mandate.assistant.supervisor = substitute_supervisor
                mandate.assistant.save()
                html_template_ref = 'assistant_phd_supervisor_html'
                txt_template_ref = 'assistant_phd_supervisor_txt'
                send_message(person=substitute_supervisor, html_template_ref=html_template_ref,
                             txt_template_ref=txt_template_ref, assistant=mandate.assistant)
        except ObjectDoesNotExist:
            pass
    form = MandateForm(data=request.POST, instance=mandate, prefix='mand')
    formset = entity_inline_formset(request.POST, request.FILES, instance=mandate, prefix='entity')
    if form.is_valid():
        form.save()
        if formset.is_valid():
            formset.save()
            return mandate_edit(request)
        else:
            return layout.render(request, "mandate_form.html", {'mandate': mandate, 'form': form, 'formset': formset})
    else:
        return layout.render(request, "mandate_form.html", {'mandate': mandate, 'form': form, 'formset': formset})
def form_part3_save(request):
    mandate = assistant_mandate.find_mandate_by_id(request.POST.get("mandate_id"))
    if mandate:
        assistant = mandate.assistant
        files = assistant_document_file.find_by_assistant_mandate_and_description(mandate, document_type.PHD_DOCUMENT)
        form = AssistantFormPart3(data=request.POST, instance=assistant, prefix='mand')
        if form.is_valid():
            current_assistant = form.save(commit=False)
            if current_assistant.inscription != assistant_phd_inscription.NO \
                    and (not request.POST.get('person_id') and current_assistant.supervisor is None):
                msg = _("must_enter_supervisor_if_registered_or_in_progress")
                form.add_error('inscription', msg)
                return render(request, "assistant_form_part3.html", {'assistant': assistant, 'mandate': mandate,
                                                                     'files': files, 'form': form})
            if current_assistant.inscription is None:
                msg = _("phd_inscription_choice_required")
                form.add_error('inscription', msg)
                return render(request, "assistant_form_part3.html", {'assistant': assistant, 'mandate': mandate,
                                                                     'files': files, 'form': form})
            if request.POST.get('person_id'):
                current_assistant.supervisor = person.find_by_id(request.POST.get('person_id'))
                current_assistant.save()
            else:
                form.save()
            return form_part3_edit(request)
        else:
            return render(request, "assistant_form_part3.html", {'assistant': assistant, 'mandate': mandate,
                                                                 'files': files, 'form': form})
    else:
        return form_part3_edit(request, msg=_("data_not_saved"))
Exemple #3
0
def mandate_save(request):
    mandate_id = request.POST.get("mandate_id")
    mandate = assistant_mdl.assistant_mandate.find_mandate_by_id(mandate_id)
    if request.POST.get('del_rev'):
        mandate.assistant.supervisor = None
        mandate.assistant.save()
    elif request.POST.get('person_id'):
        try:
            substitute_supervisor = person.find_by_id(request.POST.get('person_id'))
            if substitute_supervisor:
                mandate.assistant.supervisor = substitute_supervisor
                mandate.assistant.save()
                html_template_ref = 'assistant_phd_supervisor_html'
                txt_template_ref = 'assistant_phd_supervisor_txt'
                send_message(person=substitute_supervisor, html_template_ref=html_template_ref,
                             txt_template_ref=txt_template_ref, assistant=mandate.assistant)
        except ObjectDoesNotExist:
            pass
    form = MandateForm(data=request.POST, instance=mandate, prefix='mand')
    formset = entity_inline_formset(request.POST, request.FILES, instance=mandate, prefix='entity')
    if form.is_valid():
        form.save()
        if formset.is_valid():
            formset.save()
            return mandate_edit(request)
        else:
            return layout.render(request, "mandate_form.html", {'mandate': mandate, 'form': form, 'formset': formset})
    else:
        return layout.render(request, "mandate_form.html", {'mandate': mandate, 'form': form, 'formset': formset})
Exemple #4
0
def reviewer_add(request):
    year = academic_year.starting_academic_year().year
    if request.POST:
        form = ReviewerForm(data=request.POST)
        this_person = request.POST.get('person_id')
        if form.is_valid() and this_person:
            this_person = person.find_by_id(this_person)
            new_reviewer = form.save(commit=False)
            if reviewer.find_by_entity_and_role(new_reviewer.entity,
                                                new_reviewer.role):
                msg = _(
                    "A reviewer having the same role for this entity already exists"
                )
                form.add_error(None, msg)
            if not form.has_error(field=NON_FIELD_ERRORS):
                new_reviewer.person = this_person
                new_reviewer.save()
                return redirect('reviewers_list')
        else:
            msg = _(
                "Please enter the last name and first name of the person you are looking for and select the "
                "corresponding choice in the drop-down list")
            form.add_error(None, msg)
    else:
        form = ReviewerForm(initial={'year': year})
    return render(request, "manager_add_reviewer.html", {
        'form': form,
        'year': year
    })
def add_reviewer_for_structure(request):
    current_entity = entity.find_by_id(request.POST.get("entity"))
    year = academic_year.current_academic_year().year
    if not reviewer.can_delegate_to_entity(reviewer.find_by_person(request.user.person), current_entity):
        return redirect('assistants_home')
    form = ReviewerDelegationForm(data=request.POST)
    if form.is_valid() and request.POST.get('person_id'):
        new_reviewer = form.save(commit=False)
        this_person = person.find_by_id(request.POST.get('person_id'))
        if reviewer.find_by_person(this_person):
            msg = _("person_already_reviewer_msg")
            form.add_error(None, msg)
            return render(request, "reviewer_add_reviewer.html", {
                'form': form,
                'year': year,
                'entity': current_entity,
                'reviewer': reviewer.find_by_person(request.user.person)
            })
        new_reviewer.person = this_person
        new_reviewer.save()
        html_template_ref = 'assistant_reviewers_startup_html'
        txt_template_ref = 'assistant_reviewers_startup_txt'
        send_message(person=this_person, html_template_ref=html_template_ref,
                     txt_template_ref=txt_template_ref)
        return redirect('reviewer_delegation')
    else:
        this_reviewer = reviewer.find_by_person(person=request.user.person)
        role = this_reviewer.role + '_ASSISTANT'
        form = ReviewerDelegationForm(initial={'entity': current_entity, 'year': year, 'role': role})
        return render(request, "reviewer_add_reviewer.html", {
            'form': form,
            'year': year,
            'entity': current_entity,
            'reviewer': reviewer.find_by_person(request.user.person)
        })
def form_part3_save(request):
    mandate = assistant_mandate.find_mandate_by_id(request.POST.get("mandate_id"))
    if mandate:
        assistant = mandate.assistant
        files = assistant_document_file.find_by_assistant_mandate_and_description(mandate, document_type.PHD_DOCUMENT)
        form = AssistantFormPart3(data=request.POST, instance=assistant, prefix='mand')
        if form.is_valid():
            current_assistant = form.save(commit=False)
            if current_assistant.inscription != assistant_phd_inscription.NO \
                    and (not request.POST.get('person_id') and current_assistant.supervisor is None):
                msg = _("must_enter_supervisor_if_registered_or_in_progress")
                form.add_error('inscription', msg)
                return render(request, "assistant_form_part3.html", {'assistant': assistant, 'mandate': mandate,
                                                                     'files': files, 'form': form})
            if current_assistant.inscription is None:
                msg = _("phd_inscription_choice_required")
                form.add_error('inscription', msg)
                return render(request, "assistant_form_part3.html", {'assistant': assistant, 'mandate': mandate,
                                                                     'files': files, 'form': form})
            if request.POST.get('person_id'):
                current_assistant.supervisor = person.find_by_id(request.POST.get('person_id'))
                current_assistant.save()
            else:
                form.save()
            return form_part3_edit(request)
        else:
            return render(request, "assistant_form_part3.html", {'assistant': assistant, 'mandate': mandate,
                                                                 'files': files, 'form': form})
    else:
        return form_part3_edit(request, msg=_("data_not_saved"))
Exemple #7
0
def add_reviewer_for_structure(request):
    current_entity = entity.find_by_id(request.POST.get("entity"))
    year = academic_year.current_academic_year().year
    if not reviewer.can_delegate_to_entity(reviewer.find_by_person(request.user.person), current_entity):
        return redirect('assistants_home')
    form = ReviewerDelegationForm(data=request.POST)
    if form.is_valid() and request.POST.get('person_id'):
        new_reviewer = form.save(commit=False)
        this_person = person.find_by_id(request.POST.get('person_id'))
        if reviewer.find_by_person(this_person):
            msg = _("person_already_reviewer_msg")
            form.add_error(None, msg)
            return render(request, "reviewer_add_reviewer.html", {
                'form': form,
                'year': year,
                'entity': current_entity,
                'reviewer': reviewer.find_by_person(request.user.person)
            })
        new_reviewer.person = this_person
        new_reviewer.save()
        html_template_ref = 'assistant_reviewers_startup_html'
        txt_template_ref = 'assistant_reviewers_startup_txt'
        send_message(person=this_person, html_template_ref=html_template_ref,
                     txt_template_ref=txt_template_ref)
        return redirect('reviewer_delegation')
    else:
        this_reviewer = reviewer.find_by_person(person=request.user.person)
        role = this_reviewer.role + '_ASSISTANT'
        form = ReviewerDelegationForm(initial={'entity': current_entity, 'year': year, 'role': role})
        return render(request, "reviewer_add_reviewer.html", {
            'form': form,
            'year': year,
            'entity': current_entity,
            'reviewer': reviewer.find_by_person(request.user.person)
        })
Exemple #8
0
def add_reviewer_for_structure(request):
    current_entity = entity.find_by_id(request.POST.get("entity"))
    year = academic_year.starting_academic_year().year
    current_reviewer = reviewer_eligible_to_delegate(
        reviewer.find_by_person(request.user.person),
        current_entity
    )
    if not current_reviewer:
        return redirect('assistants_home')

    form = ReviewerDelegationForm(data=request.POST)
    if form.is_valid() and request.POST.get('person_id'):
        new_reviewer = form.save(commit=False)
        new_reviewer.person = person.find_by_id(request.POST.get('person_id'))
        new_reviewer.save()
        send_message(
            person=new_reviewer.person,
            html_template_ref='assistant_reviewers_startup_html',
            txt_template_ref='assistant_reviewers_startup_txt'
        )
        return redirect('reviewer_delegation')

    role = current_reviewer.role + '_ASSISTANT'
    form = ReviewerDelegationForm(initial={'entity': current_entity, 'year': year, 'role': role})
    return render(request, "reviewer_add_reviewer.html", {
        'form': form,
        'year': year,
        'entity': current_entity,
        'reviewer': current_reviewer
    })
def form_part1_save(request):
    mandate = assistant_mandate.find_mandate_by_id(request.POST.get("mandate_id"))
    if mandate:
        assistant = mandate.assistant
        pers = person.find_by_id(assistant.person.id)
        addresses = person_address.find_by_person(pers)
        form = AssistantFormPart1(data=request.POST, instance=mandate)
        if form.is_valid():
            form.save()
            return form_part1_edit(request)
        else:
            return render(request, "assistant_form_part1.html", {'assistant': assistant, 'mandate': mandate,
                                                                 'addresses': addresses, 'form': form})
    else:
        return form_part1_edit(request, msg=_("data_not_saved"))
def form_part1_save(request):
    mandate = assistant_mandate.find_mandate_by_id(request.POST.get("mandate_id"))
    if mandate:
        assistant = mandate.assistant
        pers = person.find_by_id(assistant.person.id)
        addresses = person_address.find_by_person(pers)
        form = AssistantFormPart1(data=request.POST, instance=mandate)
        if form.is_valid():
            form.save()
            return form_part1_edit(request)
        else:
            return render(request, "assistant_form_part1.html", {'assistant': assistant, 'mandate': mandate,
                                                                 'addresses': addresses, 'form': form})
    else:
        return form_part1_edit(request, msg=_("data_not_saved"))
Exemple #11
0
def send_again(message_history_id):
    """
    send a message from message history again
    :param message_history_id The id of the message history to send again
    :return the sent message

    TO-DO : correction of send_message in osis-common to get the associated receiver , based on id and receiver model

    """
    message_history = message_history_mdl.find_by_id(message_history_id)
    person = person_mdl.find_by_id(message_history.receiver_id)
    if person:
        receiver = message_config.create_receiver(person.id, person.email, person.language)
        return message_service.send_again(receiver, message_history_id)
    else:
        return _('no_receiver_error')
Exemple #12
0
def reviewer_add(request):
    year = academic_year.current_academic_year().year
    if request.POST:
        form = ReviewerForm(data=request.POST)
        if form.is_valid():
            new_reviewer = form.save(commit=False)
            if request.POST.get('person_id'):
                this_person = person.find_by_id(request.POST.get('person_id'))
                if reviewer.find_by_person(this_person):
                    msg = _("person_already_reviewer_msg")
                    form.add_error(None, msg)
                    return render(request, "manager_add_reviewer.html", {'form': form, 'year': year})
                else:
                    new_reviewer.person = this_person
                    new_reviewer.save()
                    return redirect('reviewers_list')
        else:
            return render(request, "manager_add_reviewer.html", {'form': form, 'year': year})
    else:
        form = ReviewerForm(initial={'year': year})
        return render(request, "manager_add_reviewer.html", {'form': form, 'year': year})
Exemple #13
0
def reviewer_replace(request):
    year = academic_year.current_academic_year().year
    if request.POST:
        form = ReviewerReplacementForm(data=request.POST, prefix='rev')
        if form.is_valid():
            reviewer_to_replace = reviewer.find_by_id(form.cleaned_data.get('id'))
            if request.POST.get('person_id'):
                this_person = person.find_by_id(request.POST.get('person_id'))
                if reviewer.find_by_person(this_person):
                    msg = _("person_already_reviewer_msg")
                    form.add_error(None, msg)
                    return render(request, "manager_replace_reviewer.html", {'form': form,
                                                                             'reviewer': reviewer_to_replace,
                                                                             'year': year})
                else:
                    reviewer_to_replace.person = this_person
                    reviewer_to_replace.save()
                    return redirect('reviewers_list')
        else:
            return render(request, "manager_replace_reviewer.html", {'form': form, 'year': year})
    else:
        return redirect('reviewers_list')
def reviewer_replace(request):
    year = academic_year.current_academic_year().year
    form = ReviewerReplacementForm(data=request.POST, prefix='rev')
    reviewer_to_replace = reviewer.find_by_id(request.POST.get('reviewer_id'))
    entity = entity_version.get_last_version(reviewer_to_replace.entity)
    this_person = request.POST.get('person_id')
    if form.is_valid() and this_person:
        this_person = person.find_by_id(this_person)
        if reviewer.find_by_person(this_person):
            msg = _("person_already_reviewer_msg")
            form.add_error(None, msg)
        else:
            reviewer_to_replace.person = this_person
            reviewer_to_replace.save()
            return redirect('reviewers_list')
    else:
        msg = _("bad_person_msg")
        form.add_error(None, msg)
    return render(request, "manager_replace_reviewer.html", {'reviewer': reviewer_to_replace,
                                                             'entity': entity,
                                                             'year': year,
                                                             'form': form})
Exemple #15
0
def reviewer_replace(request):
    year = academic_year.current_academic_year().year
    form = ReviewerReplacementForm(data=request.POST, prefix='rev')
    reviewer_to_replace = reviewer.find_by_id(request.POST.get('reviewer_id'))
    entity = entity_version.get_last_version(reviewer_to_replace.entity)
    this_person = request.POST.get('person_id')
    if form.is_valid() and this_person:
        this_person = person.find_by_id(this_person)
        if reviewer.find_by_person(this_person):
            msg = _("person_already_reviewer_msg")
            form.add_error(None, msg)
        else:
            reviewer_to_replace.person = this_person
            reviewer_to_replace.save()
            return redirect('reviewers_list')
    else:
        msg = _("bad_person_msg")
        form.add_error(None, msg)
    return render(request, "manager_replace_reviewer.html", {'reviewer': reviewer_to_replace,
                                                             'entity': entity,
                                                             'year': year,
                                                             'form': form})
Exemple #16
0
def reviewer_replace(request):
    year = academic_year.starting_academic_year().year
    form = ReviewerReplacementForm(data=request.POST, prefix='rev')
    reviewer_to_replace = reviewer.find_by_id(request.POST.get('reviewer_id'))
    entity = entity_version.get_last_version(reviewer_to_replace.entity)
    this_person = request.POST.get('person_id')
    if form.is_valid() and this_person:
        this_person = person.find_by_id(this_person)
        reviewer_to_replace.person = this_person
        reviewer_to_replace.save()
        return redirect('reviewers_list')
    else:
        msg = _(
            "Please enter the last name and first name of the person you are looking for and select the "
            "corresponding choice in the drop-down list")
        form.add_error(None, msg)
    return render(
        request, "manager_replace_reviewer.html", {
            'reviewer': reviewer_to_replace,
            'entity': entity,
            'year': year,
            'form': form
        })
Exemple #17
0
def reviewer_add(request):
    year = academic_year.current_academic_year().year
    if request.POST:
        form = ReviewerForm(data=request.POST)
        this_person = request.POST.get('person_id')
        if form.is_valid() and this_person:
            this_person = person.find_by_id(this_person)
            new_reviewer = form.save(commit=False)
            if reviewer.find_by_person(this_person):
                msg = _("person_already_reviewer_msg")
                form.add_error(None, msg)
            if reviewer.find_by_entity_and_role(new_reviewer.entity, new_reviewer.role):
                msg = _("reviewer_with_same_role_already_exists_msg")
                form.add_error(None, msg)
            if not form.has_error(field=NON_FIELD_ERRORS):
                new_reviewer.person = this_person
                new_reviewer.save()
                return redirect('reviewers_list')
        else:
            msg = _("bad_person_msg")
            form.add_error(None, msg)
    else:
        form = ReviewerForm(initial={'year': year})
    return render(request, "manager_add_reviewer.html", {'form': form, 'year': year})
def reviewer_add(request):
    year = academic_year.current_academic_year().year
    if request.POST:
        form = ReviewerForm(data=request.POST)
        this_person = request.POST.get('person_id')
        if form.is_valid() and this_person:
            this_person = person.find_by_id(this_person)
            new_reviewer = form.save(commit=False)
            if reviewer.find_by_person(this_person):
                msg = _("person_already_reviewer_msg")
                form.add_error(None, msg)
            if reviewer.find_by_entity_and_role(new_reviewer.entity, new_reviewer.role):
                msg = _("reviewer_with_same_role_already_exists_msg")
                form.add_error(None, msg)
            if not form.has_error(field=NON_FIELD_ERRORS):
                new_reviewer.person = this_person
                new_reviewer.save()
                return redirect('reviewers_list')
        else:
            msg = _("bad_person_msg")
            form.add_error(None, msg)
    else:
        form = ReviewerForm(initial={'year': year})
    return render(request, "manager_add_reviewer.html", {'form': form, 'year': year})
Exemple #19
0
 def test_find_by_id(self):
     tmp_person = PersonFactory()
     db_person = person.find_by_id(tmp_person.id)
     self.assertIsNotNone(tmp_person.user)
     self.assertEqual(db_person.id, tmp_person.id)
     self.assertEqual(db_person.email, tmp_person.email)
Exemple #20
0
def add_reviewer_for_structure(request):
    entity_id = request.POST.get("entity_id")
    related_entity = entity.get_by_internal_id(entity_id)
    current_entity_version = entity_version.get_last_version(
        entity.get_by_internal_id(entity_id))
    year = academic_year.current_academic_year().year
    try:
        reviewer.can_delegate_to_entity(
            reviewer.find_by_person(request.user.person), related_entity)
    except:
        return redirect('assistants_home')
    if request.POST:
        form = ReviewerDelegationForm(data=request.POST)
        if form.is_valid():
            new_reviewer = form.save(commit=False)
            if request.POST.get('person_id'):
                this_person = person.find_by_id(request.POST.get('person_id'))
                try:
                    reviewer.find_by_person(this_person)
                    msg = _("person_already_reviewer_msg")
                    form.add_error(None, msg)
                    return render(
                        request, "reviewer_add_reviewer.html", {
                            'form':
                            form,
                            'year':
                            year,
                            'related_entity':
                            related_entity,
                            'current_entity_version':
                            current_entity_version,
                            'reviewer':
                            reviewer.find_by_person(request.user.person)
                        })
                except reviewer.Reviewer.DoesNotExist:
                    pass
                new_reviewer.person = this_person
                new_reviewer.save()
                html_template_ref = 'assistant_reviewers_startup_html'
                txt_template_ref = 'assistant_reviewers_startup_txt'
                send_message(person=this_person,
                             html_template_ref=html_template_ref,
                             txt_template_ref=txt_template_ref)
                return redirect('reviewer_delegation')
        else:
            this_reviewer = reviewer.find_by_person(person=request.user.person)
            if this_reviewer.role == reviewer_role.SUPERVISION:
                role = reviewer_role.SUPERVISION_ASSISTANT
            else:
                role = reviewer_role.RESEARCH_ASSISTANT
            form = ReviewerDelegationForm(initial={
                'entity': related_entity,
                'year': year,
                'role': role
            })
            reviewer_entity = entity_version.get_last_version(
                this_reviewer.entity)
            return render(
                request, "reviewer_add_reviewer.html", {
                    'form': form,
                    'year': year,
                    'related_entity': related_entity,
                    'entity': reviewer_entity,
                    'current_entity_version': current_entity_version,
                    'reviewer': reviewer.find_by_person(request.user.person)
                })