Пример #1
0
 def test_register_site(self):
     "Check register with site"
     self.assertFalse(self.model in self.site._registry)
     tag_admin.register(self.model, self.admin, site=self.site)
     self.assertTrue(self.model in self.site._registry)
     ma = self.site._registry[self.model]
     self.assertIsInstance(ma, tag_admin.TaggedModelAdmin)
Пример #2
0
 def test_register_tag_model(self):
     "Check register tag model creates correct admin class"
     self.assertFalse(self.model_singletag in self.site._registry)
     tag_admin.register(self.model_singletag, site=self.site)
     self.assertTrue(self.model_singletag in self.site._registry)
     ma = self.site._registry[self.model_singletag]
     self.assertIsInstance(ma, tag_admin.TagModelAdmin)
Пример #3
0
 def test_register_auto(self):
     "Check register without admin dynamically creates admin class"
     self.assertFalse(self.model in self.site._registry)
     tag_admin.register(self.model, site=self.site)
     self.assertTrue(self.model in self.site._registry)
     ma = self.site._registry[self.model]
     self.assertIsInstance(ma, tag_admin.TaggedModelAdmin)
Пример #4
0
 def test_register_tag_tree_model(self):
     "Check register tag tree model creates correct admin class"
     tag_model = test_models.TreeTest.tags.tag_model
     self.assertFalse(tag_model in self.site._registry)
     tag_admin.register(tag_model, site=self.site)
     self.assertTrue(tag_model in self.site._registry)
     ma = self.site._registry[tag_model]
     self.assertIsInstance(ma, tag_admin.TagModelAdmin)
Пример #5
0
 def setUpExtra(self):
     self.admin = test_admin.SimpleMixedTestAdmin
     self.model = test_models.SimpleMixedTest
     self.model_singletag = self.model.singletag.tag_model
     self.model_tags = self.model.tags.tag_model
     self.site = admin.AdminSite(name="tagulous_admin")
     tag_admin.register(self.model, self.admin, site=self.site)
     self.ma = self.site._registry[self.model]
     self.cl = None
Пример #6
0
 def test_register_models(self):
     "Check register refuses multiple models"
     with self.assertRaises(exceptions.ImproperlyConfigured) as cm:
         tag_admin.register([self.model, self.model],
                            self.admin,
                            site=self.site)
     self.assertEqual(
         str(cm.exception),
         "Tagulous can only register a single model with admin.",
     )
     self.assertFalse(self.model in self.site._registry)
Пример #7
0
    def setUpExtra(self):
        self.site = admin.AdminSite(name="tagulous_admin")
        tag_admin.register(self.model,
                           admin_class=self.admin_cls,
                           site=self.site)
        self.ma = self.site._registry[self.model]
        self.cl = None

        # Set up client
        User.objects.create_superuser("test", "*****@*****.**", "user")
        result = self.client.login(username="******", password="******")
        self.assertEqual(result, True)
Пример #8
0
 def test_register_options(self):
     "Check register with options dynamically creates admin class"
     self.assertFalse(self.model in self.site._registry)
     tag_admin.register(self.model,
                        self.admin,
                        site=self.site,
                        list_display=["name"])
     self.assertTrue(self.model in self.site._registry)
     ma = self.site._registry[self.model]
     self.assertIsInstance(ma, tag_admin.TaggedModelAdmin)
     self.assertSequenceEqual(ma.get_list_display(self.mock_request()),
                              ["name"])
Пример #9
0
    def test_register_no_site(self):
        "Check register without site"
        # Replace admin.site with our own
        old_admin_site = admin.site
        admin.site = self.site
        self.assertFalse(self.model in self.site._registry)
        tag_admin.register(self.model, self.admin)
        self.assertTrue(self.model in self.site._registry)
        ma = self.site._registry[self.model]
        self.assertIsInstance(ma, tag_admin.TaggedModelAdmin)

        # Return admin.site
        admin.site = old_admin_site
Пример #10
0
 def test_register_tag_model_class_properties(self):
     """
     Check list_display, list_filter, exclude and actions can be set in a
     tag modeladmin which doesn't explicitly subclass TagModelAdmin
     """
     # register class SimpleMixedTestTagsAdmin(admin.ModelAdmin):
     # against self.model
     self.assertFalse(self.model.singletag.tag_model in self.site._registry)
     tag_admin.register(
         self.model.singletag.tag_model,
         test_admin.SimpleMixedTestTagsAdmin,
         site=self.site,
     )
     self.assertTrue(self.model.singletag.tag_model in self.site._registry)
     ma = self.site._registry[self.model.singletag.tag_model]
     self.assertIsInstance(ma, tag_admin.TagModelAdmin)
     self.assertEqual(ma.list_display, ["name"])
     self.assertEqual(ma.list_filter, ["count"])
     self.assertEqual(ma.exclude, ["name"])
     self.assertEqual(ma.actions, [])
