From 86279fcd8e1f1cb171f74da7b6c9c6222cd9fe85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Le=20Ninivin?= Date: Thu, 17 Sep 2015 14:44:57 +0000 Subject: [PATCH] erp5_free_subscription: Merge EOS work * Add subscribe for Free Subscription Requests * Various improvments --- .../product_line/subscription.xml | 89 ++++++++++++++ .../role/newsletter_subscriber.xml | 89 ++++++++++++++ .../use/crm/free_subscription.xml | 89 ++++++++++++++ .../allowed_content_types.xml | 3 + .../property_sheet_list.xml | 1 + .../portal_skins/erp5_free_subscription.xml | 21 ++++ .../Base_createFreeSubscriptionRequest.xml | 60 +++++---- .../Base_unsubscribeFromEvent.xml | 31 +++-- .../Entity_createFreeSubscription.xml | 1 + .../listbox.xml | 16 +++ .../FreeSubscriptionRequest_accept.xml | 36 +++++- ...eSubscriptionRequest_generateReference.xml | 2 + .../FreeSubscriptionRequest_view.xml | 2 + .../my_causality_title.xml | 6 +- .../my_default_email_coordinate_text.xml | 115 ++++++++++++++++++ .../my_default_email_url_string.xml | 115 ++++++++++++++++++ .../FreeSubscription_generateReference.xml | 2 + ...ge_getSubstitutionMappingDictFromEvent.xml | 5 +- .../validate_free_subscription.xml | 102 ++++++++++++++++ .../FreeSubscription_updateReference.xml | 69 +++++++++++ .../Request_updateFreeSubscription.xml | 7 +- .../bt/template_base_category_list | 5 +- ...late_portal_type_allowed_content_type_list | 3 +- .../template_portal_type_property_sheet_list | 2 + 24 files changed, 822 insertions(+), 49 deletions(-) create mode 100644 bt5/erp5_free_subscription/CategoryTemplateItem/portal_categories/product_line/subscription.xml create mode 100644 bt5/erp5_free_subscription/CategoryTemplateItem/portal_categories/role/newsletter_subscriber.xml create mode 100644 bt5/erp5_free_subscription/CategoryTemplateItem/portal_categories/use/crm/free_subscription.xml create mode 100644 bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view/my_default_email_coordinate_text.xml create mode 100644 bt5/erp5_free_subscription/SkinTemplateItem/portal_skins/erp5_free_subscription/FreeSubscriptionRequest_view/my_default_email_url_string.xml create mode 100644 bt5/erp5_free_subscription/WorkflowTemplateItem/portal_workflow/free_subscription_interaction_workflow/interactions/validate_free_subscription.xml create mode 100644 bt5/erp5_free_subscription/WorkflowTemplateItem/portal_workflow/free_subscription_interaction_workflow/scripts/FreeSubscription_updateReference.xml 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 00000000000..01ba27b181d --- /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 00000000000..e11067a0ed1 --- /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 00000000000..5bf8feaf0ed --- /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 3fef6691fbb..fb76c1e3974 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 d1d3272d029..9409a07e1cf 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 cca7f3b8b06..84cfc6a6dcc 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 0317d4f2499..5d2239f38dd 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 470e9a1e109..1dbea8b8474 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 25408300d3a..ec8247795ea 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 99881076c84..41f0010d48c 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 b9ef6fd9a52..7c0764bfd1c 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 4b365b06c19..bcb1e870363 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 9c05f62945f..2fc7792dda3 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 908a5c46fee..93e4a044a79 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 00000000000..d09034c96c5 --- /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 00000000000..87bdf3cd34e --- /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 9ca12bc804d..941a194ec06 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 cf7639648b7..a4eefe6c60d 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 00000000000..1f7378a9785 --- /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 00000000000..0556eb919e4 --- /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 + + + + + + + + + + _asgns + + + + name_container + container + + + name_context + context + + + name_m_self + script + + + name_subpath + traverse_subpath + + + + + + + + + + + _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 9d50a1feea8..8292b4bfdec 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 4f36ea8ae08..ae45e841923 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 d2d28db93be..a3fb0de112b 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 7c25aede8a9..f89a8ee8b59 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 -- 2.30.9