示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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 )
示例#4
0
    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 )
示例#5
0
    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' )
示例#6
0
    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')
示例#7
0
    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')
示例#8
0
    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' )
示例#9
0
    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' )
示例#10
0
    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')
示例#11
0
def get_tag_translation( request, tag ):
    return HttpResponse( json.dumps( { 'tag': tag, 'result': TagTranslation.translate( tag ) } ) )