Add OrganizationAdminMixin. Enable OrganizationAdminMixin for the tags, folders and user_management apps.

This commit is contained in:
Roberto Rosario
2016-05-31 01:22:15 -04:00
parent f799d379d1
commit 629cc24090
4 changed files with 48 additions and 14 deletions

View File

@@ -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',)

View File

@@ -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

View File

@@ -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',)

View File

@@ -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',)