[Erp5-report] r45304 gabriel - in /erp5/trunk/bt5/erp5_web_ung_theme: SkinTemplateItem/port...

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Apr 12 04:19:35 CEST 2011


Author: gabriel
Date: Tue Apr 12 04:19:35 2011
New Revision: 45304

URL: http://svn.erp5.org?rev=45304&view=rev
Log:
refactor code to fix issue when the user changes the event type in the edition dialog of UNG Calendar

Modified:
    erp5/trunk/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/Base_updateCalendarEventList.xml
    erp5/trunk/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/ung_js/ung_calendar.js.xml
    erp5/trunk/bt5/erp5_web_ung_theme/TestTemplateItem/testUNG.py
    erp5/trunk/bt5/erp5_web_ung_theme/bt/revision

Modified: erp5/trunk/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/Base_updateCalendarEventList.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/Base_updateCalendarEventList.xml?rev=45304&r1=45303&r2=45304&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/Base_updateCalendarEventList.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/Base_updateCalendarEventList.xml [utf8] Tue Apr 12 04:19:35 2011
@@ -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

Modified: erp5/trunk/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/ung_js/ung_calendar.js.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/ung_js/ung_calendar.js.xml?rev=45304&r1=45303&r2=45304&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/ung_js/ung_calendar.js.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_web_ung_theme/SkinTemplateItem/portal_skins/erp5_web_ung_theme/ung_js/ung_calendar.js.xml [utf8] Tue Apr 12 04:19:35 2011
@@ -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

Modified: erp5/trunk/bt5/erp5_web_ung_theme/TestTemplateItem/testUNG.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_web_ung_theme/TestTemplateItem/testUNG.py?rev=45304&r1=45303&r2=45304&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_web_ung_theme/TestTemplateItem/testUNG.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_web_ung_theme/TestTemplateItem/testUNG.py [utf8] Tue Apr 12 04:19:35 2011
@@ -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"""

Modified: erp5/trunk/bt5/erp5_web_ung_theme/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_web_ung_theme/bt/revision?rev=45304&r1=45303&r2=45304&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_web_ung_theme/bt/revision [utf8] (original)
+++ erp5/trunk/bt5/erp5_web_ung_theme/bt/revision [utf8] Tue Apr 12 04:19:35 2011
@@ -1 +1 @@
-349
\ No newline at end of file
+350
\ No newline at end of file



More information about the Erp5-report mailing list