add slice tags
[plstackapi.git] / planetstack / core / admin.py
index 0329cd6..6e7bbb6 100644 (file)
@@ -9,7 +9,8 @@ from django.utils.safestring import mark_safe
 from django.contrib.auth.admin import UserAdmin
 from django.contrib.admin.widgets import FilteredSelectMultiple
 from django.contrib.auth.forms import ReadOnlyPasswordHashField
-from django.contrib.auth.signals import user_logged_in 
+from django.contrib.auth.signals import user_logged_in
+from django.utils import timezone
 
 
 class ReadonlyTabularInline(admin.TabularInline):
@@ -64,6 +65,10 @@ class SliceMembershipInline(admin.TabularInline):
     model = SliceMembership
     extra = 0
 
+class SliceTagInline(admin.TabularInline):
+    model = SliceTag
+    extra = 0
+
 class PlainTextWidget(forms.HiddenInput):
     input_type = 'hidden'
 
@@ -227,7 +232,7 @@ class KeyAdmin(OSModelAdmin):
 class SliceAdmin(OSModelAdmin):
     fields = ['name', 'site', 'serviceClass', 'description', 'slice_url']
     list_display = ('name', 'site','serviceClass', 'slice_url')
-    inlines = [SliverInline, SliceMembershipInline]
+    inlines = [SliverInline, SliceMembershipInline, SliceTagInline]
 
     def queryset(self, request):
         # admins can see all keys. Users can only see slices they belong to.
@@ -424,7 +429,7 @@ class UserAdmin(UserAdmin, OSModelAdmin):
     list_filter = ('site',)
     inlines = [SitePrivilegeInline, SliceMembershipInline]
     fieldsets = (
-        (None, {'fields': ('email', 'password', 'site', 'is_admin')}),
+        (None, {'fields': ('email', 'password', 'site', 'is_admin', 'timezone')}),
         ('Personal info', {'fields': ('firstname','lastname','phone', 'key')}),
         #('Important dates', {'fields': ('last_login',)}),
     )
@@ -520,6 +525,7 @@ class ReservationAdmin(admin.ModelAdmin):
     form = ReservationAddForm
 
     def add_view(self, request, form_url='', extra_context=None):
+        timezone.activate(request.user.timezone)
         request._refresh = False
         request._slice = None
         if request.method == 'POST':
@@ -538,6 +544,10 @@ class ReservationAdmin(admin.ModelAdmin):
         result =  super(ReservationAdmin, self).add_view(request, form_url, extra_context)
         return result
 
+    def changelist_view(self, request, extra_context = None):
+        timezone.activate(request.user.timezone)
+        return super(ReservationAdmin, self).changelist_view(request, extra_context)
+
     def get_form(self, request, obj=None, **kwargs):
         request._obj_ = obj\r
         if obj is not None:\r