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 + + + + + + + + + + _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 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