Example #1
0
def upload_dictionary(request, project, lang):
    prj = get_project(request, project)
    lang = get_object_or_404(Language, code=lang)

    form = DictUploadForm(request.POST, request.FILES)
    if form.is_valid():
        try:
            count = Dictionary.objects.upload(
                request,
                prj,
                lang,
                request.FILES['file'],
                form.cleaned_data['method']
            )
            import_message(
                request, count,
                _('No words to import found in file.'),
                ungettext(
                    'Imported %d word from the uploaded file.',
                    'Imported %d words from the uploaded file.',
                    count
                )
            )
        except Exception as error:
            report_error(error, sys.exc_info(), request)
            messages.error(
                request, _('File upload has failed: %s') % force_text(error)
            )
    else:
        messages.error(request, _('Failed to process form!'))
    return redirect(
        'show_dictionary',
        project=prj.slug,
        lang=lang.code
    )
Example #2
0
def upload_dictionary(request, project, lang):
    prj = get_project(request, project)
    lang = get_object_or_404(Language, code=lang)

    form = DictUploadForm(request.POST, request.FILES)
    if form.is_valid():
        try:
            count = Dictionary.objects.upload(request, prj, lang,
                                              request.FILES['file'],
                                              form.cleaned_data['method'])
            if count == 0:
                messages.warning(request,
                                 _('No words to import found in file.'))
            else:
                messages.success(
                    request,
                    ungettext('Imported %d word from the uploaded file.',
                              'Imported %d words from the uploaded file.',
                              count) % count)
        except Exception as error:
            report_error(error, sys.exc_info(), request)
            messages.error(request,
                           _('File upload has failed: %s') % unicode(error))
    else:
        messages.error(request, _('Failed to process form!'))
    return redirect('show_dictionary', project=prj.slug, lang=lang.code)
Example #3
0
def upload_dictionary(request, project, lang):
    prj = get_project(request, project)
    if not request.user.has_perm('glossary.upload', prj):
        raise PermissionDenied()
    lang = get_object_or_404(Language, code=lang)

    form = DictUploadForm(request.POST, request.FILES)
    if form.is_valid():
        try:
            count = Dictionary.objects.upload(
                request, prj, lang, request.FILES['file'], form.cleaned_data['method']
            )
            import_message(
                request,
                count,
                _('No words to import found in file.'),
                ungettext(
                    'Imported %d word from the uploaded file.',
                    'Imported %d words from the uploaded file.',
                    count,
                ),
            )
        except Exception as error:
            report_error(error, request, prefix='Failed to handle upload')
            messages.error(request, _('File upload has failed: %s') % force_text(error))
    else:
        messages.error(request, _('Failed to process form!'))
    return redirect('show_dictionary', project=prj.slug, lang=lang.code)
Example #4
0
def upload_dictionary(request, project, lang):
    prj = get_project(request, project)
    if not request.user.has_perm("glossary.upload", prj):
        raise PermissionDenied()
    lang = get_object_or_404(Language, code=lang)

    form = DictUploadForm(request.POST, request.FILES)
    if form.is_valid():
        try:
            count = Dictionary.objects.upload(request, prj, lang,
                                              request.FILES["file"],
                                              form.cleaned_data["method"])
            import_message(
                request,
                count,
                _("No words to import found in file."),
                ngettext(
                    "Imported %d word from the uploaded file.",
                    "Imported %d words from the uploaded file.",
                    count,
                ),
            )
        except Exception as error:
            report_error(error, request, prefix="Failed to handle upload")
            messages.error(request,
                           _("File upload has failed: %s") % force_str(error))
    else:
        messages.error(request, _("Failed to process form!"))
    return redirect("show_dictionary", project=prj.slug, lang=lang.code)
Example #5
0
def upload_dictionary(request, project, lang):
    prj = get_object_or_404(Project, slug = project)
    lang = get_object_or_404(Language, code = lang)

    if request.method == 'POST':
        form = DictUploadForm(request.POST, request.FILES)
        if form.is_valid():
            count = Dictionary.objects.upload(prj, lang, request.FILES['file'], form.cleaned_data['overwrite'])
            if count == 0:
                messages.warning(request, _('No words to import found in file.'))
            else:
                messages.info(request, _('Imported %d words from file.') % count)
        else:
            messages.error(request, _('Failed to process form!'))
    else:
        messages.error(request, _('Failed to process form!'))
    return HttpResponseRedirect(reverse('weblate.trans.views.show_dictionary', kwargs = {'project': prj.slug, 'lang': lang.code}))
