Browse Source

Mechanic for adding items lists, starting forums acls refactor. #359 #358

Rafał Pitoń 11 years ago
parent
commit
afcc6ff6ac

+ 1 - 1
misago/acl/models.py

@@ -64,5 +64,5 @@ site.add_node(
     parent='misago:admin:permissions',
     parent='misago:admin:permissions',
     namespace='misago:admin:permissions:users',
     namespace='misago:admin:permissions:users',
     link='misago:admin:permissions:users:index',
     link='misago:admin:permissions:users:index',
-    name=_("User Roles"),
+    name=_("User roles"),
     icon='fa fa-th-large')
     icon='fa fa-th-large')

+ 3 - 1
misago/admin/views/generic.py

@@ -77,7 +77,7 @@ class ListView(AdminView):
     extra_actions = []
     extra_actions = []
 
 
     @classmethod
     @classmethod
-    def add_item_action(cls, name, icon, link, style='default'):
+    def add_item_action(cls, name, icon, link, style=None):
         cls.extra_actions.append({
         cls.extra_actions.append({
             'name': name,
             'name': name,
             'icon': icon,
             'icon': icon,
@@ -152,6 +152,8 @@ class ListView(AdminView):
             'page': None,
             'page': None,
             'order_by': [],
             'order_by': [],
             'order': None,
             'order': None,
+            'extra_actions': self.extra_actions,
+            'extra_actions_len': len(self.extra_actions),
         }
         }
 
 
         if self.ordering:
         if self.ordering:

+ 1 - 1
misago/forums/models.py

@@ -103,5 +103,5 @@ site.add_node(
     namespace='misago:admin:permissions:forums',
     namespace='misago:admin:permissions:forums',
     after='misago:admin:permissions:users:index',
     after='misago:admin:permissions:users:index',
     link='misago:admin:permissions:forums:index',
     link='misago:admin:permissions:forums:index',
-    name=_("Forum Roles"),
+    name=_("Forum roles"),
     icon='fa fa-list')
     icon='fa fa-list')

+ 8 - 1
misago/forums/urls.py

@@ -4,7 +4,8 @@ from misago.forums.views.forums import (ForumsList, NewForum, EditForum,
                                         DeleteForum, MoveUpForum,
                                         DeleteForum, MoveUpForum,
                                         MoveDownForum)
                                         MoveDownForum)
 from misago.forums.views.roles import (ForumRolesList, NewForumRole,
 from misago.forums.views.roles import (ForumRolesList, NewForumRole,
-                                       EditForumRole, DeleteForumRole)
+                                       EditForumRole, DeleteForumRole,
+                                       RoleForumsACL)
 
 
 
 
 # Forums section
 # Forums section
@@ -30,3 +31,9 @@ urlpatterns.patterns('permissions:forums',
     url(r'^edit/(?P<role_id>\d+)/$', EditForumRole.as_view(), name='edit'),
     url(r'^edit/(?P<role_id>\d+)/$', EditForumRole.as_view(), name='edit'),
     url(r'^delete/(?P<role_id>\d+)/$', DeleteForumRole.as_view(), name='delete'),
     url(r'^delete/(?P<role_id>\d+)/$', DeleteForumRole.as_view(), name='delete'),
 )
 )
+
+
+# Change Role Forum Permissions
+urlpatterns.patterns('permissions:users',
+    url(r'^forums/(?P<role_id>\d+)/$', RoleForumsACL.as_view(), name='forums'),
+)

+ 15 - 0
misago/forums/views/roles.py

@@ -3,6 +3,7 @@ from django.shortcuts import redirect
 from django.utils.translation import ugettext_lazy as _
 from django.utils.translation import ugettext_lazy as _
 from misago.admin.views import generic
 from misago.admin.views import generic
 from misago.acl import get_change_permissions_forms
 from misago.acl import get_change_permissions_forms
+from misago.acl.views import RoleAdmin, RolesList
 from misago.forums.forms import ForumRoleForm
 from misago.forums.forms import ForumRoleForm
 from misago.forums.models import ForumRole
 from misago.forums.models import ForumRole
 
 
