user's can't set/unset is_admin, is_active and is_readonly values in Login Details...
[plstackapi.git] / planetstack / servcomp / admin.py
1 from django.contrib import admin
2
3 from servcomp.models import *
4 from django import forms
5 from django.utils.safestring import mark_safe
6 from django.contrib.auth.admin import UserAdmin
7 from django.contrib.admin.widgets import FilteredSelectMultiple
8 from django.contrib.auth.forms import ReadOnlyPasswordHashField
9 from django.contrib.auth.signals import user_logged_in
10 from django.utils import timezone
11 from django.contrib.contenttypes import generic
12 from suit.widgets import LinkedSelect
13 from core.admin import SingletonAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin, PlStackTabularInline
14
15 class ServiceInline(PlStackTabularInline):
16     model = CompositionServiceThrough
17     verbose_name = "Service"
18     verbose_name_plural = "Services"
19     extra = 0
20     #suit_classes = 'suit-tab suit-tab-general'
21     fields = ('backend_status_icon', 'service', 'order')
22     readonly_fields = ('backend_status_icon',)
23
24 class CompositionServiceAdmin(SingletonAdmin):
25     model = CompositionService
26     verbose_name = "Composition Service"
27     verbose_name_plural = "Composition Service"
28     list_display = ("backend_status_icon", "name","enabled")
29     list_display_links = ('backend_status_icon', 'name', )
30     fieldsets = [(None, {'fields': ['backend_status_text', 'name','enabled','versionNumber', 'description'], 'classes':['suit-tab suit-tab-general']})]
31     readonly_fields = ('backend_status_text', )
32     inlines = [SliceInline,ServiceAttrAsTabInline]
33
34     user_readonly_fields = ["name", "enabled", "versionNumber", "description"]
35
36     suit_form_tabs =(('general', 'Composition Service Details'),
37         ('slices','Slices'),
38         ('serviceattrs','Additional Attributes'),
39     )
40
41 class CompositionForm(forms.ModelForm):
42     model = Composition
43     class Media:
44        js = ('/static/js/menu-sort-2.js',)
45
46 class CompositionAdmin(ReadOnlyAwareAdmin):
47     list_display = ('backend_status_icon', 'name' )
48     list_display_links = ('backend_status_icon', 'name' )
49     form = CompositionForm
50
51     fields = ('backend_status_text', 'name')
52     readonly_fields = ('backend_status_text', )
53     user_readonly_fields = ('name',)
54
55     inlines = [ServiceInline]
56
57 class EndUserAdmin(ReadOnlyAwareAdmin):
58     list_display = ('backend_status_icon', 'email', 'macAddress', 'composition' )
59     list_display_links = ('backend_status_icon', 'email' )
60
61     fields = ('backend_status_text', 'email', 'firstName', 'lastName', 'macAddress', 'composition')
62     readonly_fields = ('backend_status_text', )
63     user_readonly_fields = ('email', 'firstName', 'lastName', 'macAddress')
64
65 admin.site.register(CompositionService, CompositionServiceAdmin)
66 admin.site.register(Composition, CompositionAdmin)
67 admin.site.register(EndUser, EndUserAdmin)
68