Example #6
0
def upload_dictionary(request, project, lang):
    prj = get_project(request, project)
    lang = get_object_or_404(Language, code=lang)

    if request.method == 'POST':
        form = DictUploadForm(request.POST, request.FILES)
        if form.is_valid():
            try:
                count = Dictionary.objects.upload(
                    request,
                    prj,
                    lang,
                    request.FILES['file'],
                    form.cleaned_data['method']
                )
                if count == 0:
                    messages.warning(
                        request,
                        _('No words to import found in file.')
                    )
                else:
                    messages.info(
                        request,
                        _('Imported %d words from file.') % count
                    )
            except Exception as error:
                messages.error(
                    request,
                    _('File upload has failed: %s' % unicode(error))
                )
        else:
            messages.error(request, _('Failed to process form!'))
    else:
        messages.error(request, _('Failed to process form!'))
    return redirect(
        'show_dictionary',
        project=prj.slug,
        lang=lang.code
    )
Example #7
0
def upload_dictionary(request, project, lang):
    prj = get_project(request, project)
    lang = get_object_or_404(Language, code=lang)

    form = DictUploadForm(request.POST, request.FILES)
    if form.is_valid():
        try:
            count = Dictionary.objects.upload(request, prj, lang, request.FILES["file"], form.cleaned_data["method"])
            if count == 0:
                messages.warning(request, _("No words to import found in file."))
            else:
                messages.success(
                    request,
                    ungettext(
                        "Imported %d word from the uploaded file.", "Imported %d words from the uploaded file.", count
                    )
                    % count,
                )
        except Exception as error:
            report_error(error, sys.exc_info(), request)
            messages.error(request, _("File upload has failed: %s") % unicode(error))
    else:
        messages.error(request, _("Failed to process form!"))
    return redirect("show_dictionary", project=prj.slug, lang=lang.code)
Example #8
0
def show_dictionary(request, project, lang):
    prj = get_project(request, project)
    lang = get_object_or_404(Language, code=lang)

    if request.method == 'POST' and can_add_dictionary(request.user, prj):
        form = WordForm(request.POST)
        if form.is_valid():
            Dictionary.objects.create(request,
                                      project=prj,
                                      language=lang,
                                      source=form.cleaned_data['source'],
                                      target=form.cleaned_data['target'])
        return HttpResponseRedirect(
            request.POST.get('next', request.get_full_path()))
    else:
        form = WordForm()

    uploadform = DictUploadForm()

    words = Dictionary.objects.filter(project=prj,
                                      language=lang).order_by('source')

    limit = request.GET.get('limit', 25)
    page = request.GET.get('page', 1)

    letterform = LetterForm(request.GET)

    if letterform.is_valid() and letterform.cleaned_data['letter'] != '':
        words = words.filter(
            source__istartswith=letterform.cleaned_data['letter'])
        letter = letterform.cleaned_data['letter']
    else:
        letter = ''

    paginator = Paginator(words, limit)

    try:
        words = paginator.page(page)
    except PageNotAnInteger:
        # If page is not an integer, deliver first page.
        words = paginator.page(1)
    except EmptyPage:
        # If page is out of range (e.g. 9999), deliver last page of results.
        words = paginator.page(paginator.num_pages)

    last_changes = Change.objects.last_changes(request.user).filter(
        dictionary__project=prj, dictionary__language=lang)[:10]

    return render(
        request, 'dictionary.html', {
            'title':
            dict_title(prj, lang),
            'project':
            prj,
            'language':
            lang,
            'page_obj':
            words,
            'form':
            form,
            'uploadform':
            uploadform,
            'letterform':
            letterform,
            'letter':
            letter,
            'last_changes':
            last_changes,
            'last_changes_url':
            urlencode({
                'project': prj.slug,
                'lang': lang.code,
                'glossary': 1
            }),
        })
