From fff656be92db34d315393397831c2b23f6b5efe5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Le=20Ninivin?= <cedric.leninivin@tiolive.com>
Date: Thu, 11 Jun 2015 09:17:18 +0000
Subject: [PATCH] erp5_free_subscription_request: initial commit

---
 .../Base_createFreeSubscriptionRequest.xml    | 58 +++++++++++--------
 .../Entity_createFreeSubscription.xml         |  1 +
 2 files changed, 35 insertions(+), 24 deletions(-)

diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/Base_createFreeSubscriptionRequest.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/Base_createFreeSubscriptionRequest.xml
index 0317d4f249..7a3f2645b7 100644
--- a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/Base_createFreeSubscriptionRequest.xml
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/Base_createFreeSubscriptionRequest.xml
@@ -51,38 +51,48 @@
         <item>
             <key> <string>_body</string> </key>
             <value> <string>portal = context.getPortalObject()\n
-if portal.Base_getHMACHexdigest(portal.Base_getEventHMACKey(), event_id) != hmac:\n
-  from zExceptions import Unauthorized\n
-  raise Unauthorized\n
-\n
-event = portal.event_module[event_id]\n
-\n
-# First create a request\n
-request = portal.free_subscription_request_module.newContent(\n
-  source=event.getSource(),\n
-  destination=event.getDestination(),\n
-  resource = event.getResource(),\n
-  free_subscription_request_type="unsubscription",\n
-  causality_value=event,\n
-  )\n
+if subscription_type == "unsubscription":\n
+  if portal.Base_getHMACHexdigest(portal.Base_getEventHMACKey(), event_id) != hmac:\n
+    from zExceptions import Unauthorized\n
+    raise Unauthorized\n
+  \n
+  event = portal.event_module[event_id]\n
+  \n
+  # First create a request\n
+  request = portal.free_subscription_request_module.newContent(\n
+    source=event.getSource(),\n
+    destination=event.getDestination(),\n
+    resource = event.getResource(),\n
+    free_subscription_request_type="unsubscription",\n
+    causality_value=event,\n
+    )\n
+    \n
+  free_subscription_list = portal.portal_catalog(portal_type="Free Subscription",\n
+    default_resource_uid=event.getResourceUid(),\n
+    default_source_uid=event.getSourceUid(),\n
+    default_destination_uid=event.getDestinationUid())\n
   \n
-free_subscription_list = portal.portal_catalog(portal_type="Free Subscription",\n
-  default_resource_uid=event.getResourceUid(),\n
-  default_source_uid=event.getSourceUid(),\n
-  default_destination_uid=event.getDestinationUid())\n
+  if len(free_subscription_list) != 1:\n
+    raise ValueError("Impossible to find the free subscription (%d)" %\n
+      (len(free_subscription_list)))\n
+  free_subscription = free_subscription_list[0].getObject()\n
+  request.setFollowUpValue(free_subscription)\n
 \n
-if len(free_subscription_list) != 1:\n
-  raise ValueError("Impossible to find the free subscription (%d)" %\n
-    (len(free_subscription_list)))\n
-free_subscription = free_subscription_list[0].getObject()\n
-request.setFollowUpValue(free_subscription)\n
+else:\n
+  request = portal.free_subscription_request_module.newContent(\n
+    source=source,\n
+    destination=destination,\n
+    resource=resource,\n
+    free_subscription_request_type="subscription",\n
+    causality=causality,\n
+    )\n
 \n
 request.submit()\n
 </string> </value>
         </item>
         <item>
             <key> <string>_params</string> </key>
-            <value> <string>event_id, hmac</string> </value>
+            <value> <string>causality=None, resource=None, destination=None, source=None, event_id=None, hmac=None, subscription_type="unsubscription"</string> </value>
         </item>
         <item>
             <key> <string>_proxy_roles</string> </key>
diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/Entity_createFreeSubscription.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/Entity_createFreeSubscription.xml
index 25408300d3..ec8247795e 100644
--- a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/Entity_createFreeSubscription.xml
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/Entity_createFreeSubscription.xml
@@ -57,6 +57,7 @@ free_subscription = context.getPortalObject().free_subscription_module.newConten
   source=source,\n
   resource=resource,\n
   effective_date=start_date,\n
+  start_date=start_date,\n
   title=title)\n
 \n
 free_subscription.validate()\n
-- 
2.30.9