@@ -73,3 +74,17 @@ class DeleteForumRole(ForumRoleAdmin, generic.ButtonView):
         target.delete()
         target.delete()
         message = _('Role "%s" has been deleted.') % unicode(target.name)
         message = _('Role "%s" has been deleted.') % unicode(target.name)
         messages.success(request, message)
         messages.success(request, message)
+
+
+"""
+Create forums perms view for perms role and register it in other admin
+"""
+class RoleForumsACL(RoleAdmin, generic.ModelFormView):
+    templates_dir = 'misago/admin/forumroles'
+    template = 'forumsroles.html'
+
+
+RolesList.add_item_action(
+    name=_("Forums permissions"),
+    icon='fa fa-comments-o',
+    link='misago:admin:permissions:users:forums')

+ 5 - 1
misago/static/misago/admin/css/misago/tables.less

@@ -97,7 +97,11 @@
 
 
             &>span {
             &>span {
               position: relative;
               position: relative;
-              bottom: 1px;
+              bottom: -1px;
+
+              &.fa-times {
+             		bottom: 1px;
+              }
 
 
               &.fa-pencil {
               &.fa-pencil {
                 bottom: -2px;
                 bottom: -2px;

+ 5 - 0
misago/static/misago/admin/css/style.css

@@ -6234,6 +6234,11 @@ body {
 .table-panel table.table tr td.row-action > form .btn > span,
 .table-panel table.table tr td.row-action > form .btn > span,
 .table-panel table.table tr td.row-action .dropdown-toggle > span {
 .table-panel table.table tr td.row-action .dropdown-toggle > span {
   position: relative;
   position: relative;
+  bottom: -1px;
+}
+.table-panel table.table tr td.row-action .btn > span.fa-times,
+.table-panel table.table tr td.row-action > form .btn > span.fa-times,
+.table-panel table.table tr td.row-action .dropdown-toggle > span.fa-times {
   bottom: 1px;
   bottom: 1px;
 }
 }
 .table-panel table.table tr td.row-action .btn > span.fa-pencil,
 .table-panel table.table tr td.row-action .btn > span.fa-pencil,

+ 1 - 0
misago/templates/misago/admin/forumroles/forumsroles.html

@@ -0,0 +1 @@
+Hello, I am Forums Roles template!

+ 12 - 2
misago/templates/misago/admin/roles/list.html

@@ -13,7 +13,10 @@
 
 
 
 
 {% block table-header %}
 {% block table-header %}
-<th>{% trans "Rank" %}</th>
+<th>{% trans "Role" %}</th>
+{% for action in extra_actions %}
+<th style="width: 1%;">&nbsp;</th>
+{% endfor %}
 <th style="width: 1%;">&nbsp;</th>
 <th style="width: 1%;">&nbsp;</th>
 <th style="width: 1%;">&nbsp;</th>
 <th style="width: 1%;">&nbsp;</th>
 {% endblock table-header %}
 {% endblock table-header %}
@@ -23,6 +26,13 @@
 <td class="lead">
 <td class="lead">
   {{ item.name }}
   {{ item.name }}
 </td>
 </td>
+{% for action in extra_actions %}
+<td class="row-action">
+  <a href="{% url action.link role_id=item.id %}" class="btn btn-{% if action.style %}{{ action.style }}{% else %}default{% endif %} tooltip-top" title="{{ action.name }}">
+    <span class="{{ action.icon }}"></span>
+  </a>
+</td>
+{% endfor %}
 <td class="row-action">
 <td class="row-action">
   <a href="{% url 'misago:admin:permissions:users:edit' role_id=item.id %}" class="btn btn-primary tooltip-top" title="{% trans "Edit" %}">
   <a href="{% url 'misago:admin:permissions:users:edit' role_id=item.id %}" class="btn btn-primary tooltip-top" title="{% trans "Edit" %}">
     <span class="fa fa-pencil"></span>
     <span class="fa fa-pencil"></span>
@@ -40,7 +50,7 @@
 
 
 
 
 {% block emptylist %}
 {% block emptylist %}
-<td colspan="3">
+<td colspan="{{ 3|add:extra_actions_len }}">
   <p>{% trans "No user roles are currently defined." %}</p>
   <p>{% trans "No user roles are currently defined." %}</p>
 </td>
 </td>
 {% endblock emptylist %}
 {% endblock emptylist %}