from django.contrib import admin from django.contrib.admin import AdminSite from django.contrib.admin.sites import NotRegistered from django.contrib.auth.admin import UserAdmin from django.contrib.auth.models import User from service.models import AO from service.models import PlacementPoint from service.models import Rayon from service.models import Post_and_pvz, Post_and_pvzCategory, Post_and_pvzGroup, OtherObjects, OtherObjectsGroup, \ OtherObjectsCategory from service.models import PlacementPointPVZDistance, TaskStatus from postamates.settings import DEBUG from django.core.cache import cache from service.layer_service import LayerService class MyAdminSite(AdminSite): def index(self, request, extra_context=None): if extra_context is None: extra_context = {} extra_context['is_superadmin'] = request.user.is_superuser return super(MyAdminSite, self).index(request, extra_context) my_admin_site = MyAdminSite(name='POSTNET') if DEBUG: my_admin_site.register(AO) my_admin_site.register(Rayon) my_admin_site.register(PlacementPointPVZDistance) class Post_and_PVZAdmin(admin.ModelAdmin): def save_model(self, request, obj, form, change): LayerService().count_post_pvz_for_placementpoint(obj) my_admin_site.register(Post_and_pvz, Post_and_PVZAdmin) my_admin_site.register(OtherObjects) class TaskStatusAdmin(admin.ModelAdmin): list_display = ('task_name', 'status') class CategoryAdmin(admin.ModelAdmin): list_display = ('name', 'visible') def save_model(self, request, obj, form, change): obj.save() cache.clear() class GroupAdmin(admin.ModelAdmin): list_display = ('name', 'category', 'visible') def save_model(self, request, obj, form, change): obj.save() cache.clear() class PlacementPointAdmin(admin.ModelAdmin): pass my_admin_site.register(TaskStatus, TaskStatusAdmin) my_admin_site.register(Post_and_pvzGroup, GroupAdmin) my_admin_site.register(OtherObjectsGroup, GroupAdmin) my_admin_site.register(Post_and_pvzCategory, CategoryAdmin) my_admin_site.register(OtherObjectsCategory, CategoryAdmin) my_admin_site.register(PlacementPoint, PlacementPointAdmin) class UserAdmin(UserAdmin): add_fieldsets = ( ( None, { 'classes': ('wide',), 'fields': ('username', 'password1', 'password2', 'email'), }, ), ) try: my_admin_site.unregister(User) except NotRegistered: pass my_admin_site.register(User, UserAdmin)