Example #9
0
def show_dictionary(request, project, lang):
    prj = get_project(request, project)
    lang = get_object_or_404(Language, code=lang)

    if request.method == 'POST' and request.user.has_perm('glossary.add', prj):
        form = WordForm(request.POST)
        if form.is_valid():
            Dictionary.objects.create(
                request.user,
                project=prj,
                language=lang,
                source=form.cleaned_data['source'],
                target=form.cleaned_data['target']
            )
        return redirect_next(
            request.POST.get('next'), request.get_full_path()
        )
    form = WordForm()

    uploadform = DictUploadForm()

    words = Dictionary.objects.filter(
        project=prj, language=lang
    ).order_by(Lower('source'))

    letterform = LetterForm(request.GET)

    searchform = OneWordForm(request.GET)

    if searchform.is_valid() and searchform.cleaned_data['term'] != '':
        words = words.filter(
            source__icontains=searchform.cleaned_data['term']
        )
        search = searchform.cleaned_data['term']
    else:
        search = ''

    if letterform.is_valid() and letterform.cleaned_data['letter'] != '':
        words = words.filter(
            source__istartswith=letterform.cleaned_data['letter']
        )
        letter = letterform.cleaned_data['letter']
    else:
        letter = ''

    words = get_paginator(request, words)

    last_changes = Change.objects.last_changes(request.user).filter(
        dictionary__project=prj,
        dictionary__language=lang
    )[:10]

    return render(
        request,
        'dictionary.html',
        {
            'title': dict_title(prj, lang),
            'project': prj,
            'language': lang,
            'page_obj': words,
            'form': form,
            'query_string': urlencode({
                'term': search,
                'letter': letter
            }),
            'uploadform': uploadform,
            'letterform': letterform,
            'searchform': searchform,
            'letter': letter,
            'last_changes': last_changes,
            'last_changes_url': urlencode({
                'project': prj.slug,
                'lang': lang.code,
                'glossary': 1
            }),
        }
    )
Example #10
0
def show_dictionary(request, project, lang):
    prj = get_project(request, project)
    lang = get_object_or_404(Language, code=lang)

    if request.method == "POST" and request.user.has_perm("glossary.add", prj):
        form = WordForm(request.POST)
        if form.is_valid():
            Dictionary.objects.create(
                request.user,
                project=prj,
                language=lang,
                source=form.cleaned_data["source"],
                target=form.cleaned_data["target"],
            )
        return redirect_next(request.POST.get("next"), request.get_full_path())
    form = WordForm()

    uploadform = DictUploadForm()

    words = Dictionary.objects.filter(project=prj, language=lang).order()

    letterform = LetterForm(request.GET)

    searchform = OneWordForm(request.GET)

    if searchform.is_valid() and searchform.cleaned_data["term"] != "":
        words = words.filter(source__search=searchform.cleaned_data["term"])
        search = searchform.cleaned_data["term"]
    else:
        search = ""

    if letterform.is_valid() and letterform.cleaned_data["letter"] != "":
        words = words.filter(
            source__istartswith=letterform.cleaned_data["letter"])
        letter = letterform.cleaned_data["letter"]
    else:
        letter = ""

    words = get_paginator(request, words)

    last_changes = (Change.objects.last_changes(request.user).filter(
        project=prj, language=lang).exclude(dictionary=None)[:10])

    return render(
        request,
        "dictionary.html",
        {
            "title":
            dict_title(prj, lang),
            "project":
            prj,
            "language":
            lang,
            "page_obj":
            words,
            "form":
            form,
            "query_string":
            urlencode({
                "term": search,
                "letter": letter
            }),
            "uploadform":
            uploadform,
            "letterform":
            letterform,
            "searchform":
            searchform,
            "letter":
            letter,
            "last_changes":
            last_changes,
            "last_changes_url":
            urlencode((
                ("project", prj.slug),
                ("lang", lang.code),
                ("action", Change.ACTION_DICTIONARY_NEW),
                ("action", Change.ACTION_DICTIONARY_EDIT),
                ("action", Change.ACTION_DICTIONARY_UPLOAD),
            )),
        },
    )