django-admin2/djadmin2/models.py
2013-05-18 11:52:03 +02:00

75 lines
1.9 KiB
Python

"""
For wont of a better name, this module is called 'models'. It's role is
synonymous with the django.contrib.admin.sites model.
"""
try:
import floppyforms as forms
except ImportError:
from django import forms
class BaseAdmin2(object):
search_fields = []
# Show the fields to be displayed as columns
# TODO: Confirm that this is what the Django admin uses
list_fields = []
#This shows up on the DocumentListView of the Posts
list_actions = []
# This shows up in the DocumentDetailView of the Posts.
document_actions = []
# shows up on a particular field
field_actions = {}
fields = None
exclude = None
fieldsets = None
form = forms.ModelForm
filter_vertical = ()
filter_horizontal = ()
radio_fields = {}
prepopulated_fields = {}
formfield_overrides = {}
readonly_fields = ()
ordering = None
def has_view_permission(self, request):
"""
Returns True if the given HttpRequest has permission to view
*at least one* page in the mongonaut site.
"""
return request.user.is_authenticated() and request.user.is_active
def has_edit_permission(self, request):
""" Can edit this object """
return request.user.is_authenticated() and request.user.is_active and request.user.is_staff
def has_add_permission(self, request):
""" Can add this object """
return request.user.is_authenticated() and request.user.is_active and request.user.is_staff
def has_delete_permission(self, request):
""" Can delete this object """
return request.user.is_authenticated() and request.user.is_active and request.user.is_superuser
class Admin2(BaseAdmin2):
list_display = ('__str__',)
list_display_links = ()
list_filter = ()
list_select_related = False
list_per_page = 100
list_max_show_all = 200
list_editable = ()
search_fields = ()
save_as = False
save_on_top = False