def download_translation_format(request, project, component, lang): obj = get_translation(request, project, component, lang) form = DownloadForm(request.GET) if not form.is_valid(): show_form_errors(request, form) return redirect(obj) units = obj.unit_set.search( form.cleaned_data, translation=obj, ) return download_translation_file(obj, form.cleaned_data['format'], units)
def download_translation(request, project, component, lang): obj = get_translation(request, project, component, lang) kwargs = {} if "format" in request.GET or "q" in request.GET: form = DownloadForm(request.GET) if not form.is_valid(): show_form_errors(request, form) return redirect(obj) kwargs["units"] = obj.unit_set.search(form.cleaned_data.get("q", "")) kwargs["fmt"] = form.cleaned_data["format"] return download_translation_file(obj, **kwargs)
def show_translation(request, project, component, lang): obj = get_translation(request, project, component, lang) obj.stats.ensure_all() last_changes = Change.objects.prefetch().order().filter( translation=obj)[:10] user = request.user # Get form form = get_upload_form(user, obj) search_form = SearchForm(request.user) return render( request, 'translation.html', { 'allow_index': True, 'object': obj, 'project': obj.component.project, 'form': form, 'download_form': DownloadForm(auto_id="id_dl_%s"), 'autoform': optional_form( AutoForm, user, 'translation.auto', obj, obj=obj.component), 'search_form': search_form, 'replace_form': optional_form(ReplaceForm, user, 'unit.edit', obj), 'bulk_state_form': optional_form(BulkStateForm, user, 'translation.auto', obj, user=user, obj=obj), 'new_unit_form': NewUnitForm(user, initial={'value': Unit(translation=obj, id_hash=-1)}), 'whiteboard_form': optional_form(WhiteboardForm, user, 'component.edit', obj), 'delete_form': optional_form(DeleteForm, user, 'translation.delete', obj, obj=obj), 'last_changes': last_changes, 'last_changes_url': urlencode(obj.get_reverse_url_kwargs()), 'other_translations': prefetch_stats(Translation.objects.prefetch().filter( component__project=obj.component.project, language=obj.language).exclude(pk=obj.pk)), 'exporters': list_exporters(obj), }, )
def download_translation(request, project, component, lang): obj = get_translation(request, project, component, lang) if not request.user.has_perm("translation.download", obj): raise PermissionDenied() kwargs = {} if "format" in request.GET or "q" in request.GET: form = DownloadForm(request.GET) if not form.is_valid(): show_form_errors(request, form) return redirect(obj) kwargs["query_string"] = form.cleaned_data.get("q", "") kwargs["fmt"] = form.cleaned_data["format"] return download_translation_file(request, obj, **kwargs)
def download_translation(request, project, component, lang): obj = get_translation(request, project, component, lang) kwargs = {} if 'format' in request.GET or 'type' in request.GET: form = DownloadForm(request.GET) if not form.is_valid(): show_form_errors(request, form) return redirect(obj) kwargs['units'] = obj.unit_set.search( form.cleaned_data, translation=obj, ) kwargs['fmt'] = form.cleaned_data['format'] return download_translation_file(obj, **kwargs)
def download_translation(request, project, component, lang): obj = get_translation(request, project, component, lang) kwargs = {} if "format" in request.GET or "q" in request.GET: form = DownloadForm(request.GET) if not form.is_valid(): show_form_errors(request, form) return redirect(obj) kwargs["units"] = (obj.unit_set.search( form.cleaned_data.get("q", ""), project=obj.component.project).distinct().order_by( "position").prefetch_full()) kwargs["fmt"] = form.cleaned_data["format"] return download_translation_file(request, obj, **kwargs)
def show_translation(request, project, component, lang): obj = get_translation(request, project, component, lang) obj.stats.ensure_all() last_changes = Change.objects.prefetch().filter(translation=obj)[:10] user = request.user # Get form form = get_upload_form(user, obj) # Search form for everybody search_form = SearchForm() # Review form for logged in users if user.is_anonymous: review_form = None else: review_form = ReviewForm( initial={'exclude_user': user.username} ) return render( request, 'translation.html', { 'allow_index': True, 'object': obj, 'project': obj.component.project, 'form': form, 'download_form': DownloadForm(), 'autoform': optional_form( AutoForm, user, 'translation.auto', obj, user=user, obj=obj ), 'search_form': search_form, 'review_form': review_form, 'replace_form': optional_form(ReplaceForm, user, 'unit.edit', obj), 'bulk_state_form': optional_form( BulkStateForm, user, 'translation.auto', obj, user=user, obj=obj ), 'new_unit_form': NewUnitForm( user, initial={ 'value': Unit(translation=obj, id_hash=-1), }, ), 'whiteboard_form': optional_form( WhiteboardForm, user, 'component.edit', obj ), 'delete_form': optional_form( DeleteForm, user, 'translation.delete', obj, obj=obj ), 'last_changes': last_changes, 'last_changes_url': urlencode(obj.get_reverse_url_kwargs()), 'show_only_component': True, 'other_translations': prefetch_stats( Translation.objects.prefetch().filter( component__project=obj.component.project, language=obj.language, ).exclude( pk=obj.pk ) ), 'exporters': list_exporters(obj), } )
def show_translation(request, project, component, lang): obj = get_translation(request, project, component, lang) obj.stats.ensure_all() last_changes = Change.objects.prefetch().order().filter( translation=obj)[:10] user = request.user # Get form form = get_upload_form(user, obj) search_form = SearchForm(request.user) # Translations to same language from other components in this project other_translations = prefetch_stats( list(Translation.objects.prefetch().filter( component__project=obj.component.project, language=obj.language).exclude(pk=obj.pk))) # Include ghost translations for other components, this # adds quick way to create translations in other components existing = { translation.component.slug for translation in other_translations } existing.add(obj.component.slug) for test_component in obj.component.project.component_set.filter_access( user).exclude(slug__in=existing): if test_component.can_add_new_language(user): other_translations.append( GhostTranslation(test_component, obj.language)) # Limit the number of other components displayed to 10, preferring untranslated ones other_translations = sorted(other_translations, key=lambda t: t.stats.translated_percent)[:10] return render( request, "translation.html", { "allow_index": True, "object": obj, "project": obj.component.project, "form": form, "download_form": DownloadForm(auto_id="id_dl_%s"), "autoform": optional_form( AutoForm, user, "translation.auto", obj, obj=obj.component), "search_form": search_form, "replace_form": optional_form(ReplaceForm, user, "unit.edit", obj), "bulk_state_form": optional_form( BulkEditForm, user, "translation.auto", obj, user=user, obj=obj, project=obj.component.project, auto_id="id_bulk_%s", ), "new_unit_form": NewUnitForm(user, initial={"value": Unit(translation=obj, id_hash=-1)}), "announcement_form": optional_form(AnnouncementForm, user, "component.edit", obj), "delete_form": optional_form(TranslationDeleteForm, user, "translation.delete", obj, obj=obj), "last_changes": last_changes, "last_changes_url": urlencode(obj.get_reverse_url_kwargs()), "other_translations": other_translations, "exporters": EXPORTERS.list_exporters(obj), }, )
def show_translation(request, project, component, lang): obj = get_translation(request, project, component, lang) obj.stats.ensure_all() last_changes = Change.objects.prefetch().filter(translation=obj)[:10] # Get form form = get_upload_form(request.user, obj) # Is user allowed to do automatic translation? if request.user.has_perm('translation.auto', obj): mass_state_form = MassStateForm(request.user, obj) else: mass_state_form = None # Is user allowed to do automatic translation? if request.user.has_perm('translation.auto', obj): autoform = AutoForm(obj, request.user) else: autoform = None # Search form for everybody search_form = SearchForm() # Review form for logged in users if request.user.is_anonymous: review_form = None else: review_form = ReviewForm( initial={'exclude_user': request.user.username}) if request.user.has_perm('unit.edit', obj): replace_form = ReplaceForm() else: replace_form = None return render( request, 'translation.html', { 'allow_index': True, 'object': obj, 'project': obj.component.project, 'form': form, 'download_form': DownloadForm(), 'autoform': autoform, 'search_form': search_form, 'review_form': review_form, 'replace_form': replace_form, 'mass_state_form': mass_state_form, 'new_unit_form': NewUnitForm( request.user, initial={ 'value': Unit(translation=obj, id_hash=-1), }, ), 'last_changes': last_changes, 'last_changes_url': urlencode(obj.get_reverse_url_kwargs()), 'show_only_component': True, 'other_translations': prefetch_stats(Translation.objects.prefetch().filter( component__project=obj.component.project, language=obj.language, ).exclude(pk=obj.pk)), 'exporters': list_exporters(), })
def show_translation(request, project, component, lang): obj = get_translation(request, project, component, lang) obj.stats.ensure_all() last_changes = Change.objects.prefetch().order().filter( translation=obj)[:10] user = request.user # Get form form = get_upload_form(user, obj) search_form = SearchForm(request.user) return render( request, "translation.html", { "allow_index": True, "object": obj, "project": obj.component.project, "form": form, "download_form": DownloadForm(auto_id="id_dl_%s"), "autoform": optional_form( AutoForm, user, "translation.auto", obj, obj=obj.component), "search_form": search_form, "replace_form": optional_form(ReplaceForm, user, "unit.edit", obj), "bulk_state_form": optional_form( BulkEditForm, user, "translation.auto", obj, user=user, obj=obj, project=obj.component.project, auto_id="id_bulk_%s", ), "new_unit_form": NewUnitForm(user, initial={"value": Unit(translation=obj, id_hash=-1)}), "announcement_form": optional_form(AnnouncementForm, user, "component.edit", obj), "delete_form": optional_form(DeleteForm, user, "translation.delete", obj, obj=obj), "last_changes": last_changes, "last_changes_url": urlencode(obj.get_reverse_url_kwargs()), "other_translations": prefetch_stats(Translation.objects.prefetch().filter( component__project=obj.component.project, language=obj.language).exclude(pk=obj.pk)), "exporters": list_exporters(obj), }, )