Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- url(r'^$', StaffListView.as_view(), name="staffmember_list"),
- class StaffListView(ListView):
- model = StaffMember
- queryset = StaffMember.objects.order_by('order').all()
- def render_to_response(self, context, **response_kwargs):
- # Shim to affect the CMS Toolbar only
- if self.request.toolbar and self.request.toolbar.edit_mode:
- menu = self.request.toolbar.get_or_create_menu('staff-list-menu', 'Leadership')
- menu.add_sideframe_item(u'Seniority List', url=reverse('admin:staff_seniority_changelist'))
- menu.add_modal_item('Add new Seniority', url="%s" % (reverse('admin:staff_seniority_add'), ))
- menu.add_break()
- menu.add_sideframe_item(u'Staff List', url=reverse('admin:staff_staffmember_changelist'))
- menu.add_modal_item('Add new Staff Member', url="%s" % (reverse('admin:staff_staffmember_add'), ))
- return super(StaffListView, self).render_to_response(context, **response_kwargs)
- class View(object):
- """
- Intentionally simple parent class for all views. Only implements
- dispatch-by-method and simple sanity checking.
- """
- http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
- def __init__(self, **kwargs):
- """
- Constructor. Called in the URLconf; can contain helpful extra
- keyword arguments, and other things.
- """
- # Go through keyword arguments, and either save their values to our
- # instance, or raise an error.
- for key, value in six.iteritems(kwargs):
- setattr(self, key, value)
- @classonlymethod
- def as_view(cls, **initkwargs):
- """
- Main entry point for a request-response process.
- """
- # sanitize keyword arguments
- for key in initkwargs:
- if key in cls.http_method_names:
- raise TypeError("You tried to pass in the %s method name as a "
- "keyword argument to %s(). Don't do that."
- % (key, cls.__name__))
- if not hasattr(cls, key):
- raise TypeError("%s() received an invalid keyword %r. as_view "
- "only accepts arguments that are already "
- "attributes of the class." % (cls.__name__, key))
- def view(request, *args, **kwargs):
- self = cls(**initkwargs)
- if hasattr(self, 'get') and not hasattr(self, 'head'):
- self.head = self.get
- self.request = request
- self.args = args
- self.kwargs = kwargs
- return self.dispatch(request, *args, **kwargs)
- # take name and docstring from class
- update_wrapper(view, cls, updated=())
- # and possible attributes set by decorators
- # like csrf_exempt from dispatch
- update_wrapper(view, cls.dispatch, assigned=())
- return view
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement