Django

Code

Changeset 4315

Show
Ignore:
Timestamp:
01/14/07 14:00:11 (2 years ago)
Author:
adrian
Message:

newforms-admin: Implemented model_admin_view() view and stub ModelAdminView? class. Changed admin URLconf to point to model_admin_view().

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/newforms-admin/django/contrib/admin/urls.py

    r4266 r4315  
    3333    ('^auth/user/(\d+)/password/$', 'django.contrib.admin.views.auth.user_change_password'), 
    3434 
    35     # Add/change/delete/history 
    36     ('^([^/]+)/([^/]+)/$', 'django.contrib.admin.views.main.change_list'), 
    37     ('^([^/]+)/([^/]+)/add/$', 'django.contrib.admin.views.main.add_stage'), 
    38     ('^([^/]+)/([^/]+)/(.+)/history/$', 'django.contrib.admin.views.main.history'), 
    39     ('^([^/]+)/([^/]+)/(.+)/delete/$', 'django.contrib.admin.views.main.delete_stage'), 
    40     ('^([^/]+)/([^/]+)/(.+)/$', 'django.contrib.admin.views.main.change_stage'), 
     35    # Model-specific admin pages. 
     36    ('^([^/]+)/([^/]+)/(?:(.+)/)?$', 'django.contrib.admin.views.main.model_admin_view'), 
    4137) 
    4238 
  • django/branches/newforms-admin/django/contrib/admin/views/main.py

    r4269 r4315  
    105105                break 
    106106    return js 
     107 
     108def model_admin_view(request, app_label, model_name, rest_of_url): 
     109    model = models.get_model(app_label, model_name) 
     110    if model is None: 
     111        raise Http404("App %r, model %r, not found" % (app_label, model_name)) 
     112    mav = ModelAdminView(model._meta) 
     113    return mav(request, rest_of_url) 
     114 
     115class ModelAdminView(object): 
     116    def __init__(self, opts): 
     117        self.opts = opts 
     118 
     119    def __call__(self, request, url): 
     120        if url is None: 
     121            return self.change_list_view(request) 
     122        elif url.endswith('add'): 
     123            return self.add_view(request) 
     124        elif url.endswith('history'): 
     125            return self.history_view(request, url[:-8]) 
     126        elif url.endswith('delete'): 
     127            return self.delete_view(request, url[:-7]) 
     128        else: 
     129            return self.change_view(request, url) 
     130 
     131    def add_view(self, request): 
     132        raise NotImplementedError('Add view') 
     133 
     134    def change_view(self, request, object_id): 
     135        raise NotImplementedError('Change view with object %r' % object_id) 
     136 
     137    def change_list_view(self, request): 
     138        raise NotImplementedError('Change list view') 
     139 
     140    def delete_view(self, request, object_id): 
     141        raise NotImplementedError('Delete view with object %r' % object_id) 
     142 
     143    def history_view(self, request, object_id): 
     144        raise NotImplementedError('History view with object %r' % object_id) 
    107145 
    108146class AdminBoundField(object):