[Erp5-report] r19868 - in /erp5/trunk/products/ERP5/bootstrap/erp5_core: SkinTemplateItem/p...
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Mar 13 18:40:14 CET 2008
Author: romain
Date: Thu Mar 13 18:40:14 2008
New Revision: 19868
URL: http://svn.erp5.org?rev=19868&view=rev
Log:
Only call encapsulated editor to prevent unauthorized, as this script is only used by planningbox.
This script is considered as a hack, and will be removed soon.
Modified:
erp5/trunk/products/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_editUnrestricted.xml
erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision
Modified: erp5/trunk/products/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_editUnrestricted.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_editUnrestricted.xml?rev=19868&r1=19867&r2=19868&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_editUnrestricted.xml (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_editUnrestricted.xml Thu Mar 13 18:40:14 2008
@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
- <tuple>
- <string>Products.PythonScripts.PythonScript</string>
- <string>PythonScript</string>
- </tuple>
- <none/>
+ <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+ <tuple/>
</tuple>
</pickle>
<pickle>
@@ -100,112 +97,6 @@
value(request)\n
return form(request)\n
\n
-def editListBox(listbox_field, listbox):\n
- """ Function called to edit a listbox\n
- """\n
- if listbox is not None:\n
- gv = {}\n
- if listbox_field.has_value(\'global_attributes\'):\n
- hidden_attributes = map(lambda x:x[0], listbox_field.get_value(\'global_attributes\'))\n
- for k in hidden_attributes:\n
- gv[k] = getattr(request, k, None)\n
- for url, v in listbox.items():\n
- v.update(gv)\n
- context.restrictedTraverse(url).edit(**v)\n
-\n
-def editMatrixBox(matrixbox_field, matrixbox):\n
- """ Function called to edit a Matrix box\n
- """\n
- if matrixbox is not None:\n
- cell_base_id = matrixbox_field.get_value(\'cell_base_id\')\n
- portal_type = matrixbox_field.get_value(\'cell_portal_type\')\n
- getter_method = matrixbox_field.get_value(\'getter_method\')\n
- if getter_method not in (None, \'\'):\n
- matrix_context = getattr(context,getter_method)()\n
- else:\n
- matrix_context = context\n
- if matrix_context is not None:\n
- kd = {}\n
- kd[\'portal_type\'] = portal_type\n
- kd[\'base_id\'] = cell_base_id\n
- gv = {}\n
- if matrixbox_field.has_value(\'global_attributes\'):\n
- hidden_attributes = [x[0] for x in matrixbox_field.get_value(\'global_attributes\')]\n
- for k in hidden_attributes:\n
- gv[k] = getattr(request, k, None)\n
- if matrixbox_field.get_value(\'update_cell_range\'):\n
- # Update cell range each time it is modified\n
- lines = matrixbox_field.get_value(\'lines\')\n
- columns = matrixbox_field.get_value(\'columns\')\n
- tabs = matrixbox_field.get_value(\'tabs\')\n
-\n
- column_ids = map(lambda x: x[0], columns)\n
- line_ids = map(lambda x: x[0], lines)\n
- tab_ids = map(lambda x: x[0], tabs)\n
-\n
- # There are 3 cases\n
- # Case 1: we do 1 dimensional matrix\n
- # Case 2: we do 2 dimensional matrix\n
- # Case 3: we do 2 dimensional matrix + tabs\n
- cell_range = matrix_context.getCellRange(base_id = cell_base_id)\n
- if (len(column_ids) == 0) or (column_ids[0] is None):\n
- matrixbox_cell_range = [line_ids]\n
- if cell_range != matrixbox_cell_range:\n
- matrix_context.setCellRange(line_ids, base_id=cell_base_id)\n
-\n
- elif (len(tab_ids) == 0) or (tab_ids[0] is None):\n
- matrixbox_cell_range = [line_ids, column_ids]\n
- if cell_range != matrixbox_cell_range:\n
- matrix_context.setCellRange(line_ids, column_ids, base_id=cell_base_id)\n
-\n
- else:\n
- matrixbox_cell_range = [line_ids, column_ids, tab_ids]\n
- if cell_range != matrixbox_cell_range:\n
- matrix_context.setCellRange(line_ids, column_ids, tab_ids, base_id=cell_base_id)\n
-\n
- for k,v in matrixbox.items():\n
- # Only update cells which still exist\n
- if matrix_context.hasInRange(*k, **kd):\n
- c = matrix_context.newCell(*k, **kd)\n
- if c is not None:\n
- c.edit(**gv) # First update globals which include the def. of property_list\n
- if v.has_key(\'variated_property\'):\n
- # For Variated Properties\n
- value = v[\'variated_property\']\n
- del v[\'variated_property\']\n
- if gv.has_key(\'mapped_value_property_list\'):\n
- # Change the property which is defined by the\n
- # first element of mapped_value_property_list\n
- # XXX May require some changes with Sets\n
- key = gv[\'mapped_value_property_list\'][0]\n
- v[key] = value\n
- c.edit(**v) # and update the cell specific values\n
- else:\n
- return "Could not create cell %s" % str(k)\n
- else:\n
- return "Cell %s does not exist" % str(k)\n
-\n
-def parseField(f):\n
- """\n
- Parse given form field, to put them in\n
- kw or in encapsulated_editor_list\n
- """\n
- k = f.id\n
- v = getattr(request, k, MARKER)\n
- if hasattr(v, \'edit\'):\n
- # This is an encapsulated editor\n
- # call it\n
- encapsulated_editor_list.append(v)\n
- elif v is not MARKER:\n
- if k.startswith(\'my_\'):\n
- # We only take into account\n
- # the object attributes\n
- k = k[3:]\n
- # Form: \'\' -> ERP5: None\n
- if v == \'\':\n
- v = None\n
- kw[k] = v\n
-\n
# Some initilizations\n
kw = {}\n
encapsulated_editor_list = []\n
@@ -213,19 +104,6 @@
message = N_("Data+Updated.")\n
\n
try:\n
- # We process all the field in form and\n
- # we check if they are in the request,\n
- # then we edit them\n
- for field in form.get_fields():\n
- parseField(field)\n
- if(field.meta_type == \'ListBox\'):\n
- editListBox(field, request.get(field.id))\n
- elif(field.meta_type == \'MatrixBox\'):\n
- editMatrixBox(field, request.get(field.id))\n
-\n
- # Maybe we should build a list of objects we need\n
- # Update basic attributes\n
- context.edit(REQUEST=request,**kw)\n
for encapsulated_editor in encapsulated_editor_list:\n
encapsulated_editor.edit(context)\n
except ActivityPendingError,e:\n
@@ -327,15 +205,10 @@
<string>field_id</string>
<string>value</string>
<string>callable</string>
- <string>editListBox</string>
- <string>editMatrixBox</string>
- <string>MARKER</string>
<string>kw</string>
<string>encapsulated_editor_list</string>
- <string>parseField</string>
+ <string>MARKER</string>
<string>message</string>
- <string>field</string>
- <string>_apply_</string>
<string>encapsulated_editor</string>
<string>e</string>
<string>int</string>
Modified: erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision?rev=19868&r1=19867&r2=19868&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision Thu Mar 13 18:40:14 2008
@@ -1,1 +1,1 @@
-736
+738
More information about the Erp5-report
mailing list