Beispiel #1
0
def new_language(request, project, subproject):
    obj = get_subproject(request, project, subproject)

    form = NewLanguageForm(request.POST)

    if form.is_valid():
        language = Language.objects.get(code=form.cleaned_data['lang'])
        same_lang = obj.translation_set.filter(language=language)
        if same_lang.exists():
            messages.error(
                request,
                _('Chosen translation already exists in this project!')
            )
        elif obj.project.new_lang == 'contact':
            notify_new_language(obj, language, request.user)
            messages.info(
                request,
                _(
                    "A request for a new translation has been "
                    "sent to the project's maintainers."
                )
            )
        elif obj.project.new_lang == 'add':
            obj.add_new_language(language, request)
    else:
        messages.error(
            request,
            _('Failed to process new translation request!')
        )

    return HttpResponseRedirect(reverse(
        'subproject',
        kwargs={'subproject': obj.slug, 'project': obj.project.slug}
    ))
Beispiel #2
0
    def test_notify_new_language(self):
        notify_new_language(
            self.subproject,
            Language.objects.filter(code='de'),
            self.second_user()
        )

        # Check mail (second one is for admin)
        self.assertEqual(len(mail.outbox), 2)
        self.assertEqual(
            mail.outbox[0].subject,
            '[Weblate] New language request in Test/Test'
        )
Beispiel #3
0
def new_language(request, project, subproject):
    obj = get_subproject(request, project, subproject)

    form = NewLanguageForm(request.POST)

    if form.is_valid():
        language = Language.objects.get(code=form.cleaned_data["lang"])
        same_lang = obj.translation_set.filter(language=language)
        if same_lang.exists():
            messages.error(request, _("Chosen translation already exists in this project!"))
        elif obj.project.new_lang == "contact":
            notify_new_language(obj, language, request.user)
            messages.info(request, _("A request for a new translation has been " "sent to the project's maintainers."))
        elif obj.project.new_lang == "add":
            obj.add_new_language(language, request)
    else:
        messages.error(request, _("Failed to process new translation request!"))

    return redirect("subproject", subproject=obj.slug, project=obj.project.slug)