[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=&settingName=introRefs&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=&target=&settingName=introRefs&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