Browse Source

Foundations for user ranks

Rafał Pitoń 11 years ago
parent
commit
ae72785e96

+ 14 - 0
misago/templates/misago/admin/ranks/list.html

@@ -0,0 +1,14 @@
+{% extends "misago/admin/generic/list.html" %}
+{% load i18n %}
+
+
+{% block table-header %}
+<th style="width: 1%;">&nbsp;</th>
+{% endblock table-header %}
+
+
+{% block table-row %}
+<td class="lead">
+  {{ item.name }}
+</td>
+{% endblock %}

+ 11 - 0
misago/users/models/rankmodel.py

@@ -1,5 +1,7 @@
 from django.db import models
 from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import ugettext_lazy as _
+from misago.admin import site
 from misago.core.utils import slugify
 
 
@@ -24,3 +26,12 @@ class Rank(models.Model):
     def set_name(self, name):
         self.name = name
         self.slug = slugify(name)
+
+
+"""register model in misago admin"""
+site.add_node(
+    parent='misago:admin:users',
+    namespace='misago:admin:users:ranks',
+    link='misago:admin:users:ranks:index',
+    name=_("Ranks"),
+    icon='fa fa-graduation-cap')

+ 11 - 1
misago/users/urls/admin.py

@@ -1,13 +1,23 @@
 from django.conf.urls import url
 from misago.admin import urlpatterns
 from misago.users.views.useradmin import UsersList
+from misago.users.views.rankadmin import RanksList
 
 
+# Users section
 urlpatterns.namespace(r'^users/', 'users')
-urlpatterns.namespace(r'^accounts/', 'accounts', 'users')
 
 
+# Accounts
+urlpatterns.namespace(r'^accounts/', 'accounts', 'users')
 urlpatterns.patterns('users:accounts',
     url(r'^$', UsersList.as_view(), name='index'),
     url(r'^(?P<page>\d+)/$', UsersList.as_view(), name='index'),
 )
+
+
+# Ranks
+urlpatterns.namespace(r'^ranks/', 'ranks', 'users')
+urlpatterns.patterns('users:ranks',
+    url(r'^$', RanksList.as_view(), name='index'),
+)

+ 15 - 0
misago/users/views/rankadmin.py

@@ -0,0 +1,15 @@
+from django.utils.translation import ugettext_lazy as _
+from misago.admin.views import generic
+from misago.users.models import Rank
+
+
+class RankAdmin(generic.AdminBaseMixin):
+    root_link = 'misago:admin:users:ranks:index'
+    template_dir = 'misago/admin/ranks'
+
+    def get_model(self):
+        return Rank
+
+
+class RanksList(RankAdmin, generic.ItemsList):
+    ordering = ((None, 'order'),)