Пример #11
0
from django.contrib import admin
from tagulous.admin import register
from . import models


class DocumentAdmin(admin.ModelAdmin):
    list_display = ('title', 'tags', 'visible')
    list_filter = ('visible', )


register(models.Document, DocumentAdmin)
Пример #12
0
    fields = ['caption','image',  'video_url', 'image_tag',]
    readonly_fields = ['image_tag']


class ArtAdmin(admin.ModelAdmin):
    list_display = ['id', 'title', 'year', 'tags', 'sd_type', 'is_visible', 'image_tag']
    # inlines = [
    #     ProtfolioInline,
    # ]
    #exclude = ('media',)
    list_editable = ['title', 'sd_type','year',  'is_visible',]
    fields = ['sd_type', 'title', 'project', 'year', 'tags', 'description',  'media', 'image_tag']
    readonly_fields = ['image_tag']
    save_as = True
tagulous_admin.register(models.Art, ArtAdmin)


class EventAdmin(admin.ModelAdmin):
    def formfield_for_dbfield(self, db_field, **kwargs):
        if db_field.attname == "description":
            kwargs['widget'] = CodeMirrorEditor(options={'mode': 'htmlmixed', 'lineNumbers': True},
                                                modes=['css', 'xml', 'javascript', 'htmlmixed'])
        return super(EventAdmin, self).formfield_for_dbfield(db_field, **kwargs)

    list_display = ['start_date', 'slug', 'title', 'tags', 'is_visible','image_tag']
    # inlines = [
    #     ProtfolioInline,
    # ]
    #exclude = ('media',]
    list_editable = ['is_visible',]
Пример #13
0
 def setUpExtra(self):
     self.setUpModels()
     self.site = admin.AdminSite(name="tagulous_admin")
     tag_admin.register(self.model, site=self.site)
     self.ma = self.site._registry[self.model]
     self.cl = None
Пример #14
0
    model = PublicationScore
    extra = 0


class PublicationPostInLine(admin.TabularInline):
    model = Comment
    extra = 0


class PublicationAdmin(admin.ModelAdmin):
    inlines = [
        PublicationImageInLine,
        ProsAndConsInLine,
        PublicationScoreInLine,
        PublicationPostInLine
    ]

    # def get_inline_formsets(self, request, formsets, inline_instances, obj=None):
    #     print(formsets[0].data)
    #

    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == "author":
            kwargs["queryset"] = User.objects.filter(is_staff=True)

        return super().formfield_for_foreignkey(db_field, request, **kwargs)


tagulous.admin.register(Publication, PublicationAdmin)
admin.register(Publication, PublicationAdmin)
Пример #15
0
import tagulous.admin
from django.contrib import admin

from .models.release import Release, ReleaseImage


class ReleaseImageInLine(admin.TabularInline):
    model = ReleaseImage
    extra = 0


class ReleaseAdmin(admin.ModelAdmin):
    inlines = [
        ReleaseImageInLine,
    ]

    def _projects(self, obj):
        return obj.projects.all().count()


admin.register(Release, ReleaseAdmin)
tagulous.admin.register(Release, ReleaseAdmin)
Пример #16
0
        try:
            url = f'{obj.image.url}'
        except:
            url = f"{obj.image}"
        return mark_safe(
            f'<img src="{self.base_url}{url}" style="width: 50px;"/>')

    admin_image.allow_tags = True


class SongAdmin(admin.ModelAdmin):
    list_display = [
        'title', 'title_eng', 'translator', 'categ', 'user', 'modified'
    ]
    search_fields = ['title', 'title_eng', 'text', 'text_eng']

    def categ(self, obj):
        categs = []
        for c in obj.category.all():
            categs.append(f"{c.title} ({c.slug})")
        return ' || '.join(categs)

    def get_queryset(self, request):
        qs = super(SongAdmin, self).get_queryset(request)
        qs = qs.prefetch_related('category', ).select_related('user', )
        return qs


tagadmin.register(Song, SongAdmin)
tagadmin.register(Song.translator)