Beispiel #1
0
def _update_group(request, education_group_year, root,
                  groupelementyear_formset):
    # TODO :: IMPORTANT :: Fix urls patterns to get the GroupElementYear_id and the root_id in the url path !
    # TODO :: IMPORTANT :: Need to update form to filter on list of parents, not only on the first direct parent
    form_education_group_year = GroupForm(request.POST or None,
                                          instance=education_group_year,
                                          user=request.user)
    html_page = "education_group/update_groups.html"
    has_content = len(groupelementyear_formset.queryset) > 0
    if request.method == 'POST':
        if form_education_group_year.is_valid() and (
                not has_content or groupelementyear_formset.is_valid()):
            return _common_success_redirect(
                request, form_education_group_year, root,
                groupelementyear_formset if has_content else None)
        else:
            show_error_message_for_form_invalid(request)

    return render(
        request, html_page, {
            "education_group_year":
            education_group_year,
            "form_education_group_year":
            form_education_group_year.forms[forms.ModelForm],
            "form_education_group":
            form_education_group_year.forms[EducationGroupModelForm],
            'group_element_years':
            groupelementyear_formset,
            'show_minor_major_option_table':
            education_group_year.is_minor_major_option_list_choice
        })
Beispiel #2
0
    def test_create_with_parent(self, mock_find_authorized_types):
        parent = GroupFactory()
        form = GroupForm(data=self.post_data, parent=parent, user=self.user, education_group_type=self.egt)

        self.assertTrue(form.is_valid(), form.errors)

        education_group_year = form.save()

        self.assertTrue(GroupElementYear.objects.get(child_branch=education_group_year, parent=parent))
Beispiel #3
0
    def test_create(self):
        form = GroupForm(data=self.post_data, parent=None)

        self.assertTrue(form.is_valid(), form.errors)

        education_group_year = form.save()

        self.assertEqual(education_group_year.education_group.start_year,
                         self.expected_educ_group_year.academic_year.year)
        self.assertIsNone(education_group_year.education_group.end_year)
Beispiel #4
0
def _update_group(request, education_group_year, root):
    # TODO :: IMPORTANT :: Fix urls patterns to get the GroupElementYear_id and the root_id in the url path !
    # TODO :: IMPORTANT :: Need to update form to filter on list of parents, not only on the first direct parent
    form_education_group_year = GroupForm(request.POST or None,
                                          instance=education_group_year)
    html_page = "education_group/update_groups.html"

    if form_education_group_year.is_valid():
        return _common_success_redirect(request,
                                        form_education_group_year.save(), root)

    return layout.render(
        request, html_page, {
            "education_group_year":
            education_group_year,
            "form_education_group_year":
            form_education_group_year.forms[forms.ModelForm],
        })
Beispiel #5
0
def create_education_group(request, category=None, parent_id=None):
    parent = get_object_or_404(EducationGroupYear,
                               id=parent_id) if parent_id is not None else None

    forms_by_category = {
        education_group_categories.GROUP:
        GroupForm(request.POST or None, parent=parent),
        education_group_categories.TRAINING:
        TrainingForm(request.POST or None, parent=parent),
        education_group_categories.MINI_TRAINING:
        MiniTrainingForm(request.POST or None, parent=parent),
    }

    form_education_group_year = forms_by_category.get(category)

    if form_education_group_year.is_valid():
        education_group_year = form_education_group_year.save()

        parent_id = parent.pk if parent else education_group_year.pk

        success_msg = create_success_message_for_creation_education_group_year(
            parent_id, education_group_year)
        display_success_messages(request, success_msg, extra_tags='safe')

        url = reverse("education_group_read",
                      args=[parent_id, education_group_year.pk])

        return redirect(url)

    templates_by_category = {
        education_group_categories.GROUP:
        "education_group/create_groups.html",
        education_group_categories.TRAINING:
        "education_group/create_trainings.html",
        education_group_categories.MINI_TRAINING:
        "education_group/create_mini_trainings.html",
    }

    return layout.render(
        request, templates_by_category.get(category), {
            "form_education_group_year":
            form_education_group_year.forms[forms.ModelForm],
            "form_education_group":
            form_education_group_year.forms[EducationGroupModelForm],
            "parent":
            parent
        })
Beispiel #6
0
 def test_group_doesnt_have_post_save_method(self):
     self.parent_education_group_year.education_group_type = self.education_group_type
     instance = self.parent_education_group_year
     form = GroupForm(data={}, user=self.user, instance=instance)
     self.assertFalse(hasattr(form, '_post_save'))