idlesign/django-sitecats

View on GitHub
sitecats/admin.py

Summary

Maintainability
A
0 mins
Test Coverage
from django.contrib import admin

from .utils import get_category_model, get_tie_model


try:
    from admirarchy.toolbox import HierarchicalModelAdmin
    MODEL_ADMIN = HierarchicalModelAdmin

except ImportError:
    MODEL_ADMIN = admin.ModelAdmin


@admin.register(get_category_model())
class CategoryAdmin(MODEL_ADMIN):

    list_display = ('title', 'alias', 'is_locked', 'status', 'is_locked')
    search_fields = ('title', 'alias', 'note', 'slug')
    list_filter = ('time_created', 'status', 'is_locked')
    ordering = ('sort_order', 'title')
    date_hierarchy = 'time_created'
    hierarchy = True

    def has_delete_permission(self, request, obj=None):

        if obj is not None and obj.is_locked:
            return False

        return super(CategoryAdmin, self).has_delete_permission(request, obj=obj)

    def get_form(self, request, obj=None, **kwargs):

        if obj is not None:
            if obj.is_locked:
                self.readonly_fields = ('is_locked', 'alias')

            else:
                self.readonly_fields = ()

        return super(CategoryAdmin, self).get_form(request, obj=obj, **kwargs)


@admin.register(get_tie_model())
class TieAdmin(admin.ModelAdmin):

    list_display = ('category', 'content_type', 'object_id', 'status')
    search_fields = ('object_id',)
    list_filter = ('time_created', 'status', 'content_type')
    ordering = ('-time_created',)
    date_hierarchy = 'time_created'