X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fadmin.py;h=73f3a4de2d2c5f8fb00d78d13075860dd9d26bbc;hb=fad1a608d2e84817a0c181b4fb28396df9b8c0f0;hp=39520ae0647e008079de6e60a7901eeb33d2f96c;hpb=ef9db61058e6c5891721e997614c6c76905c230a;p=plstackapi.git diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py index 39520ae..73f3a4d 100644 --- a/planetstack/core/admin.py +++ b/planetstack/core/admin.py @@ -28,7 +28,7 @@ _thread_locals = threading.local() def backend_icon(obj): # backend_status, enacted, updated): #return "%s %s %s" % (str(obj.updated), str(obj.enacted), str(obj.backend_status)) - if (obj.enacted is not None) and obj.enacted >= obj.updated: + if (obj.enacted is not None) and obj.enacted >= obj.updated or obj.backend_status.startswith("1 -"): return '' else: if ((obj.backend_status is not None) and obj.backend_status.startswith("0 -")) or obj.backend_status == "Provisioning in progress" or obj.backend_status=="": @@ -1259,7 +1259,7 @@ class UserAdmin(PermissionCheckingAdminMixin, UserAdmin): add_fieldsets = ( (None, { 'classes': ('wide',), - 'fields': ('site', 'email', 'firstname', 'lastname', 'is_admin','is_admin', 'is_readonly', 'phone', 'public_key','password1', 'password2')}, + 'fields': ('site', 'email', 'firstname', 'lastname', 'is_admin', 'is_readonly', 'phone', 'public_key','password1', 'password2')}, ), ) readonly_fields = ('backend_status_text', ) @@ -1296,12 +1296,21 @@ class UserAdmin(PermissionCheckingAdminMixin, UserAdmin): return User.select_by_user(request.user) def get_form(self, request, obj=None, **kwargs): + # copy login details list + login_details_fields = list(self.fieldListLoginDetails) if not request.user.is_admin: - self.fieldsets = ( - ('Login Details', {'fields': ['backend_status_text', 'email', 'site','password','public_key'], 'classes':['suit-tab suit-tab-general']}), - ('Contact Information', {'fields': ('firstname','lastname','phone', 'timezone'), 'classes':['suit-tab suit-tab-contact']}), - ) - self.readonly_fields = ('backend_status_text', 'site') + # only admins can see 'is_admin' and 'is_readonly' fields + if 'is_admin' in login_details_fields: + login_details_fields.remove('is_admin') + if 'is_readonly' in login_details_fields: + login_details_fields.remove('is_readonly') + #if len(request.user.siteprivileges.filter(role__role = 'pi')) > 0: + # only admins and pis can change a user's site + # self.readonly_fields = ('backend_status_text', 'site') + self.fieldsets = ( + ('Login Details', {'fields': login_details_fields, 'classes':['suit-tab suit-tab-general']}), + ('Contact Information', {'fields': self.fieldListContactInfo, 'classes':['suit-tab suit-tab-contact']}), + ) return super(UserAdmin, self).get_form(request, obj, **kwargs) class ControllerDashboardViewInline(PlStackTabularInline):