123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals
- from django.contrib import admin
- from django.core.exceptions import PermissionDenied
- from django.utils.translation import ugettext_lazy as _
-
- from .models import Hit, HitCount
-
-
- class HitAdmin(admin.ModelAdmin):
- list_display = ('created', 'user', 'ip', 'user_agent', 'hitcount')
- search_fields = ('ip', 'user_agent')
- date_hierarchy = 'created'
- actions = ['blacklist_ips',
- 'blacklist_user_agents',
- 'blacklist_delete_ips',
- 'blacklist_delete_user_agents',
- 'delete_queryset',
- ]
-
- def __init__(self, *args, **kwargs):
- super(HitAdmin, self).__init__(*args, **kwargs)
- self.list_display_links = None
-
- def has_add_permission(self, request):
- return False
-
- def get_actions(self, request):
- actions = super(HitAdmin, self).get_actions(request)
- if 'delete_selected' in actions:
- del actions['delete_selected']
- return actions
-
-
- def delete_queryset(self, request, queryset):
- if not self.has_delete_permission(request):
- raise PermissionDenied
- else:
- if queryset.count() == 1:
- msg = "1 hit was"
- else:
- msg = "%s hits were" % queryset.count()
-
- for obj in queryset.iterator():
- obj.delete() # calling it this way to get custom delete() method
-
- self.message_user(request, "%s successfully deleted." % msg)
- delete_queryset.short_description = _("Delete selected hits")
-
- admin.site.register(Hit, HitAdmin)
-
-
- class HitCountAdmin(admin.ModelAdmin):
- list_display = ('content_object', 'hits', 'modified')
- fields = ('hits',)
-
- def has_add_permission(self, request):
- return False
-
- admin.site.register(HitCount, HitCountAdmin)
|