[Checkins] SVN: z3c.reference/trunk/src/z3c/reference/browser/ extracted the serialize function for relations

Juergen Kartnaller juergen at kartnaller.at
Mon Oct 15 11:43:20 EDT 2007


Log message for revision 80881:
  extracted the serialize function for relations

Changed:
  U   z3c.reference/trunk/src/z3c/reference/browser/README.txt
  U   z3c.reference/trunk/src/z3c/reference/browser/serialize.py
  U   z3c.reference/trunk/src/z3c/reference/browser/widget.py

-=-
Modified: z3c.reference/trunk/src/z3c/reference/browser/README.txt
===================================================================
--- z3c.reference/trunk/src/z3c/reference/browser/README.txt	2007-10-15 15:34:39 UTC (rev 80880)
+++ z3c.reference/trunk/src/z3c/reference/browser/README.txt	2007-10-15 15:43:20 UTC (rev 80881)
@@ -81,9 +81,10 @@
   ...                              IViewReferenceOpener)
 
   >>> print widget()
-  <a class="popupwindow" href="http://127.0.0.1/Intro/viewReferenceEditor.html?target=&amp;settingName=introRefs&amp;name=field.intro" id="field.intro.tag" name="field.intro" onclick="" rel="window">
+  <a class="popupwindow" href="http://127.0.0.1/Intro/viewReferenceEditor.html?formdata=&amp;target=&amp;settingName=introRefs&amp;name=field.intro" id="field.intro.tag" name="field.intro" onclick="" rel="window">
   <span id="field.intro.title">Undefined</span>
   </a>
+  <input class="hiddenType" id="field.intro.function" name="field.intro.function" type="hidden" value="setDefaultReferenceInput" rel="window" />
   <input class="hiddenType" id="field.intro.target" name="field.intro.target" type="hidden" value="" rel="window" />
   <input class="hiddenType" id="field.intro.formData" name="field.intro.formData" type="hidden" value="" rel="window" />
   <input class="hiddenType" id="field.intro.refId" name="field.intro.refId" type="hidden" value="" rel="window" />

Modified: z3c.reference/trunk/src/z3c/reference/browser/serialize.py
===================================================================
--- z3c.reference/trunk/src/z3c/reference/browser/serialize.py	2007-10-15 15:34:39 UTC (rev 80880)
+++ z3c.reference/trunk/src/z3c/reference/browser/serialize.py	2007-10-15 15:43:20 UTC (rev 80881)
@@ -3,7 +3,12 @@
 
 from BeautifulSoup import BeautifulSoup
 
+from zope.formlib import form
+from zope.publisher.browser import TestRequest
 
+from views import getEditorView, getOpenerView
+
+
 def serializeForm(html):
     tags = BeautifulSoup(html)(['input', 'textarea'])
     html = ''.join([unicode(tag) for tag in tags])
@@ -27,3 +32,23 @@
         res.append((name, value.encode('utf-8')))
     return urllib.urlencode(res)
 
+
+def serializeRelation(ref, request, settingName):
+    klass = getEditorView(ref.target, request, settingName).__class__
+    r = TestRequest()
+    view = klass(ref, r)
+    view = ApplyForm(ref, r, view.form_fields)
+    view.update()
+    html = ''
+    for widget in view.widgets:
+        v = widget()
+        html += v
+    return serializeForm(html)
+
+
+class ApplyForm(form.EditForm):
+
+    def __init__(self, context, request, form_fields):
+        self.form_fields = form_fields
+        super(ApplyForm, self).__init__(context, request)
+

Modified: z3c.reference/trunk/src/z3c/reference/browser/widget.py
===================================================================
--- z3c.reference/trunk/src/z3c/reference/browser/widget.py	2007-10-15 15:34:39 UTC (rev 80880)
+++ z3c.reference/trunk/src/z3c/reference/browser/widget.py	2007-10-15 15:43:20 UTC (rev 80881)
@@ -45,7 +45,7 @@
 from lovely.relation.dataproperty import DataRelationship
 
 from views import getEditorView, getOpenerView
-from serialize import serializeForm
+from serialize import serializeRelation
 
 
 class ViewReferenceWidget(TextWidget):
@@ -83,18 +83,7 @@
         ref = self._getCurrentValue()
         if ref is None or ref.target is None:
             return ''
-        klass = getEditorView(ref.target, self.request,
-                              self.context.settingName).__class__
-        r = TestRequest()
-        view = klass(ref, r)
-        view = ApplyForm(ref, r, view.form_fields)
-        view.update()
-        html = ''
-        for widget in view.widgets:
-            v = widget()
-            html += v
-        qs = serializeForm(html)
-        return qs
+        return serializeRelation(ref, self.request, self.context.settingName)
 
     @property
     def viewValue(self):



More information about the Checkins mailing list