diff --git a/bt5/erp5_free_subscription/CategoryTemplateItem/portal_categories/product_line/subscription.xml b/bt5/erp5_free_subscription/CategoryTemplateItem/portal_categories/product_line/subscription.xml
new file mode 100644
index 0000000000000000000000000000000000000000..01ba27b181d66dc2a6a03198e201ed4f4ae70c21
--- /dev/null
+++ b/bt5/erp5_free_subscription/CategoryTemplateItem/portal_categories/product_line/subscription.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+ -
+ _Add_portal_content_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Add_portal_folders_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Copy_or_Move_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Delete_objects_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+ Owner
+
+
+
+ -
+ categories
+
+
+ product_line/subscription
+
+
+
+ -
+ description
+
+
+
+
+ -
+ id
+ subscription
+
+ -
+ portal_type
+ Category
+
+ -
+ short_title
+ Subscription
+
+ -
+ title
+ Subscription
+
+
+
+
+
diff --git a/bt5/erp5_free_subscription/CategoryTemplateItem/portal_categories/role/newsletter_subscriber.xml b/bt5/erp5_free_subscription/CategoryTemplateItem/portal_categories/role/newsletter_subscriber.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e11067a0ed13316710665438d90c9343544c8a7d
--- /dev/null
+++ b/bt5/erp5_free_subscription/CategoryTemplateItem/portal_categories/role/newsletter_subscriber.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+ -
+ _Add_portal_content_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Add_portal_folders_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Copy_or_Move_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Delete_objects_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+ Owner
+
+
+
+ -
+ categories
+
+
+ role/newsletter_subscriber
+
+
+
+ -
+ codification
+ NEWSSUB
+
+ -
+ description
+
+
+
+
+ -
+ id
+ newsletter_subscriber
+
+ -
+ portal_type
+ Category
+
+ -
+ title
+ Newsletter subscriber
+
+
+
+
+
diff --git a/bt5/erp5_free_subscription/CategoryTemplateItem/portal_categories/use/crm/free_subscription.xml b/bt5/erp5_free_subscription/CategoryTemplateItem/portal_categories/use/crm/free_subscription.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5bf8feaf0ed8c59914a16e694d109f0e7f88bdd4
--- /dev/null
+++ b/bt5/erp5_free_subscription/CategoryTemplateItem/portal_categories/use/crm/free_subscription.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+ -
+ _Add_portal_content_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Add_portal_folders_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Copy_or_Move_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Delete_objects_Permission
+
+
+ Assignor
+ Manager
+
+
+
+ -
+ _Modify_portal_content_Permission
+
+
+ Assignee
+ Assignor
+ Manager
+ Owner
+
+
+
+ -
+ categories
+
+
+ use/crm/free_subscription
+
+
+
+ -
+ description
+
+
+
+
+ -
+ id
+ free_subscription
+
+ -
+ portal_type
+ Category
+
+ -
+ short_title
+ Free Subscription
+
+ -
+ title
+ Free Subscription
+
+
+
+
+
diff --git a/bt5/erp5_free_subscription/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml b/bt5/erp5_free_subscription/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml
index 3fef6691fbbb31b65df81a8e69a6cf281b5996c6..fb76c1e3974710aa2f1a82481eb0c9fbc7a13a3f 100644
--- a/bt5/erp5_free_subscription/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml
+++ b/bt5/erp5_free_subscription/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml
@@ -2,6 +2,9 @@
- Free Subscription
+
+ - Email
+
- Free Subscription Request
diff --git a/bt5/erp5_free_subscription/PortalTypePropertySheetTemplateItem/property_sheet_list.xml b/bt5/erp5_free_subscription/PortalTypePropertySheetTemplateItem/property_sheet_list.xml
index d1d3272d029755569f559840f7cab44a32dc0f33..9409a07e1cfcf898756f768db807d160a92bd669 100644
--- a/bt5/erp5_free_subscription/PortalTypePropertySheetTemplateItem/property_sheet_list.xml
+++ b/bt5/erp5_free_subscription/PortalTypePropertySheetTemplateItem/property_sheet_list.xml
@@ -6,6 +6,7 @@
- Arrow
- DublinCore
+ - Person
- Reference
\ No newline at end of file
diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription.xml
index cca7f3b8b061d91b3ec364c59841832f6a5d0276..84cfc6a6dcc1d6654f4c939bab509480bf2d2bc1 100644
--- a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription.xml
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription.xml
@@ -6,12 +6,33 @@
+ -
+ _local_properties
+
+
+
+
-
+ id
+ business_template_skin_layer_priority
+
+ -
+ type
+ float
+
+
+
+
+
-
_objects
+ -
+ business_template_skin_layer_priority
+ 50.0
+
-
id
erp5_free_subscription
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 0317d4f249919f4b8fde4a9a713cca993b877e77..5d2239f38ddb1c2bd8f741d1fc7868d9476e806f 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,50 @@
-
_body
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
+ default_email_coordinate_text=event.getDestinationValue().getDefaultEmailCoordinateText(),\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
+ default_email_coordinate_text=portal.restrictedTraverse(destination).getDefaultEmailCoordinateText(),\n
+ )\n
\n
request.submit()\n
-
_params
- event_id, hmac
+ causality=None, resource=None, destination=None, source=None, event_id=None, hmac=None, subscription_type="unsubscription"
-
_proxy_roles
diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/Base_unsubscribeFromEvent.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/Base_unsubscribeFromEvent.xml
index 470e9a1e109043899d1308688abb0647fb2b84f0..1dbea8b847414824a9e9fe19985aecb759a58d26 100644
--- a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/Base_unsubscribeFromEvent.xml
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/Base_unsubscribeFromEvent.xml
@@ -57,24 +57,21 @@ portal = context.getPortalObject()\n
request = context.REQUEST\n
event_id = request[\'id\']\n
\n
-user = portal.ERP5Site_getAuthenticatedMemberPersonValue()\n
-# If we have a logged in user it\'s probably a backoffice agent.\n
-if user is None:\n
- # If the referer contains the url of the event we are probably viewing the event\n
- # from ERP5 interface. We do not want to mark the event as delivered in that case\n
- # It can also be from fckeditor, in this case we don\'t have the event url in REFERER.\n
- if not ( (\'/event_module/%s\' % event_id) in request.HTTP_REFERER or \'fckeditor\' in request.HTTP_REFERER):\n
- if portal.Base_getHMACHexdigest(portal.Base_getEventHMACKey(), event_id) != request["hash"]:\n
- from zExceptions import Unauthorized\n
- raise Unauthorized()\n
- \n
- portal.portal_activities.activate(\n
- activity="SQLQueue").Base_createFreeSubscriptionRequest(\n
- event_id=request[\'id\'], \n
- hmac=request["hash"])\n
+# If the referer contains the url of the event we are probably viewing the event\n
+# from ERP5 interface. We do not want to mark the event as delivered in that case\n
+# It can also be from fckeditor, in this case we don\'t have the event url in REFERER.\n
+if not ( (\'/event_module/%s\' % event_id) in request.HTTP_REFERER or \'fckeditor\' in request.HTTP_REFERER):\n
+ if portal.Base_getHMACHexdigest(portal.Base_getEventHMACKey(), event_id) != request["hash"]:\n
+ from zExceptions import Unauthorized\n
+ raise Unauthorized()\n
+ \n
+ portal.portal_activities.activate(\n
+ activity="SQLQueue").Base_createFreeSubscriptionRequest(\n
+ event_id=request[\'id\'], \n
+ hmac=request["hash"])\n
\n
-# serve the web-page that will display a "Sucessfully unsubscribe" message\n
-return context.index_html(request, request.RESPONSE, format=None)\n
+# serve the image\n
+return context.Base_redirect(\'\')\n
-
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 25408300d3a75a1a3442c0bc9e1023075b28ce7c..ec8247795eaf8115267051dc5ffe28d5bc830f2b 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
diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequestModule_viewFreeSubscriptionRequestList/listbox.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequestModule_viewFreeSubscriptionRequestList/listbox.xml
index 99881076c84233f1e7e03cbce574e8603c3d4615..41f0010d48c87e0f016af7f324aff20a016e322b 100644
--- a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequestModule_viewFreeSubscriptionRequestList/listbox.xml
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequestModule_viewFreeSubscriptionRequestList/listbox.xml
@@ -10,6 +10,7 @@
delegated_list
+ all_columns
columns
selection_name
title
@@ -73,6 +74,17 @@
values
+ -
+ all_columns
+
+
+
+ default_email_coordinate_text
+ Recipient Email
+
+
+
+
-
columns
@@ -97,6 +109,10 @@
translated_validation_state_title
State
+
+ creation_date
+ Creation Date
+
diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_accept.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_accept.xml
index b9ef6fd9a52b0ce6d262ab3bf1870faca4032b15..7c0764bfd1cc54c428fc5e85a91f35e4accad97e 100644
--- a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_accept.xml
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_accept.xml
@@ -54,8 +54,42 @@
Intent is to ignore accept/accept race conditions but complain about\n
any other race condition (ex: accept/reject).\n
"""\n
-if context.getValidationState() != \'accepted\':\n
+if not context.getReference():\n
+ context.FreeSubscriptionRequest_generateReference()\n
+if context.getValidationState() != \'submitted\':\n
+ return\n
+person = context.getDestinationValue()\n
+if person:\n
+ email = person.getDefaultEmailCoordinateText()\n
+ if email and not context.getDefaultEmailCoordinateText(): # XXX workaround to fill the email field if not already set\n
+ context.setDefaultEmailCoordinateText(email)\n
context.accept()\n
+elif context.getDefaultEmailCoordinateText():\n
+ email = context.getDefaultEmailCoordinateText()\n
+ portal = context.getPortalObject()\n
+ person = portal.portal_catalog.getResultValue(\n
+ portal_type="Person",\n
+ reference=email,\n
+ )\n
+ if person:\n
+ context.reject(comment="Person already in the user data base")\n
+ else:\n
+ person = portal.portal_catalog.getResultValue(\n
+ portal_type="Person",\n
+ default_email_text=email,\n
+ )\n
+ if not person:\n
+ person = portal.person_module.newContent(\n
+ portal_type="Person",\n
+ default_email_text=email,\n
+ title=email,\n
+ )\n
+ person.validate()\n
+ elif person.getReference():\n
+ context.reject(comment="Person already in the user data base")\n
+ return\n
+ context.setDestination(person.getRelativeUrl())\n
+ context.accept()\n
-
diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_generateReference.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_generateReference.xml
index 4b365b06c19c31ad39af03a87eae3c6e90152068..bcb1e87036367755fe3e31be45651a615c4c649a 100644
--- a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_generateReference.xml
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_generateReference.xml
@@ -62,6 +62,8 @@ if context.getSource():\n
\n
source_reference = \'%s-%s-%05d\' % (reference_base, group_reference, counter)\n
context.setReference(source_reference)\n
+ if not context.getTitle():\n
+ context.setTitle(source_reference)\n
-
diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view.xml
index 9c05f62945f2e3213b138b7cba0da9d8f260a9e1..2fc7792dda3dbc91089d1f06dbecf037268b43cf 100644
--- a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view.xml
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view.xml
@@ -79,6 +79,8 @@
my_resource_title
my_causality_title
my_follow_up_title
+ my_default_email_coordinate_text
+ my_default_email_url_string
diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view/my_causality_title.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view/my_causality_title.xml
index 908a5c46fee5a7262fbabd802b2006f58056a523..93e4a044a799b63ec2b9505e267c4de9ad4e9f63 100644
--- a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view/my_causality_title.xml
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view/my_causality_title.xml
@@ -112,6 +112,10 @@
Event
Event
+
+ Credential Request
+ Credential Request
+
@@ -121,7 +125,7 @@
-
title
- Event
+ Causality
diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view/my_default_email_coordinate_text.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view/my_default_email_coordinate_text.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d09034c96c53e218c7e21d134932279265749634
--- /dev/null
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view/my_default_email_coordinate_text.xml
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+ -
+ delegated_list
+
+
+ enabled
+
+
+
+ -
+ id
+ my_default_email_coordinate_text
+
+ -
+ message_values
+
+
+
-
+ external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+ overrides
+
+
+
-
+ field_id
+
+
+ -
+ form_id
+
+
+ -
+ target
+
+
+
+
+
+ -
+ tales
+
+
+
-
+ enabled
+
+ AAAAAAAAAAI=
+
+
+ -
+ field_id
+
+
+ -
+ form_id
+
+
+ -
+ target
+
+
+
+
+
+ -
+ values
+
+
+
-
+ enabled
+ 1
+
+ -
+ field_id
+ my_email
+
+ -
+ form_id
+ Base_viewFieldLibrary
+
+ -
+ target
+ Click to edit the target
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ _text
+ python: (here.hasDefaultEmail() and not here.getDefaultEmail().isDetailed()) or not here.hasDefaultEmail()
+
+
+
+
+
diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view/my_default_email_url_string.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view/my_default_email_url_string.xml
new file mode 100644
index 0000000000000000000000000000000000000000..87bdf3cd34e22fa525511623d458af1f43fda9f3
--- /dev/null
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view/my_default_email_url_string.xml
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+ -
+ delegated_list
+
+
+ enabled
+
+
+
+ -
+ id
+ my_default_email_url_string
+
+ -
+ message_values
+
+
+
-
+ external_validator_failed
+ The input failed the external validator.
+
+
+
+
+ -
+ overrides
+
+
+
-
+ field_id
+
+
+ -
+ form_id
+
+
+ -
+ target
+
+
+
+
+
+ -
+ tales
+
+
+
-
+ enabled
+
+ AAAAAAAAAAI=
+
+
+ -
+ field_id
+
+
+ -
+ form_id
+
+
+ -
+ target
+
+
+
+
+
+ -
+ values
+
+
+
-
+ enabled
+ 1
+
+ -
+ field_id
+ my_view_mode_email_url_string
+
+ -
+ form_id
+ Base_viewBaseFieldLibrary
+
+ -
+ target
+ Click to edit the target
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ _text
+ python:here.hasDefaultEmail() and here.getDefaultEmail().isDetailed()
+
+
+
+
+
diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscription_generateReference.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscription_generateReference.xml
index 9ca12bc804df0a6f29d8d05fa7a1b34e0516b19b..941a194ec06d8d0e81283a3a19d2b57b5b965d05 100644
--- a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscription_generateReference.xml
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscription_generateReference.xml
@@ -62,6 +62,8 @@ if context.getSource():\n
\n
source_reference = \'%s-%s-%05d\' % (reference_base, group_reference, counter)\n
context.setReference(source_reference)\n
+ if not context.getTitle():\n
+ context.setTitle(source_reference)\n
-
diff --git a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/NotificationMessage_getSubstitutionMappingDictFromEvent.xml b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/NotificationMessage_getSubstitutionMappingDictFromEvent.xml
index cf7639648b77520db49145241f4675f6d0563ac7..a4eefe6c60d69c889b29b618ac1d602312b84d19 100644
--- a/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/NotificationMessage_getSubstitutionMappingDictFromEvent.xml
+++ b/bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/NotificationMessage_getSubstitutionMappingDictFromEvent.xml
@@ -54,7 +54,6 @@
from Products.ERP5Type.Message import translateString\n
portal = context.getPortalObject()\n
-format_address = portal.ERP5Site_formatFrenchAddressText\n
\n
def getSubstitutionMappingDict():\n
destination = event_value.getDestinationValue()\n
@@ -67,7 +66,7 @@ def getSubstitutionMappingDict():\n
kw[\'telephone\'] = destination.getDefaultTelephoneText() or \'\'\n
kw[\'mobile\'] = destination.getMobileTelephoneText() or \'\'\n
kw[\'creation_date\'] = destination.getCreationDate()\n
- kw[\'origin_campaign\'] = destination.getOriginReference()\n
+ #kw[\'origin_campaign\'] = destination.getOriginReference()\n
\n
if destination.getPortalType() == \'Person\':\n
kw[\'first_name\'] = destination.getFirstName()\n
@@ -88,7 +87,7 @@ def getSubstitutionMappingDict():\n
hmac = portal.Base_getHMACHexdigest(key=portal.Base_getEventHMACKey(), message=event_value.getId())\n
kw["image_parameters"] = "/Base_openEvent?id=%s&hash=%s" %(event_value.getId(), hmac)\n
kw["newsletter_parameters"] = "/Base_readEvent?id=%s&hash=%s" %(event_value.getId(), hmac)\n
- kw["unsubscribe_parameters"] = "/Base_unsubscribe?id=%s&hash=%s" %(event_value.getId(), hmac)\n
+ kw["unsubscribe_parameters"] = "/Base_unsubscribeFromEvent?id=%s&hash=%s" %(event_value.getId(), hmac)\n
\n
return kw\n
\n
diff --git a/bt5/erp5_free_subscription/WorkflowTemplateItem/portal_workflow/free_subscription_interaction_workflow/interactions/validate_free_subscription.xml b/bt5/erp5_free_subscription/WorkflowTemplateItem/portal_workflow/free_subscription_interaction_workflow/interactions/validate_free_subscription.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1f7378a9785f142315bb538255682339465a5014
--- /dev/null
+++ b/bt5/erp5_free_subscription/WorkflowTemplateItem/portal_workflow/free_subscription_interaction_workflow/interactions/validate_free_subscription.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
-
+ actbox_category
+ workflow
+
+ -
+ actbox_name
+
+
+ -
+ actbox_url
+
+
+ -
+ activate_script_name
+
+
+
+
+ -
+ after_script_name
+
+
+ FreeSubscription_updateReference
+
+
+
+ -
+ before_commit_script_name
+
+
+
+
+ -
+ description
+
+
+ -
+ guard
+
+
+
+
+ -
+ id
+ validate_free_subscription
+
+ -
+ method_id
+
+
+ validate
+
+
+
+ -
+ once_per_transaction
+ 0
+
+ -
+ portal_type_filter
+
+
+ Free Subscription
+
+
+
+ -
+ portal_type_group_filter
+
+
+
+
+ -
+ script_name
+
+
+
+
+ -
+ temporary_document_disallowed
+ 0
+
+ -
+ title
+
+
+ -
+ trigger_type
+ 2
+
+
+
+
+
diff --git a/bt5/erp5_free_subscription/WorkflowTemplateItem/portal_workflow/free_subscription_interaction_workflow/scripts/FreeSubscription_updateReference.xml b/bt5/erp5_free_subscription/WorkflowTemplateItem/portal_workflow/free_subscription_interaction_workflow/scripts/FreeSubscription_updateReference.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0556eb919e482c1d7db19b1fceedf9c813248c4c
--- /dev/null
+++ b/bt5/erp5_free_subscription/WorkflowTemplateItem/portal_workflow/free_subscription_interaction_workflow/scripts/FreeSubscription_updateReference.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+ -
+ Script_magic
+ 3
+
+ -
+ _bind_names
+
+
+
+
+ -
+ _body
+ free_subscription = state_change["object"]\n
+\n
+free_subscription.FreeSubscription_generateReference()\n
+
+
+ -
+ _params
+ state_change, **kw
+
+ -
+ id
+ FreeSubscription_updateReference
+
+
+
+
+
diff --git a/bt5/erp5_free_subscription/WorkflowTemplateItem/portal_workflow/free_subscription_interaction_workflow/scripts/Request_updateFreeSubscription.xml b/bt5/erp5_free_subscription/WorkflowTemplateItem/portal_workflow/free_subscription_interaction_workflow/scripts/Request_updateFreeSubscription.xml
index 9d50a1feea87f3726c403030dfe9673048d85916..8292b4bfdecd241ef93e1e65bf5bd83df6d96eec 100644
--- a/bt5/erp5_free_subscription/WorkflowTemplateItem/portal_workflow/free_subscription_interaction_workflow/scripts/Request_updateFreeSubscription.xml
+++ b/bt5/erp5_free_subscription/WorkflowTemplateItem/portal_workflow/free_subscription_interaction_workflow/scripts/Request_updateFreeSubscription.xml
@@ -59,13 +59,18 @@ if request.getFreeSubscriptionRequestType() == "unsubscription":\n
elif request.getFreeSubscriptionRequestType() == "subscription":\n
from DateTime import DateTime\n
portal = request.getPortalObject()\n
+ destination_value = request.getDestinationValue()\n
free_subscription = portal.free_subscription_module.newContent(\n
source=request.getSource(),\n
- destination=request.getDestination(),\n
+ destination_value=destination_value,\n
resource=request.getResource(),\n
effective_date=DateTime())\n
free_subscription.validate()\n
request.setFollowUpValue(free_subscription)\n
+ career_role_list = destination_value.getCareerRoleList([])\n
+ if not any([x.split("/")[0] == "newsletter_subscriber" for x in career_role_list]):\n
+ career_role_list.append(\'newsletter_subscriber\')\n
+ destination_value.setCareerRoleList(career_role_list)\n
-
diff --git a/bt5/erp5_free_subscription/bt/template_base_category_list b/bt5/erp5_free_subscription/bt/template_base_category_list
index 4f36ea8ae08297642f735902bb548d3eb1b7b9c8..ae45e8419238fe96a0db3d10a41c2b9acbfd3870 100644
--- a/bt5/erp5_free_subscription/bt/template_base_category_list
+++ b/bt5/erp5_free_subscription/bt/template_base_category_list
@@ -1 +1,4 @@
-free_subscription_request_type
\ No newline at end of file
+free_subscription_request_type
+product_line/subscription
+role/newsletter_subscriber
+use/crm/free_subscription
\ No newline at end of file
diff --git a/bt5/erp5_free_subscription/bt/template_portal_type_allowed_content_type_list b/bt5/erp5_free_subscription/bt/template_portal_type_allowed_content_type_list
index d2d28db93bea8ccf850a672f08a8dd323d1a6e0e..a3fb0de112b0b02e6ff47e76a1f8f2c4f9e0baf0 100644
--- a/bt5/erp5_free_subscription/bt/template_portal_type_allowed_content_type_list
+++ b/bt5/erp5_free_subscription/bt/template_portal_type_allowed_content_type_list
@@ -1,2 +1,3 @@
Free Subscription Module | Free Subscription
-Free Subscription Request Module | Free Subscription Request
\ No newline at end of file
+Free Subscription Request Module | Free Subscription Request
+Free Subscription Request | Email
\ No newline at end of file
diff --git a/bt5/erp5_free_subscription/bt/template_portal_type_property_sheet_list b/bt5/erp5_free_subscription/bt/template_portal_type_property_sheet_list
index 7c25aede8a98e031ace0a714c6e3e332a837fbd3..f89a8ee8b599d65af7a3271c67a0375269d9a3a5 100644
--- a/bt5/erp5_free_subscription/bt/template_portal_type_property_sheet_list
+++ b/bt5/erp5_free_subscription/bt/template_portal_type_property_sheet_list
@@ -1,5 +1,7 @@
Free Subscription Request | Arrow
Free Subscription Request | DublinCore
+Free Subscription Request | Person
+Free Subscription Request | Reference
Free Subscription Request | Reference
Free Subscription | DublinCore
Free Subscription | Version
\ No newline at end of file