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 new_unit(request, project, component, lang): translation = get_translation(request, project, component, lang) if not request.user.has_perm('unit.add', translation): raise PermissionDenied() form = NewUnitForm(request.user, request.POST) if not form.is_valid(): show_form_errors(request, form) else: key = form.cleaned_data['key'] value = form.cleaned_data['value'][0] if translation.unit_set.filter(context=key).exists(): messages.error( request, _('Translation with this key seem to already exist!')) else: translation.new_unit(request, key, value) messages.success(request, _('New string has been added.')) return redirect(translation)
def show_translation(request, project, subproject, lang): obj = get_translation(request, project, subproject, lang) last_changes = Change.objects.for_translation(obj)[:10] # Get form form = get_upload_form(request.user, obj) # Is user allowed to do automatic translation? if can_automatic_translation(request.user, obj.subproject.project): 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} ) replace_form = None if can_translate(request.user, translation=obj): replace_form = ReplaceForm() return render( request, 'translation.html', { 'allow_index': True, 'object': obj, 'project': obj.subproject.project, 'form': form, 'autoform': autoform, 'search_form': search_form, 'review_form': review_form, 'replace_form': replace_form, 'new_unit_form': NewUnitForm(), 'last_changes': last_changes, 'last_changes_url': urlencode(obj.get_kwargs()), 'show_only_component': True, 'other_translations': Translation.objects.prefetch().filter( subproject__project=obj.subproject.project, language=obj.language, ).exclude( pk=obj.pk ), } )
def new_unit(request, project, component, lang): translation = get_translation(request, project, component, lang) if not request.user.has_perm('unit.add', translation): raise PermissionDenied() form = NewUnitForm(request.user, request.POST) if not form.is_valid(): show_form_errors(request, form) else: key = form.cleaned_data['key'] value = form.cleaned_data['value'][0] if translation.unit_set.filter(context=key).exists(): messages.error( request, _('Translation with this key seem to already exist!') ) else: translation.new_unit(request, key, value) messages.success( request, _('New string has been added.') ) return redirect(translation)
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), }, )
def show_translation(request, project, subproject, lang): obj = get_translation(request, project, subproject, lang) obj.stats.ensure_all() last_changes = Change.objects.for_translation(obj)[:10] # Get form form = get_upload_form(request.user, obj) # Is user allowed to do automatic translation? if can_automatic_translation(request.user, obj.subproject.project): 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 can_translate(request.user, translation=obj): replace_form = ReplaceForm() mass_state_form = MassStateForm(request.user, obj) else: replace_form = None mass_state_form = None return render( request, 'translation.html', { 'allow_index': True, 'object': obj, 'project': obj.subproject.project, 'form': form, 'autoform': autoform, 'search_form': search_form, 'review_form': review_form, 'replace_form': replace_form, 'mass_state_form': mass_state_form, 'new_unit_form': NewUnitForm(), 'last_changes': last_changes, 'last_changes_url': urlencode(obj.get_kwargs()), 'show_only_component': True, 'pending_fulltext': obj.unit_set.filter(id__in=IndexUpdate.objects.filter( to_delete=False).values('unitid')).exists(), 'other_translations': prefetch_stats(Translation.objects.prefetch().filter( subproject__project=obj.subproject.project, language=obj.language, ).exclude(pk=obj.pk)), })