Beispiel #1
0
def project_translations(request, project_slug):
    """Project translations view and form view."""
    project = get_object_or_404(
        Project.objects.for_admin_user(request.user), slug=project_slug)
    form = TranslationForm(
        data=request.POST or None,
        parent=project,
        user=request.user,
    )

    if request.method == 'POST' and form.is_valid():
        form.save()
        project_dashboard = reverse(
            'projects_translations',
            args=[project.slug],
        )
        return HttpResponseRedirect(project_dashboard)

    lang_projects = project.translations.all()

    return render(
        request,
        'projects/project_translations.html',
        {
            'form': form,
            'project': project,
            'lang_projects': lang_projects,
        },
    )
    def test_list_only_owner_projects(self):
        form = TranslationForm(
            {'project': self.project_b_en.slug},
            parent=self.project_a_es,
            user=self.user_a,
        )
        self.assertTrue(form.is_valid())
        expected_projects = [
            self.project_b_en,
            self.project_c_br,
            self.project_d_ar,
            self.project_e_en,
            self.project_s_fr,
        ]
        self.assertEqual(
            {proj_slug for proj_slug, _ in form.fields['project'].choices},
            {project.slug for project in expected_projects},
        )

        form = TranslationForm(
            {'project': self.project_g_ga.slug},
            parent=self.project_f_ar,
            user=self.user_b,
        )
        self.assertTrue(form.is_valid())
        expected_projects = [
            self.project_g_ga,
            self.project_s_fr,
        ]
        self.assertEqual(
            {proj_slug for proj_slug, _ in form.fields['project'].choices},
            {project.slug for project in expected_projects},
        )
Beispiel #3
0
def project_translations(request, project_slug):
    """Project translations view and form view."""
    project = get_object_or_404(
        Project.objects.for_admin_user(request.user), slug=project_slug)
    form = TranslationForm(data=request.POST or None, parent=project)

    if request.method == 'POST' and form.is_valid():
        form.save()
        project_dashboard = reverse(
            'projects_translations',
            args=[project.slug],
        )
        return HttpResponseRedirect(project_dashboard)

    lang_projects = project.translations.all()

    return render(
        request,
        'projects/project_translations.html',
        {
            'form': form,
            'project': project,
            'lang_projects': lang_projects,
        },
    )
 def test_user_cant_add_project_with_same_lang(self):
     form = TranslationForm(
         {'project': self.project_b_en.slug},
         parent=self.project_e_en,
         user=self.user_a,
     )
     self.assertFalse(form.is_valid())
     self.assertIn(
         'Both projects can not have the same language (English).',
         ''.join(form.errors['project']))
    def test_no_nesting_translation(self):
        self.project_a_es.translations.add(self.project_b_en)
        self.project_a_es.save()

        form = TranslationForm(
            {'project': self.project_b_en.slug},
            parent=self.project_c_br,
            user=self.user_a,
        )
        self.assertFalse(form.is_valid())
        self.assertIn('Select a valid choice', ''.join(form.errors['project']))
 def test_user_cant_add_project_with_same_lang(self):
     form = TranslationForm(
         {'project': self.project_b_en.slug},
         parent=self.project_e_en,
         user=self.user_a,
     )
     self.assertFalse(form.is_valid())
     self.assertIn(
         'Both projects can not have the same language (English).',
         ''.join(form.errors['project']),
     )
 def test_user_cant_add_other_user_project(self):
     form = TranslationForm(
         {'project': self.project_f_ar.slug},
         parent=self.project_b_en,
         user=self.user_a,
     )
     self.assertFalse(form.is_valid())
     self.assertIn('Select a valid choice', ''.join(form.errors['project']))
     self.assertNotIn(
         self.project_f_ar,
         [proj_slug for proj_slug, _ in form.fields['project'].choices])
    def test_user_cant_add_project_with_same_lang_of_other_translation(self):
        self.project_a_es.translations.add(self.project_b_en)
        self.project_a_es.save()

        form = TranslationForm(
            {'project': self.project_e_en.slug},
            parent=self.project_a_es,
            user=self.user_a,
        )
        self.assertFalse(form.is_valid())
        self.assertIn('This project already has a translation for English.',
                      ''.join(form.errors['project']))
    def test_no_nesting_translation_case_2(self):
        self.project_a_es.translations.add(self.project_b_en)
        self.project_a_es.save()

        form = TranslationForm(
            {'project': self.project_a_es.slug},
            parent=self.project_c_br,
            user=self.user_a,
        )
        self.assertFalse(form.is_valid())
        self.assertIn('A project with existing translations can not',
                      ''.join(form.errors['project']))
    def test_not_already_translation(self):
        self.project_a_es.translations.add(self.project_b_en)
        self.project_a_es.save()

        form = TranslationForm(
            {'project': self.project_c_br.slug},
            parent=self.project_b_en,
            user=self.user_a,
        )
        self.assertFalse(form.is_valid())
        self.assertIn('is already a translation',
                      ''.join(form.errors['project']))
    def test_not_already_translation(self):
        self.project_a_es.translations.add(self.project_b_en)
        self.project_a_es.save()

        form = TranslationForm(
            {'project': self.project_c_br.slug},
            parent=self.project_b_en,
            user=self.user_a,
        )
        self.assertFalse(form.is_valid())
        self.assertIn(
            'is already a translation',
            ''.join(form.errors['project']),
        )
    def test_no_nesting_translation_case_2(self):
        self.project_a_es.translations.add(self.project_b_en)
        self.project_a_es.save()

        form = TranslationForm(
            {'project': self.project_a_es.slug},
            parent=self.project_c_br,
            user=self.user_a,
        )
        self.assertFalse(form.is_valid())
        self.assertIn(
            'A project with existing translations can not',
            ''.join(form.errors['project']),
        )
    def test_no_nesting_translation(self):
        self.project_a_es.translations.add(self.project_b_en)
        self.project_a_es.save()

        form = TranslationForm(
            {'project': self.project_b_en.slug},
            parent=self.project_c_br,
            user=self.user_a,
        )
        self.assertFalse(form.is_valid())
        self.assertIn(
            'Select a valid choice',
            ''.join(form.errors['project']),
        )
    def test_user_cant_add_project_with_same_lang_of_other_translation(self):
        self.project_a_es.translations.add(self.project_b_en)
        self.project_a_es.save()

        form = TranslationForm(
            {'project': self.project_e_en.slug},
            parent=self.project_a_es,
            user=self.user_a,
        )
        self.assertFalse(form.is_valid())
        self.assertIn(
            'This project already has a translation for English.',
            ''.join(form.errors['project']),
        )
 def test_user_cant_add_other_user_project(self):
     form = TranslationForm(
         {'project': self.project_f_ar.slug},
         parent=self.project_b_en,
         user=self.user_a,
     )
     self.assertFalse(form.is_valid())
     self.assertIn(
         'Select a valid choice',
         ''.join(form.errors['project']),
     )
     self.assertNotIn(
         self.project_f_ar,
         [proj_slug for proj_slug, _ in form.fields['project'].choices],
     )
Beispiel #16
0
def project_translations(request, project_slug):
    project = get_object_or_404(Project.objects.for_admin_user(request.user), slug=project_slug)
    form = TranslationForm(data=request.POST or None, parent=project)

    if request.method == "POST" and form.is_valid():
        form.save()
        project_dashboard = reverse("projects_translations", args=[project.slug])
        return HttpResponseRedirect(project_dashboard)

    lang_projects = project.translations.all()

    return render_to_response(
        "projects/project_translations.html",
        {"form": form, "project": project, "lang_projects": lang_projects},
        context_instance=RequestContext(request),
    )
Beispiel #17
0
def project_translations(request, project_slug):
    project = get_object_or_404(Project.objects.for_admin_user(request.user),
                                slug=project_slug)
    form = TranslationForm(data=request.POST or None, parent=project)

    if request.method == 'POST' and form.is_valid():
        form.save()
        project_dashboard = reverse('projects_translations',
                                    args=[project.slug])
        return HttpResponseRedirect(project_dashboard)

    lang_projects = project.translations.all()

    return render_to_response(
        'projects/project_translations.html',
        {'form': form, 'project': project, 'lang_projects': lang_projects},
        context_instance=RequestContext(request)
    )
    def test_excludes_existing_translations(self):
        self.project_a_es.translations.add(self.project_b_en)
        self.project_a_es.translations.add(self.project_c_br)
        self.project_a_es.save()

        form = TranslationForm(
            {'project': self.project_d_ar.slug},
            parent=self.project_a_es,
            user=self.user_a,
        )
        self.assertTrue(form.is_valid())
        expected_projects = [
            self.project_d_ar,
            self.project_e_en,
            self.project_s_fr,
        ]
        self.assertEqual(
            {proj_slug for proj_slug, _ in form.fields['project'].choices},
            {project.slug for project in expected_projects}
        )
    def test_excludes_existing_translations(self):
        self.project_a_es.translations.add(self.project_b_en)
        self.project_a_es.translations.add(self.project_c_br)
        self.project_a_es.save()

        form = TranslationForm(
            {'project': self.project_d_ar.slug},
            parent=self.project_a_es,
            user=self.user_a,
        )
        self.assertTrue(form.is_valid())
        expected_projects = [
            self.project_d_ar,
            self.project_e_en,
            self.project_s_fr,
        ]
        self.assertEqual(
            {proj_slug for proj_slug, _ in form.fields['project'].choices},
            {project.slug for project in expected_projects},
        )
    def test_list_only_owner_projects(self):
        form = TranslationForm(
            {'project': self.project_b_en.slug},
            parent=self.project_a_es,
            user=self.user_a,
        )
        self.assertTrue(form.is_valid())
        expected_projects = [
            self.project_b_en,
            self.project_c_br,
            self.project_d_ar,
            self.project_e_en,
            self.project_s_fr,
        ]
        self.assertEqual(
            {proj_slug for proj_slug, _ in form.fields['project'].choices},
            {project.slug for project in expected_projects}
        )

        form = TranslationForm(
            {'project': self.project_g_ga.slug},
            parent=self.project_f_ar,
            user=self.user_b,
        )
        self.assertTrue(form.is_valid())
        expected_projects = [
            self.project_g_ga,
            self.project_s_fr,
        ]
        self.assertEqual(
            {proj_slug for proj_slug, _ in form.fields['project'].choices},
            {project.slug for project in expected_projects}
        )