from jira import JIRA
 from rest_framework.authtoken.models import Token
 
+
 from account.forms import AccountSettingsForm
 from account.jira_util import SignatureMethod_RSA_SHA1
 from account.models import UserProfile
     if not request.user.is_authenticated:
         return render(request, "dashboard/login.html", {'title': 'Authentication Required'})
     template = "account/resource_list.html"
-    resources = ResourceTemplate.objects.filter(
-        owner=request.user).prefetch_related("configbundle_set")
-    mapping = {}
-    resource_list = []
-    booking_mapping = {}
-    for grb in resources:
-        resource_list.append(grb)
-        mapping[grb.id] = [{"id": x.id, "name": x.name} for x in grb.configbundle_set.all()]
-        if Booking.objects.filter(resource__template=grb, end__gt=timezone.now()).exists():
-            booking_mapping[grb.id] = "true"
+
+    active_bundles = [book.bundle for book in Booking.objects.filter(
+        owner=request.user, end__gte=timezone.now())]
+    active_resources = [bundle.template.id for bundle in active_bundles]
+    resource_list = list(ResourceTemplate.objects.filter(owner=request.user))
+
     context = {
         "resources": resource_list,
-        "grb_mapping": mapping,
-        "booking_mapping": booking_mapping,
+        "active_resources": active_resources,
         "title": "My Resources"
     }
     return render(request, template, context=context)
     config = get_object_or_404(ResourceTemplate, pk=config_id)
     if not request.user.id == config.owner.id:
         return HttpResponse('no')  # 403?
-    if Booking.objects.filter(config_bundle=config, end__gt=timezone.now()).exists():
+    if Booking.objects.filter(resource__template=config, end__gt=timezone.now()).exists():
         return HttpResponse('no')
     config.delete()
     return HttpResponse('')
 
         {
             'title': "Lab Overview",
             'lab': lab,
-            'hostprofiles': lab.hostprofiles.all(),
+            'hostprofiles': ResourceProfile.objects.filter(labs=lab),
             'images': images,
         }
     )
 
         var formData = ajaxForm.serialize();
         req = new XMLHttpRequest();
         var url = "delete/" + current_config_id;
+        req.onreadystatechange = function() {
+            if (this.readyState == 4 && this.status == 200) {
+                location.reload();
+            }
+        };
         req.open("POST", url, true);
         req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         req.onerror = function() { alert("problem submitting form"); }
 
 {% endfor %}
 </div>
 <script>
-    var grb_mapping = {{grb_mapping|safe|default:"{}"}};
-    var booking_mapping = {{booking_mapping|safe|default:"{}"}};
+    var active_resources = {{active_resources|safe|default:"{}"}}
     var current_resource_id = -1;
     function delete_resource(resource_id) {
         document.getElementById("confirm_delete_button").removeAttribute("disabled");
-        var configs = grb_mapping[resource_id];
         var warning = document.createTextNode("Are You Sure?");
         var warning_subtext = document.createTextNode("This cannot be undone");
-        if(booking_mapping[resource_id]){
-            var warning = document.createTextNode("This resource is being used. It cannot be deleted.");
+        if(active_resources[resource_id]){
+            var warning = document.createTextNode("This resource is being used or is scheduled to be used. It cannot be deleted.");
             var warning_subtext = document.createTextNode("If your booking just ended, you may need to give us a few minutes to clean it up before this can be removed.");
 
             document.getElementById("confirm_delete_button").disabled = true;
         }
-        else if(configs.length > 0) {
-            list_configs(configs);
-            warning_text = "Are You Sure? The following Configurations will also be deleted.";
+        else {
+            warning_text = "Are You Sure?";
             warning = document.createTextNode(warning_text);
         }
 
     function set_modal_text(title, text) {
         var clear = function(node) {
             while(node.lastChild) {
-            node.removeChild(node.lastChild);
+                node.removeChild(node.lastChild);
             }
         }
         var warning_title = document.getElementById("config_warning");
         var formData = ajaxForm.serialize();
         req = new XMLHttpRequest();
         var url = "delete/" + current_resource_id;
+        req.onreadystatechange = function() {
+            if (this.readyState == 4 && this.status == 200) {
+                location.reload();
+            }
+        };
         req.open("POST", url, true);
         req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         req.onerror = function() { alert("problem submitting form"); }