Exemple #1
0
def _get_initial(learning_unit_year, proposal, type_proposal, user_person):
    if not proposal:
        return {
            'learning_unit_year': learning_unit_year,
            'type': type_proposal,
            'state': compute_proposal_state(user_person),
            'author': user_person
        }
Exemple #2
0
def _proposal_create(data_proposal, new_learning_unit_year, person):
    creation.create_learning_unit_proposal({
        'person':
        person,
        'folder_entity':
        data_proposal['entity'],
        'folder_id':
        data_proposal['folder_id'],
        'learning_unit_year':
        new_learning_unit_year,
        'state_proposal':
        compute_proposal_state(person),
        'type_proposal':
        ProposalType.CREATION.name,
        'initial_data': {}
    })
Exemple #3
0
def learning_unit_modification_proposal(request, learning_unit_year_id):
    learning_unit_year = get_object_or_404(LearningUnitYear,
                                           id=learning_unit_year_id)
    user_person = get_object_or_404(Person, user=request.user)
    initial_data = compute_form_initial_data(learning_unit_year)
    proposal = proposal_learning_unit.find_by_learning_unit_year(
        learning_unit_year)

    form = LearningUnitProposalModificationForm(
        request.POST or None,
        initial=initial_data,
        instance=proposal,
        learning_unit=learning_unit_year.learning_unit,
        person=user_person)

    if form.is_valid():
        type_proposal = business_proposal.compute_proposal_type(
            form.changed_data_for_fields_that_can_be_modified,
            initial_data.get("type"))
        form.save(learning_unit_year, type_proposal,
                  compute_proposal_state(user_person))

        display_success_messages(
            request,
            _("success_modification_proposal").format(
                _(type_proposal), learning_unit_year.acronym))

        return redirect('learning_unit',
                        learning_unit_year_id=learning_unit_year.id)

    return layout.render(
        request, 'learning_unit/proposal/create_modification.html', {
            'learning_unit_year': learning_unit_year,
            'person': user_person,
            'form': form,
            'experimental_phase': True
        })
Exemple #4
0
    def test_when_person_is_nor_a_faculty_manager_nor_a_central_manager(self):
        person = PersonFactory()

        expected_state = proposal_state.ProposalState.FACULTY.name
        actual_state = compute_proposal_state(person)
        self.assertEqual(expected_state, actual_state)
Exemple #5
0
    def test_when_person_is_central_manager(self):
        central_manager = create_person_in_group(CENTRAL_MANAGER_GROUP)

        expected_state = proposal_state.ProposalState.CENTRAL.name
        actual_state = compute_proposal_state(central_manager)
        self.assertEqual(expected_state, actual_state)
Exemple #6
0
    def test_when_person_is_faculty_manager(self):
        faculty_manager = create_person_in_group(FACULTY_MANAGER_GROUP)

        expected_state = proposal_state.ProposalState.FACULTY.name
        actual_state = compute_proposal_state(faculty_manager)
        self.assertEqual(expected_state, actual_state)