diff --git a/mayan/apps/folders/admin.py b/mayan/apps/folders/admin.py index b561a1fa53..eb3e470746 100644 --- a/mayan/apps/folders/admin.py +++ b/mayan/apps/folders/admin.py @@ -2,10 +2,13 @@ from __future__ import unicode_literals from django.contrib import admin +from organizations.admin import OrganizationAdminMixin + from .models import Folder @admin.register(Folder) -class FolderAdmin(admin.ModelAdmin): +class FolderAdmin(OrganizationAdminMixin, admin.ModelAdmin): filter_horizontal = ('documents',) list_display = ('label', 'datetime_created') + list_display_links = ('label',) diff --git a/mayan/apps/organizations/admin.py b/mayan/apps/organizations/admin.py index 3581b8c36d..f3ce1ff4ef 100644 --- a/mayan/apps/organizations/admin.py +++ b/mayan/apps/organizations/admin.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals from django.contrib import admin +from django.utils.translation import ugettext_lazy as _ from .models import Organization @@ -9,3 +10,27 @@ from .models import Organization class OrganizationAdmin(admin.ModelAdmin): list_display = ('label',) search_fields = ('label',) + + +class OrganizationAdminMixin(object): + def __init__(self, *args, **kwargs): + super(OrganizationAdminMixin, self).__init__(*args, **kwargs) + self.list_display = ('organization',) + self.list_display + self.list_filter = self.list_filter + ('organization',) + self.ordering = self.ordering or () + self.ordering = ('organization',) + self.ordering + + def get_fieldsets(self, *args, **kwargs): + result = super(OrganizationAdminMixin, self).get_fieldsets(*args, **kwargs) + + if 'organization' in result[0][1]['fields']: + try: + result[0][1]['fields'] = result[0][1]['fields'] - ('organization',) + except TypeError: + result[0][1]['fields'].remove('organization') + + result = ((_('Organizations'), { + 'fields': ('organization',), + },),) + tuple(result) + + return result diff --git a/mayan/apps/tags/admin.py b/mayan/apps/tags/admin.py index a703ba2e03..6c3f1d9f94 100644 --- a/mayan/apps/tags/admin.py +++ b/mayan/apps/tags/admin.py @@ -2,10 +2,13 @@ from __future__ import unicode_literals from django.contrib import admin +from organizations.admin import OrganizationAdminMixin + from .models import Tag @admin.register(Tag) -class TagAdmin(admin.ModelAdmin): +class TagAdmin(OrganizationAdminMixin, admin.ModelAdmin): filter_horizontal = ('documents',) list_display = ('label', 'color') + list_display_links = ('label',) diff --git a/mayan/apps/user_management/admin.py b/mayan/apps/user_management/admin.py index 989fd6e179..acea763d5a 100644 --- a/mayan/apps/user_management/admin.py +++ b/mayan/apps/user_management/admin.py @@ -1,17 +1,20 @@ -from django import forms -from django.contrib import admin -from django.contrib.auth.models import Group -from django.contrib.auth.admin import UserAdmin -from django.contrib.auth.forms import ReadOnlyPasswordHashField +from __future__ import unicode_literals -from user_management.models import MayanUser +from django.contrib import admin +from django.contrib.auth.admin import UserAdmin, GroupAdmin +from django.utils.translation import ugettext_lazy as _ + +from organizations.admin import OrganizationAdminMixin + +from .models import MayanGroup, MayanUser @admin.register(MayanUser) -class MayanUserAdmin(UserAdmin): - list_display = ('organization',) + UserAdmin.list_display +class MayanUserAdmin(OrganizationAdminMixin, UserAdmin): list_display_links = ('username',) - list_filter = UserAdmin.list_filter + ('organization',) - ordering = ('organization',) + UserAdmin.ordering - fieldsets = UserAdmin.fieldsets - fieldsets[1][1]['fields'] = ('organization',) + fieldsets[1][1]['fields'] + + +@admin.register(MayanGroup) +class MayanGroupAdmin(OrganizationAdminMixin, GroupAdmin): + list_display = ('name',) + list_display_links = ('name',)