From 895bdd3b8811881c53b55456b0c58af706bb49d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com>
Date: Fri, 23 Mar 2012 11:04:14 +0100
Subject: [PATCH] Support cancelled order lines mapping to destroyed state.

---
 .../vifib_slap/SoftwareInstance_getStatus.xml     | 15 +++++++++++++--
 master/bt5/vifib_slap/bt/revision                 |  2 +-
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/master/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/SoftwareInstance_getStatus.xml b/master/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/SoftwareInstance_getStatus.xml
index c0dd496fa..585e205c3 100644
--- a/master/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/SoftwareInstance_getStatus.xml
+++ b/master/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/SoftwareInstance_getStatus.xml
@@ -50,7 +50,9 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>"""Dirty script to return Software Instance state"""\n
+            <value> <string encoding="cdata"><![CDATA[
+
+"""Dirty script to return Software Instance state"""\n
 if context.getPortalType() == "Sale Order Line":\n
   return "Under Approval"\n
 \n
@@ -58,6 +60,13 @@ sale_packing_list_line = context.SoftwareInstance_getInstancePackingListLine()\n
 if sale_packing_list_line is None:\n
   sale_packing_list_line = context.SoftwareInstance_getInstancePackingListLine(portal_type="Sale Order Line")\n
   if sale_packing_list_line is None:\n
+    if context.getPortalObject().portal_catalog.countResults(\n
+      portal_type=\'Sale Order Line\',\n
+      simulation_state=\'cancelled\',\n
+      default_aggregate_uid=context.getUid(),\n
+      default_resource_uid=context.restrictedTraverse(context.getPortalObject().portal_preferences.getPreferredInstanceSetupResource()).getUid()\n
+    )[0][0] > 0:\n
+      return \'Destroyed\'\n
     # Let\'s hope the sale order is not indexed yet\n
     return \'Looking for a free partition\'\n
 \n
@@ -90,7 +99,9 @@ elif service_url == portal_preferences.getPreferredInstanceHostingResource():\n
     return \'Stopped\'\n
 \n
 return \'Unable to calculate the status...\'\n
-</string> </value>
+
+
+]]></string> </value>
         </item>
         <item>
             <key> <string>_params</string> </key>
diff --git a/master/bt5/vifib_slap/bt/revision b/master/bt5/vifib_slap/bt/revision
index 38017008e..0552576c8 100644
--- a/master/bt5/vifib_slap/bt/revision
+++ b/master/bt5/vifib_slap/bt/revision
@@ -1 +1 @@
-668
\ No newline at end of file
+669
\ No newline at end of file
-- 
2.30.9