__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__copyright__ = 'Copyright (c) 2013 Artur Barseghyan'
__license__ = 'GPL 2.0/LGPL 2.1'
from django.contrib import admin
from django.utils.translation import ugettext_lazy as _
from dash.models import DashboardWorkspace, DashboardEntry, DashboardPlugin, DashboardSettings
[docs]class DashboardWorkspaceAdmin(admin.ModelAdmin):
"""
Dashboard workspace admin.
"""
list_display = ('name', 'slug', 'layout_uid', 'position', 'user', 'is_public')
list_editable = ('position',)
list_filter = ('layout_uid', 'is_public')
readonly_fields = ('slug',)
fieldsets = (
(None, {
'fields': ('name', 'position', 'is_public')
}),
(_("User"), {
'fields': ('user',)
}),
(_('Additional'), {
'classes': ('collapse',),
'fields': ('slug',)
}),
)
admin.site.register(DashboardWorkspace, DashboardWorkspaceAdmin)
[docs]class DashboardEntryAdmin(admin.ModelAdmin):
"""
Dashboard entry admin.
"""
list_display = ('plugin_uid', 'plugin_uid_code', 'plugin_data', 'layout_uid', 'placeholder_uid', 'position',
'workspace', 'user')
list_filter = ('user', 'workspace', 'layout_uid', 'placeholder_uid', 'plugin_uid')
list_editable = ('position',)
readonly_fields = ('plugin_uid_code',)
fieldsets = (
(None, {
'fields': ('plugin_uid', 'plugin_data', 'layout_uid', 'placeholder_uid', 'position', 'workspace')
}),
(_("User"), {
'fields': ('user',)
}),
)
[docs] class Meta:
app_label = _('Dashboard entry')
[docs] def queryset(self, request):
queryset = super(DashboardEntryAdmin, self).queryset(request)
queryset = queryset.select_related('workspace', 'user')
return queryset
admin.site.register(DashboardEntry, DashboardEntryAdmin)
[docs]class DashboardPluginAdmin(admin.ModelAdmin):
"""
Dashboard plugin admin.
"""
list_display = ('plugin_uid_admin', 'users_list', 'groups_list')
readonly_fields = ('plugin_uid', 'plugin_uid_admin')
fieldsets = (
(None, {
'fields': ('plugin_uid', 'users', 'groups')
}),
)
filter_horizontal = ('users', 'groups',)
[docs] def queryset(self, request):
queryset = super(DashboardPluginAdmin, self).queryset(request)
queryset = queryset.prefetch_related('users', 'groups')
return queryset
admin.site.register(DashboardPlugin, DashboardPluginAdmin)
[docs]class DashboardSettingsAdmin(admin.ModelAdmin):
"""
Dashboard plugin admin.
"""
list_display = ('title', 'user', 'layout_uid', 'is_public')
#readonly_fields = ('plugin_uid',)
fieldsets = (
(None, {
'fields': ('title', 'user', 'layout_uid', 'is_public')
}),
)
[docs] def queryset(self, request):
queryset = super(DashboardSettingsAdmin, self).queryset(request)
queryset = queryset.select_related('user')
return queryset
admin.site.register(DashboardSettings, DashboardSettingsAdmin)