Browse Source

API cleanup

Rafał Pitoń 11 years ago
parent
commit
4a5079481f
3 changed files with 31 additions and 27 deletions
  1. 23 17
      misago/admin/views/generic.py
  2. 3 5
      misago/users/views/rankadmin.py
  3. 5 5
      misago/users/views/useradmin.py

+ 23 - 17
misago/admin/views/generic.py

@@ -15,31 +15,34 @@ class AdminBaseMixin(object):
     Takes following attributes:
 
     Model = Model instance
-    message_404 = string used in "requested item not found" messages
     root_link = name of link leading to root action (eg. list of all items
-    template_dir = directory with templates
+    templates_dir = directory with templates
+    message_404 = string used in "requested item not found" messages
     """
     Model = None
-    message_404 = None
     root_link = None
-    template_dir = None
+    templates_dir = None
+    message_404 = None
 
     def get_model(self):
+        """
+        Basic method for retrieving Model, used in cases such as User model.
+        """
         return self.Model
 
 
 class AdminView(View):
     def final_template(self):
-        return '%s/%s' % (self.template_dir, self.template)
+        return '%s/%s' % (self.templates_dir, self.template)
 
     def get_target(self, target):
+        """
+        get_target is called by view to fetch item from DB
+        """
         Model = self.get_model()
         return Model.objects.get(id=target)
 
     def _get_target(self, request, kwargs):
-        """
-        get_target is called by view to fetch item from DB
-        """
         Model = self.get_model()
 
         try:
@@ -53,6 +56,9 @@ class AdminView(View):
         return '%s:%s' % (request.resolver_match.namespace, matched_url)
 
     def process_context(self, request, context):
+        """
+        Simple hook for extending and manipulating template context.
+        """
         return context
 
     def render(self, request, context=None):
@@ -61,7 +67,7 @@ class AdminView(View):
         context['root_link'] = self.root_link
         context['current_link'] = self.current_link(request)
 
-        self.process_context(request, context)
+        context = self.process_context(request, context)
 
         return render(request, self.final_template(), context)
 
@@ -112,9 +118,9 @@ class ListView(AdminView):
         return 'misago_admin_%s_order_by' % self.root_link
 
     def set_ordering(self, request, new_order):
-        for order in self.ordering:
-            if order[1] == new_order:
-                request.session[self.ordering_session_key()] = order[1]
+        for order_by, name in self.ordering:
+            if order_by == new_order:
+                request.session[self.ordering_session_key()] = order_by
                 return redirect(self.current_link(request))
         else:
             messages.error(request, _("New sorting method is incorrect."))
@@ -123,14 +129,14 @@ class ListView(AdminView):
     def order_items(self, request, context):
         current_ordering = request.session.get(self.ordering_session_key())
 
-        for order in self.ordering:
+        for order_by, name in self.ordering:
             order_as_dict = {
-                'name': order[0],
-                'order_by': order[1],
-                'type': 'desc' if order[1][0] == '-' else 'asc',
+                'order_by': order_by,
+                'type': 'desc' if order_by[0] == '-' else 'asc',
+                'name': name,
             }
 
-            if order[1] == current_ordering:
+            if order_by == current_ordering:
                 context['order'] = order_as_dict
                 context['items'] = context['items'].order_by(
                     order_as_dict['order_by'])

+ 3 - 5
misago/users/views/rankadmin.py

@@ -7,16 +7,14 @@ from misago.users.forms.admin import RankForm
 
 class RankAdmin(generic.AdminBaseMixin):
     root_link = 'misago:admin:users:ranks:index'
-    template_dir = 'misago/admin/ranks'
+    Model = Rank
+    templates_dir = 'misago/admin/ranks'
     message_404 = _("Requested rank does not exist.")
     form = RankForm
 
-    def get_model(self):
-        return Rank
-
 
 class RanksList(RankAdmin, generic.ListView):
-    ordering = ((None, 'order'),)
+    ordering = (('order', None),)
 
 
 class NewRank(RankAdmin, generic.FormView):

+ 5 - 5
misago/users/views/useradmin.py

@@ -5,7 +5,7 @@ from misago.admin.views import generic
 
 class UserAdmin(generic.AdminBaseMixin):
     root_link = 'misago:admin:users:accounts:index'
-    template_dir = 'misago/admin/users'
+    templates_dir = 'misago/admin/users'
 
     def get_model(self):
         return get_user_model()
@@ -14,8 +14,8 @@ class UserAdmin(generic.AdminBaseMixin):
 class UsersList(UserAdmin, generic.ListView):
     items_per_page = 20
     ordering = (
-        (_("From newest"), '-id'),
-        (_("From oldest"), 'id'),
-        (_("A to z"), 'username'),
-        (_("Z to a"), '-username'),
+        ('-id', _("From newest")),
+        ('id', _("From oldest")),
+        ('username', _("A to z")),
+        ('-username', _("Z to a")),
         )