Limit total number of active bookings per user
[pharos-tools.git] / dashboard / src / workflow / snapshot_workflow.py
index 9d4b880..002aee5 100644 (file)
@@ -8,12 +8,14 @@
 ##############################################################################
 
 
-import datetime
+from django.utils import timezone
 import json
 
-from resource_inventory.models import *
-from workflow.models import *
-from workflow.forms import *
+from booking.models import Booking
+from resource_inventory.models import Host, Image
+from workflow.models import WorkflowStep
+from workflow.forms import SnapshotMetaForm, SnapshotHostSelectForm
+
 
 class Select_Host_Step(WorkflowStep):
     template = "snapshot_workflow/steps/select_host.html"
@@ -25,7 +27,7 @@ class Select_Host_Step(WorkflowStep):
         context = super(Select_Host_Step, self).get_context()
         context['form'] = SnapshotHostSelectForm()
         booking_hosts = {}
-        now = datetime.datetime.now()
+        now = timezone.now()
         user = self.repo_get(self.repo.SESSION_USER)
         bookings = Booking.objects.filter(start__lt=now, end__gt=now, owner=user)
         for booking in bookings:
@@ -37,7 +39,6 @@ class Select_Host_Step(WorkflowStep):
             for genericHost in booking.resource.template.getHosts():
                 booking_hosts[booking.id]['hosts'].append({"name": genericHost.resource.name})
 
-
         context['booking_hosts'] = booking_hosts
 
         chosen_host = self.repo_get(self.repo.SNAPSHOT_MODELS, {}).get("host")
@@ -77,6 +78,7 @@ class Select_Host_Step(WorkflowStep):
         self.metastep.set_valid("Success")
         return self.render(request)
 
+
 class Image_Meta_Step(WorkflowStep):
     template = "snapshot_workflow/steps/meta.html"
     title = "Additional Information"
@@ -85,10 +87,16 @@ class Image_Meta_Step(WorkflowStep):
 
     def get_context(self):
         context = super(Image_Meta_Step, self).get_context()
-        context['form'] = SnapshotMetaForm()
+        name = self.repo_get(self.repo.SNAPSHOT_NAME, False)
+        desc = self.repo_get(self.repo.SNAPSHOT_DESC, False)
+        form = None
+        if name and desc:
+            form = SnapshotMetaForm(initial={"name": name, "description": desc})
+        else:
+            form = SnapshotMetaForm()
+        context['form'] = form
         return context
 
-
     def post_render(self, request):
         form = SnapshotMetaForm(request.POST)
         if form.is_valid():