diff --git a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SupportRequest_afterNewEvent.py b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SupportRequest_afterNewEvent.py new file mode 100644 index 0000000000000000000000000000000000000000..11087810653af17b9d735f2999ff88d90eb612c6 --- /dev/null +++ b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SupportRequest_afterNewEvent.py @@ -0,0 +1,14 @@ +"""Add a note to increase modification date of support request. + +This script has proxy roles, so that even users who cannot modify +the support request can still increase the modification date this way. +""" +from Products.ERP5Type.Message import translateString + +context.getPortalObject().portal_workflow.doActionFor( + context, + 'edit_action', + comment=translateString( + "New event ${event_reference}", + mapping={ + 'event_reference': event.getReference()})) diff --git a/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SupportRequest_afterNewEvent.xml b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SupportRequest_afterNewEvent.xml new file mode 100644 index 0000000000000000000000000000000000000000..55e0afeae04578a3328a9e538a6c6f032b99cc13 --- /dev/null +++ b/bt5/erp5_crm/SkinTemplateItem/portal_skins/erp5_crm/SupportRequest_afterNewEvent.xml @@ -0,0 +1,70 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>event</string> </value> + </item> + <item> + <key> <string>_proxy_roles</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>SupportRequest_afterNewEvent</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/tests/testCRM.py b/product/ERP5/tests/testCRM.py index f37ded77dae69c9da8264122412cf7459d19e122..8f6e97d8041a758fcbb0173560ab1a25fd641de1 100644 --- a/product/ERP5/tests/testCRM.py +++ b/product/ERP5/tests/testCRM.py @@ -431,6 +431,20 @@ class TestCRM(BaseTestCRM): self.assertNotEquals(support_request.getReference(), new_support_request.getReference()) + def test_posting_event_updates_support_request_modification_date(self): + """Posting an event following up a support request updates the support request date. + """ + sr = self.portal.support_request_module.newContent(portal_type='Support Request') + sr_modification_date = sr.getModificationDate() + event = self.portal.event_module.newContent( + portal_type='Web Message', + follow_up_value=sr + ) + self.assertEqual(sr.getModificationDate(), sr_modification_date) + event.start() + self.commit() + self.assertGreater(sr.getModificationDate(), sr_modification_date) + def test_Event_getResourceItemList(self): """Event_getResourceItemList returns