diff --git a/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/Base_updateCalendarEventList.xml b/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/Base_updateCalendarEventList.xml index 58c960bddb48ebf05df0f499d5adcbb4034326b9..78377d35e87b4959e8794aa626b46446a7b5fe9f 100644 --- a/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/Base_updateCalendarEventList.xml +++ b/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/Base_updateCalendarEventList.xml @@ -60,6 +60,8 @@ from DateTime import DateTime\n import random\n \n def convertToERP5DateTime(date):\n + if not date:\n + return None\n date, hour = date.split()\n month, day, year = date.split("/")\n return DateTime("%s/%s/%s %s" % (month, day, year, hour))\n @@ -116,7 +118,8 @@ if request_type == "list":\n \n elif request_type == "remove":\n title = form.get("title")\n - catalog_object = portal.portal_catalog.getResultValue(portal_type=portal_type_list, title=title)\n + catalog_object = portal.portal_catalog.getResultValue(portal_type=portal_type_list,\n + title=title)\n event = context.restrictedTraverse(catalog_object.getPath())\n portal.event_module.deleteContent(event.getId())\n return dumps({"IsSuccess": True})\n @@ -132,12 +135,25 @@ elif request_type == "update":\n catalog_object = portal.portal_catalog.getResultValue(portal_type=portal_type_list,\n id=event_id)\n event = context.restrictedTraverse(catalog_object.getPath())\n - if title and event.getTitle() != title:\n - event.setTitle(title)\n - if text_content and event.getDescription() != text_content:\n - event.setDescription(text_content)\n - event.setStartDate(start_date)\n - event.setStopDate(end_date)\n + event_portal_type = form.get(\'event_portal_type\')\n + if event.getPortalType() != event_portal_type and event_portal_type in portal_type_list:\n + new_event = portal.event_module.newContent(portal_type=event_portal_type)\n + new_event.edit(start_date=start_date,\n + end_date=end_date,\n + title=title,\n + description=text_content)\n + portal.event_module.deleteContent(event.getId())\n + else:\n + kw = {}\n + if title and event.getTitle() != title:\n + kw["title"] = title\n + if text_content and event.getDescription() != text_content:\n + kw["description"] = text_content\n + if start_date is not None:\n + kw["start_date"] = start_date\n + if end_date is not None:\n + kw["stop_date"] = end_date\n + event.edit(**kw)\n return dumps({"IsSuccess": True})\n \n elif request_type == "add":\n diff --git a/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/ung_js/ung_calendar.js.xml b/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/ung_js/ung_calendar.js.xml index 78b326a1e6d00f28bff45791233f3ebd7f7c4954..c5f1db1a42c470f750d5f067473c1f0c0b945b74 100644 --- a/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/ung_js/ung_calendar.js.xml +++ b/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/ung_js/ung_calendar.js.xml @@ -67,7 +67,7 @@ function Edit(data){\n title: "Update Event",\n buttons: {\n "Save": function(){\n - data = $("form#create_new_event").serializeArray();\n + var data = $("form#create_new_event").serializeArray();\n var dataHash = {};\n for (var i=0; i<data.length; i++)\n dataHash[data[i].name] = data[i].value;\n @@ -84,6 +84,7 @@ function Edit(data){\n dataHash.stop_date_minute;\n \n var paramList = [{name : \'CalendarEndTime\', \'value\': stop_date},\n + {name : \'event_portal_type\', \'value\': dataHash.portal_type},\n {name : \'CalendarStartTime\', \'value\': start_date},\n {name : \'title\', \'value\': dataHash.title},\n {name : \'request_type\', \'value\': \'update\'},\n diff --git a/bt5/erp5_web_ung_theme/TestTemplateItem/testUNG.py b/bt5/erp5_web_ung_theme/TestTemplateItem/testUNG.py index 0aed5757866d64c6a1a7d2702549d6ae88773f7e..3c53f6d38ab1420e1c85570bb3f4002c5b516f73 100644 --- a/bt5/erp5_web_ung_theme/TestTemplateItem/testUNG.py +++ b/bt5/erp5_web_ung_theme/TestTemplateItem/testUNG.py @@ -41,12 +41,12 @@ class TestUNG(ERP5TypeTestCase): return "UNG Tests" def getBusinessTemplateList(self): - return ('erp5_base', + return ('erp5_ingestion_mysql_innodb_catalog', + 'erp5_base', + 'erp5_jquery', 'erp5_web', - 'erp5_ingestion_mysql_innodb_catalog', 'erp5_core_proxy_field_legacy', 'erp5_ingestion', - 'erp5_jquery', 'erp5_jquery_ui', 'erp5_dms', 'erp5_crm', @@ -268,14 +268,56 @@ class TestUNG(ERP5TypeTestCase): self.portal.Base_updateCalendarEventList("update") self.stepTic() self.assertEquals(web_message.getTitle(), "Buy Coffee") - self.portal.REQUEST.form.clear() - form_dict = dict(title=web_message.getTitle(), - id=web_message.getId()) + form_dict["event_portal_type"] = "Note" self.portal.REQUEST.form.update(form_dict) - self.portal.Base_updateCalendarEventList("remove") + self.portal.Base_updateCalendarEventList("update") self.stepTic() web_message = self.portal.portal_catalog.getResultValue(portal_type="Web Message") self.assertEquals(web_message, None) + note = self.portal.portal_catalog.getResultValue(portal_type="Note") + self.assertEquals(note.getTitle(), "Buy Coffee") + self.portal.REQUEST.form.clear() + form_dict = dict(title=note.getTitle(), + id=note.getId()) + self.portal.REQUEST.form.update(form_dict) + self.portal.Base_updateCalendarEventList("remove") + self.stepTic() + note = self.portal.portal_catalog.getResultValue(portal_type="Note", + title="Buy Coffee") + self.assertEquals(note, None) + self.portal.REQUEST.form.clear() + start_date = DateTime() + end_date = DateTime() + 1 + form_dict = dict(CalendarStartTime=start_date.strftime("%m/%d/%Y %H:%M"), + CalendarEndTime=end_date.strftime("%m/%d/%Y %H:%M"), + CalendarTitle="Another Sample", + portal_type="Letter") + self.portal.REQUEST.form.update(form_dict) + self.portal.Base_updateCalendarEventList("add") + self.stepTic() + letter = self.portal.portal_catalog.getResultValue(portal_type="Letter", + title="Another Sample") + self.assertEquals(letter.getPortalType(), "Letter") + self.assertEquals(letter.getTitle(), "Another Sample") + self.assertEquals(letter.getStartDate().hour(), start_date.hour()) + self.assertEquals(letter.getStartDate().day(), start_date.day()) + self.assertEquals(letter.getStopDate().hour(), end_date.hour()) + self.assertEquals(letter.getStopDate().day(), end_date.day()) + self.portal.REQUEST.form.clear() + form_dict = dict(title="Change only the Title of Sample", + event_id=letter.getId()) + self.portal.REQUEST.form.update(form_dict) + self.portal.Base_updateCalendarEventList("update") + self.stepTic() + letter = self.portal.portal_catalog.getResultValue(portal_type="Letter", + title="Another Sample") + self.assertEquals(letter, None) + letter = self.portal.portal_catalog.getResultValue(portal_type="Letter", + title="Change only the Title of Sample") + self.assertEquals(letter.getStartDate().hour(), start_date.hour()) + self.assertEquals(letter.getStartDate().day(), start_date.day()) + self.assertEquals(letter.getStopDate().hour(), end_date.hour()) + self.assertEquals(letter.getStopDate().day(), end_date.day()) def testERPSite_createUNGUser(self): """Test if script creates an user correctly""" diff --git a/bt5/erp5_web_ung_theme/bt/revision b/bt5/erp5_web_ung_theme/bt/revision index 235adf8bd8fe3b9844d65f77956d73f5fed04ede..0dbf139f8d1a85546880d56c8ff838638c454501 100644 --- a/bt5/erp5_web_ung_theme/bt/revision +++ b/bt5/erp5_web_ung_theme/bt/revision @@ -1 +1 @@ -349 \ No newline at end of file +350 \ No newline at end of file