mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
newforms-admin: Implemented model_admin_view() view and stub ModelAdminView class. Changed admin URLconf to point to model_admin_view().
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@4315 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -32,12 +32,8 @@ urlpatterns = patterns('',
|
||||
# "Change user password" -- another special-case view
|
||||
('^auth/user/(\d+)/password/$', 'django.contrib.admin.views.auth.user_change_password'),
|
||||
|
||||
# Add/change/delete/history
|
||||
('^([^/]+)/([^/]+)/$', 'django.contrib.admin.views.main.change_list'),
|
||||
('^([^/]+)/([^/]+)/add/$', 'django.contrib.admin.views.main.add_stage'),
|
||||
('^([^/]+)/([^/]+)/(.+)/history/$', 'django.contrib.admin.views.main.history'),
|
||||
('^([^/]+)/([^/]+)/(.+)/delete/$', 'django.contrib.admin.views.main.delete_stage'),
|
||||
('^([^/]+)/([^/]+)/(.+)/$', 'django.contrib.admin.views.main.change_stage'),
|
||||
# Model-specific admin pages.
|
||||
('^([^/]+)/([^/]+)/(?:(.+)/)?$', 'django.contrib.admin.views.main.model_admin_view'),
|
||||
)
|
||||
|
||||
del i18n_view
|
||||
|
||||
@@ -105,6 +105,44 @@ def get_javascript_imports(opts, auto_populated_fields, field_sets):
|
||||
break
|
||||
return js
|
||||
|
||||
def model_admin_view(request, app_label, model_name, rest_of_url):
|
||||
model = models.get_model(app_label, model_name)
|
||||
if model is None:
|
||||
raise Http404("App %r, model %r, not found" % (app_label, model_name))
|
||||
mav = ModelAdminView(model._meta)
|
||||
return mav(request, rest_of_url)
|
||||
|
||||
class ModelAdminView(object):
|
||||
def __init__(self, opts):
|
||||
self.opts = opts
|
||||
|
||||
def __call__(self, request, url):
|
||||
if url is None:
|
||||
return self.change_list_view(request)
|
||||
elif url.endswith('add'):
|
||||
return self.add_view(request)
|
||||
elif url.endswith('history'):
|
||||
return self.history_view(request, url[:-8])
|
||||
elif url.endswith('delete'):
|
||||
return self.delete_view(request, url[:-7])
|
||||
else:
|
||||
return self.change_view(request, url)
|
||||
|
||||
def add_view(self, request):
|
||||
raise NotImplementedError('Add view')
|
||||
|
||||
def change_view(self, request, object_id):
|
||||
raise NotImplementedError('Change view with object %r' % object_id)
|
||||
|
||||
def change_list_view(self, request):
|
||||
raise NotImplementedError('Change list view')
|
||||
|
||||
def delete_view(self, request, object_id):
|
||||
raise NotImplementedError('Delete view with object %r' % object_id)
|
||||
|
||||
def history_view(self, request, object_id):
|
||||
raise NotImplementedError('History view with object %r' % object_id)
|
||||
|
||||
class AdminBoundField(object):
|
||||
def __init__(self, field, field_mapping, original):
|
||||
self.field = field
|
||||
|
||||
Reference in New Issue
Block a user