Skip to content

Instantly share code, notes, and snippets.

@joshourisman
Created October 15, 2009 15:34
Show Gist options
  • Save joshourisman/211037 to your computer and use it in GitHub Desktop.
Save joshourisman/211037 to your computer and use it in GitHub Desktop.
def all_objects(request, admin):
from my_project.my_app.admin import ThisAdmin
class AllItemsAdmin(ThisAdmin):
list_display = ('item_name', 'start_date', 'press_summaries', 'photos', 'owner', 'output', 'visible')
list_display_links = (None,)
actions = None
def __init__(self, model, admin_site, request):
self.request = request
super(AllItemsAdmin, self).__init__(model, admin_site)
def check_owner(self, object):
user = self.request.user
if user.is_superuser or self.request.user == object.owner or self.request.user in object.editors.all():
return True
return False
def item_name(self, object):
if self.check_owner(object):
return "<a href=\"%s\">%s</a>" % (reverse('admin:my_app_my_object_change', args=(object.id,)), object.name)
return object.name
item_name.allow_tags = True
item_name.short_description = "name"
def press_summaries(self, object):
if self.check_owner(object):
return object.press_summaries()
return "%d press summaries" % object.presssummary_set.all().count()
press_summaries.allow_tags = True
def photos(self, object):
if self.check_owner(object):
return object.photos()
return "%d photos" % object.photo_set.all().count()
photos.allow_tags = True
def queryset(self, request):
return Item.objects.all()
return AllItemsAdmin(admin.model, admin.admin_site, request).changelist_view(request, extra_context={'all': True,})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment