def get_view(self, request): moderated_items = registry.get_by_user(request.user) ctx = { "moderated_item": registry.get_by_name(self.name), "moderated_items": moderated_items['items'], "moderator_tools": moderated_items['tools'] } lang = settings.LANGUAGE_CODE to_lang = TagTranslation.to_lang() if request.method == 'POST': for f, t in request.POST.items(): TagTranslation.create_translation(f, t) if request.is_ajax(): return HttpResponse(json.dumps({'success': True})) kwargs = {"%s__isnull" % to_lang: False} translated = [ t[lang] for t in TagTranslation.objects.filter(**kwargs).values(lang) ] ctx['items'] = Tag.objects.all().exclude( name__in=translated).order_by('weight') ctx['lang'] = lang ctx['to_lang'] = to_lang return render(request, 'moderation/tag_translation/list.html', ctx)
def get_view(self, request): moderated_items = registry.get_by_user(request.user) ctx = { "moderated_item": registry.get_by_name(self.name), "moderated_items": moderated_items['items'], "moderator_tools": moderated_items['tools'] } if request.method == 'POST': ctx['form'] = TagTranslationForm(request.POST) if ctx['form'].is_valid(): cleaned_data = ctx['form'].cleaned_data f = cleaned_data['f'] t = cleaned_data['t'] TagTranslation.create_translation(f, t) messages.add_message(request, messages.INFO, _("Tag translated!")) return redirect(self.get_absolute_url()) else: ctx['form'] = TagTranslationForm() return render(request, 'moderation/tag_translation/create.html', ctx)
def get_view( self, request ): moderated_items = registry.get_by_user( request.user ) ctx = { "moderated_item": registry.get_by_name( self.name ), "moderated_items": moderated_items['items'], "moderator_tools": moderated_items['tools'] } lang = settings.LANGUAGE_CODE to_lang = TagTranslation.to_lang() if request.method == 'POST': for f, t in request.POST.items(): TagTranslation.create_translation( f, t ) if request.is_ajax(): return HttpResponse( json.dumps( { 'success': True } ) ) kwargs = { "%s__isnull" % to_lang: False } translated = [ t[lang] for t in TagTranslation.objects.filter( **kwargs ).values( lang ) ] ctx['items'] = Tag.objects.all().exclude( name__in=translated ).order_by( 'weight' ) ctx['lang'] = lang ctx['to_lang'] = to_lang return render( request, 'moderation/tag_translation/list.html', ctx )
def get_view( self, request ): moderated_items = registry.get_by_user( request.user ) ctx = { "moderated_item": registry.get_by_name( self.name ), "moderated_items": moderated_items['items'], "moderator_tools": moderated_items['tools'] } if request.method == 'POST': ctx['form'] = TagTranslationForm( request.POST ) if ctx['form'].is_valid(): cleaned_data = ctx['form'].cleaned_data f = cleaned_data['f'] t = cleaned_data['t'] TagTranslation.create_translation( f, t ) messages.add_message( request, messages.INFO, _( "Tag translated!" ) ) return redirect( self.get_absolute_url() ) else: ctx['form'] = TagTranslationForm() return render( request, 'moderation/tag_translation/create.html', ctx )
def test_translation_3( self ): TagTranslation.create_translation( 'drama', 'dramat', 'en', 'pl' ) TagTranslation.create_translation( 'comedy', 'komedia', 'en', 'pl' ) self.film1.save_tags( "test test1", LANG="en", saved_by=2 ) self.film1.save_tags( "dramat komedia wampiry", LANG="pl", saved_by=2 ) self.assertEqual( get_tags_as_string( self.film1, 'pl' ), 'dramat,komedia,wampiry' ) self.assertEqual( get_tags_as_string( self.film1, 'en' ), 'comedy,drama,test,test1' )
def test_translation_3(self): TagTranslation.create_translation('drama', 'dramat', 'en', 'pl') TagTranslation.create_translation('comedy', 'komedia', 'en', 'pl') self.film1.save_tags("test test1", LANG="en", saved_by=2) self.film1.save_tags("dramat komedia wampiry", LANG="pl", saved_by=2) self.assertEqual(get_tags_as_string(self.film1, 'pl'), 'dramat,komedia,wampiry') self.assertEqual(get_tags_as_string(self.film1, 'en'), 'comedy,drama,test,test1')
def test_command(self): from django.db import connection, transaction from django.core.management import call_command from django.contrib.contenttypes.models import ContentType cursor = connection.cursor() query = """ INSERT INTO tagging_taggeditem ( tag_id, content_type_id, object_id ) VALUES( %d, %d, %d ) """ self.film1.save_tags("", LANG="pl", saved_by=2) self.film1.save_tags("", LANG="en", saved_by=2) self.assertEqual(get_tags_as_string(self.film1, 'pl'), '') self.assertEqual(get_tags_as_string(self.film1, 'en'), '') content_type_id = ContentType.objects.get_for_model(ObjectLocalized).pk en_object = ObjectLocalized.objects.get(parent=self.film1.pk, LANG="en") pl_object = ObjectLocalized.objects.get(parent=self.film1.pk, LANG="pl") for name in "en1", "en2": tag, created = Tag.all_objects.get_or_create(LANG="en", name=name) cursor.execute(query % (tag.id, content_type_id, en_object.pk)) for name in "polski", "polski2", "polski3": tag, created = Tag.all_objects.get_or_create(LANG="pl", name=name) cursor.execute(query % (tag.id, content_type_id, pl_object.pk)) transaction.commit() self.assertEqual(get_tags_as_string(self.film1, 'pl'), 'polski,polski2,polski3') self.assertEqual(get_tags_as_string(self.film1, 'en'), 'en1,en2') TagTranslation.create_translation('en1', 'pl1', 'en', 'pl') TagTranslation.create_translation('en2', 'pl2', 'en', 'pl') call_command('translate_tags') self.assertEqual(get_tags_as_string(self.film1, 'pl'), 'pl1,pl2,polski,polski2,polski3') self.assertEqual(get_tags_as_string(self.film1, 'en'), 'en1,en2')
def test_command( self ): from django.db import connection, transaction from django.core.management import call_command from django.contrib.contenttypes.models import ContentType cursor = connection.cursor() query = """ INSERT INTO tagging_taggeditem ( tag_id, content_type_id, object_id ) VALUES( %d, %d, %d ) """ self.film1.save_tags( "", LANG="pl", saved_by=2 ) self.film1.save_tags( "", LANG="en", saved_by=2 ) self.assertEqual( get_tags_as_string( self.film1, 'pl' ), '' ) self.assertEqual( get_tags_as_string( self.film1, 'en' ), '' ) content_type_id = ContentType.objects.get_for_model( ObjectLocalized ).pk en_object = ObjectLocalized.objects.get( parent=self.film1.pk, LANG="en" ) pl_object = ObjectLocalized.objects.get( parent=self.film1.pk, LANG="pl" ) for name in "en1", "en2": tag, created = Tag.all_objects.get_or_create( LANG="en", name=name ) cursor.execute( query % ( tag.id, content_type_id, en_object.pk ) ) for name in "polski", "polski2", "polski3": tag, created = Tag.all_objects.get_or_create( LANG="pl", name=name ) cursor.execute( query % ( tag.id, content_type_id, pl_object.pk ) ) transaction.commit() self.assertEqual( get_tags_as_string( self.film1, 'pl' ), 'polski,polski2,polski3' ) self.assertEqual( get_tags_as_string( self.film1, 'en' ), 'en1,en2' ) TagTranslation.create_translation( 'en1', 'pl1', 'en', 'pl' ) TagTranslation.create_translation( 'en2', 'pl2', 'en', 'pl' ) call_command( 'translate_tags' ) self.assertEqual( get_tags_as_string( self.film1, 'pl' ), 'pl1,pl2,polski,polski2,polski3' ) self.assertEqual( get_tags_as_string( self.film1, 'en' ), 'en1,en2' )
def test_translation_1( self ): self.assertEqual( get_tags_as_string( self.film1, 'pl' ), 'dramat,komedia' ) self.assertEqual( get_tags_as_string( self.film1, 'en' ), 'comedy,drama,wizards' ) TagTranslation.create_translation( 'drama', 'dramat', 'en', 'pl' ) TagTranslation.create_translation( 'comedy', 'komedia', 'en', 'pl' ) TagTranslation.create_translation( 'vampires', 'wampiry', 'en', 'pl' ) self.film1.save_tags( "dramat komedia wampiry", LANG="pl", saved_by=2 ) self.assertEqual( get_tags_as_string( self.film1, 'pl' ), 'dramat,komedia,wampiry' ) self.assertEqual( get_tags_as_string( self.film1, 'en' ), 'comedy,drama,vampires,wizards' )
def test_translation_1(self): self.assertEqual(get_tags_as_string(self.film1, 'pl'), 'dramat,komedia') self.assertEqual(get_tags_as_string(self.film1, 'en'), 'comedy,drama,wizards') TagTranslation.create_translation('drama', 'dramat', 'en', 'pl') TagTranslation.create_translation('comedy', 'komedia', 'en', 'pl') TagTranslation.create_translation('vampires', 'wampiry', 'en', 'pl') self.film1.save_tags("dramat komedia wampiry", LANG="pl", saved_by=2) self.assertEqual(get_tags_as_string(self.film1, 'pl'), 'dramat,komedia,wampiry') self.assertEqual(get_tags_as_string(self.film1, 'en'), 'comedy,drama,vampires,wizards')
def get_tag_translation( request, tag ): return HttpResponse( json.dumps( { 'tag': tag, 'result': TagTranslation.translate( tag ) } ) )