[Erp5-report] r9571 - in /erp5/trunk/products/ERP5Form: ProxyField.py __init__.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Aug 30 19:49:00 CEST 2006


Author: bartek
Date: Wed Aug 30 19:48:58 2006
New Revision: 9571

URL: http://svn.erp5.org?rev=9571&view=rev
Log:
a link from ProxyField to its target's ZMI (by Marek Petlicki)

Modified:
    erp5/trunk/products/ERP5Form/ProxyField.py
    erp5/trunk/products/ERP5Form/__init__.py

Modified: erp5/trunk/products/ERP5Form/ProxyField.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/ProxyField.py?rev=9571&r1=9570&r2=9571&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/ProxyField.py (original)
+++ erp5/trunk/products/ERP5Form/ProxyField.py Wed Aug 30 19:48:58 2006
@@ -57,6 +57,7 @@
   property_names = [
     'form_id',
     'field_id',
+    'target',
     'extra_context',
   ]
 
@@ -83,6 +84,14 @@
                                 title='Extra Context', 
                                 description='Additional context variables.',
                                 default=(), 
+                                required=0)
+
+  target = fields.HyperLinkField(
+                                'target',
+                                title='Proxy Target',
+                                description="Link to the master field edit form",
+                                default='Click to edit the target',
+                                href='manage_edit_target',
                                 required=0)
 
   def render(self, field, key, value, REQUEST):
@@ -171,6 +180,18 @@
     REQUEST.other['erp5_extra_context'] = extra_context
     return REQUEST
 
+  security.declareProtected('Edit target', 'manage_edit_target')
+  def manage_edit_target(self, REQUEST):
+      """ Edit target field of this proxy
+      """
+      proxy_field = self.getTemplateField()
+      if proxy_field:
+          url='/'.join((self.absolute_url(),self.get_value('form_id'),self.get_value('field_id'),'manage_main'))
+          REQUEST.RESPONSE.redirect(url)
+      else:
+          # FIXME: should show some error message ("form_id and field_id don't define a valid template")
+          pass
+
   security.declareProtected('Access contents information', 'get_value')
   def get_value(self, id, **kw):
     """Get value for id.

Modified: erp5/trunk/products/ERP5Form/__init__.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/__init__.py?rev=9571&r1=9570&r2=9571&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/__init__.py (original)
+++ erp5/trunk/products/ERP5Form/__init__.py Wed Aug 30 19:48:58 2006
@@ -146,6 +146,9 @@
     FieldRegistry.registerField(HelperFields.MethodField)
     FieldRegistry.registerField(HelperFields.TALESField)
 
+    import HyperLinkField
+    FieldRegistry.registerField(HyperLinkField.HyperLinkField)
+
     # register help for the product
     context.registerHelp()
     # register field help for all fields




More information about the Erp5-report mailing list