[Checkins] SVN: z3c.reference/branches/flash/src/z3c/reference/
Implemented title and description in edit form
Roger Ineichen
roger at projekt01.ch
Thu Sep 6 12:39:04 EDT 2007
Log message for revision 79501:
Implemented title and description in edit form
Changed:
U z3c.reference/branches/flash/src/z3c/reference/browser/editor.pt
U z3c.reference/branches/flash/src/z3c/reference/browser/resources/reference.editor.js
U z3c.reference/branches/flash/src/z3c/reference/browser/views.py
U z3c.reference/branches/flash/src/z3c/reference/browser/widget.py
U z3c.reference/branches/flash/src/z3c/reference/demo/browser/views.py
-=-
Modified: z3c.reference/branches/flash/src/z3c/reference/browser/editor.pt
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/editor.pt 2007-09-06 14:48:49 UTC (rev 79500)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/editor.pt 2007-09-06 16:39:03 UTC (rev 79501)
@@ -75,11 +75,15 @@
<script type="text/javascript"
tal:define="settingNameStr view/settingNameStr;
targetStr view/targetStr;
- viewStr view/viewStr"
+ viewStr view/viewStr;
+ titleStr view/titleStr;
+ descriptionStr view/descriptionStr"
tal:content="string:
- var settingName = '${settingNameStr}';
+ var settingNameStr = '${settingNameStr}';
var targetStr = '${targetStr}';
- var viewStr = '${viewStr}';">
+ var viewStr = '${viewStr}';
+ var titleStr = '${titleStr}';
+ var descriptionStr = '${descriptionStr}';">
</script>
<script src="jquery"
type="text/javascript"
Modified: z3c.reference/branches/flash/src/z3c/reference/browser/resources/reference.editor.js
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/resources/reference.editor.js 2007-09-06 14:48:49 UTC (rev 79500)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/resources/reference.editor.js 2007-09-06 16:39:03 UTC (rev 79501)
@@ -11,18 +11,22 @@
//}
function loadEditorSearch() {
- settings = {'settingName':settingName,
+ settings = {'settingName': settingNameStr,
'target': targetStr,
- 'view': viewStr}
+ 'view': viewStr,
+ 'title': titleStr,
+ 'description': descriptionStr}
$.get("viewReferenceEditorSearch", settings, function () {
$("#editorSearch").append($(data));
});
}
function loadEditorEdit(tStr) {
- settings = {'settingName':settingName,
+ settings = {'settingName': settingNameStr,
'target': tStr,
- 'view': viewStr}
+ 'view': viewStr,
+ 'title': titleStr,
+ 'description': descriptionStr}
$.get("viewReferenceEditorEdit", settings, function () {
$("#editorEdit").append($(data));
});
@@ -37,4 +41,4 @@
if (targetStr) {
loadEditorEdit(targetStr);
}
-});
\ No newline at end of file
+});
Modified: z3c.reference/branches/flash/src/z3c/reference/browser/views.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/views.py 2007-09-06 14:48:49 UTC (rev 79500)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/views.py 2007-09-06 16:39:03 UTC (rev 79501)
@@ -56,7 +56,7 @@
"""
- def __init__(self,context,request):
+ def __init__(self, context, request):
self.context = context.target
self.view = context.view
self.request = request
@@ -104,27 +104,36 @@
settingNameStr = u''
viewStr = u''
targetStr = u''
+ titleStr = u''
+ descriptionStr = u''
def __call__(self):
"""Setup JS variables."""
self.settingNameStr = self.request.get('settingName', u'')
self.viewStr = self.request.get('view', u'')
self.targetStr = self.request.get('target', u'')
+ self.titleStr = self.request.get('title', u'')
+ self.descriptionStr = self.request.get('description', u'')
return super(ViewReferenceEditor, self).__call__()
class ViewReferenceEditorSearch(object):
"""Return the search form"""
+ settingNameStr = u''
+ viewStr = u''
+ targetStr = u''
+ titleStr = u''
+ descriptionStr = u''
+
def __init__(self, context, request):
self.context = context
self.request = request
def __call__(self):
- settingName = self.request.get('settingName')
- if settingName is not None:
+ if self.settingNameStr:
view = component.queryMultiAdapter((self.context, self.request),
- interfaces.IViewReferenceEditorSearch, name=settingName)
+ interfaces.IViewReferenceEditorSearch, name=self.settingNameStr)
if view is not None:
return view()
return u''
@@ -133,22 +142,24 @@
class ViewReferenceEditorEdit(object):
"""Return the edit form"""
+ settingNameStr = u''
+ viewStr = u''
+ targetStr = u''
+ titleStr = u''
+ descriptionStr = u''
+
def __init__(self, context, request):
self.context = context
self.request = request
def __call__(self):
- settingName = self.request.get('settingName')
- target = self.request.get('target')
+ if not self.targetStr:
+ return u''
intids = component.getUtility(IIntIds)
- obj = intids.queryObject(int(target))
- if obj is not None and settingName is not None:
+ obj = intids.queryObject(int(self.targetStr))
+ if obj is not None and self.settingNameStr is not None:
view = component.queryMultiAdapter((obj, self.request),
- interfaces.IViewReferenceEditorEdit, name=settingName)
+ interfaces.IViewReferenceEditorEdit, name=self.settingNameStr)
if view is not None:
return view()
return u''
-
-
-class ImageTool(object):
- pass
Modified: z3c.reference/branches/flash/src/z3c/reference/browser/widget.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/widget.py 2007-09-06 14:48:49 UTC (rev 79500)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/widget.py 2007-09-06 16:39:03 UTC (rev 79501)
@@ -47,38 +47,38 @@
return rc
-def referenceFromURL(url,request,factory):
+#def referenceFromURL(url,request,factory):
+#
+# site=hooks.getSite()
+# siteURL = absoluteURL(site,request)
+# if not url.startswith(siteURL):
+# return ViewReference(view=url)
+# url = url[len(siteURL)+1:]
+# scheme,location,path,query,fragment = urlparse.urlsplit(url)
+# tPath = map(lambda x: urllib.unquote(x.encode('utf-8')).decode('utf-8'),
+# path.split('/'))
+# # get the nearest traversable
+# views = []
+# while tPath:
+# try:
+# target = traversing.api.traverse(site,tPath)
+# break
+# except TraversalError:
+# views.append(tPath.pop())
+#
+# query = query and u'?' + query or u''
+# if views:
+# views.reverse()
+# views = u'/'.join(views)
+# view = views + query
+# else:
+# view = query or None
+# return factory(target=target,view=view)
- site=hooks.getSite()
- siteURL = absoluteURL(site,request)
- if not url.startswith(siteURL):
- return ViewReference(view=url)
- url = url[len(siteURL)+1:]
- scheme,location,path,query,fragment = urlparse.urlsplit(url)
- tPath = map(lambda x: urllib.unquote(x.encode('utf-8')).decode('utf-8'),
- path.split('/'))
- # get the nearest traversable
- views = []
- while tPath:
- try:
- target = traversing.api.traverse(site,tPath)
- break
- except TraversalError:
- views.append(tPath.pop())
- query = query and u'?' + query or u''
- if views:
- views.reverse()
- views = u'/'.join(views)
- view = views + query
- else:
- view = query or None
- return factory(target=target,view=view)
-
-
class ViewReferenceWidget(TextWidget):
"""renders an "a" tag with the title and href attributes."""
-
+
tag = u'input'
type = u'text'
cssClass = u'popupwindow'
@@ -106,20 +106,38 @@
"""Returns the target intid."""
current = self._getCurrentValue()
if current and current.view:
- return view or u''
+ return current.view or u''
else:
return u''
@property
def viewValue(self):
- """Returns the view string."""
+ """Returns the reference view string."""
target = u''
current = self._getCurrentValue()
if current and current.target:
intIds = component.getUtility(IIntIds)
- target = intIds.getId(self.context.context.target)
+ target = intIds.getId(current.target)
return target
+ @property
+ def titleValue(self):
+ """Returns the reference title."""
+ current = self._getCurrentValue()
+ if current and current.title:
+ return current.title or u''
+ else:
+ return u''
+
+ @property
+ def descriptionValue(self):
+ """Returns the reference description."""
+ current = self._getCurrentValue()
+ if current and current.description:
+ return current.description or u''
+ else:
+ return u''
+
def __call__(self):
resourcelibrary.need('z3c.reference')
if self._renderedValueSet():
@@ -136,6 +154,8 @@
contents = undefined
targetName = self.name + '.target'
viewName = self.name + '.view'
+ titleName = self.name + '.title'
+ descriptionName = self.name + '.description'
intidInput = renderElement(u'input',
type='hidden',
name=targetName,
@@ -148,6 +168,18 @@
id=viewName,
value=self.viewValue,
extra=self.extra)
+ titleInput = renderElement(u'input',
+ type='hidden',
+ name=titleName,
+ id=titleName,
+ value=self.titleValue,
+ extra=self.extra)
+ descriptionInput = renderElement(u'input',
+ type='hidden',
+ name=descriptionName,
+ id=descriptionName,
+ value=self.descriptionValue,
+ extra=self.extra)
linkTag = renderElement(self.refTag,
href = self.referenceEditorURL,
name=self.name,
@@ -158,7 +190,7 @@
contents=contents,
style=self.style,
extra=self.extra)
- return linkTag + viewInput + intidInput
+ return linkTag + viewInput + intidInput + titleInput + descriptionInput
def _getFormValue(self):
res = super(ViewReferenceWidget,self)._getFormValue()
@@ -176,11 +208,54 @@
def _toFieldValue(self, input):
if input == self._missing:
return self.context.missing_value
- return referenceFromURL(input,self.request,
- self._emptyReference.__class__)
+
+ if self.context.context is not None:
+ ref = self.context.context
+ elif self._data is not None:
+ ref = self._data
+ else:
+ ref = ViewReference()
+ # form field ids
+ targetName = self.name + '.target'
+ viewName = self.name + '.view'
+ titleName = self.name + '.title'
+ descriptionName = self.name + '.description'
+ # get target obj str
+ intid = self.request.get(targetName)
+ if intid is None:
+ return self.context.missing_value
+ obj = intids.queryObject(int(intid))
+ if oj is None:
+ return self.context.missing_value
+ ref.target = obj
+ # write view str
+ viewStr = self.request.get(viewName)
+ if viewStr is None:
+ return self.context.missing_value
+ ref.view = viewStr
+ # write title str
+ titleStr = self.request.get(titleName)
+ if titleStr is None:
+ return self.context.missing_value
+ ref.title = titleStr
+
+ # write description str
+ descriptionStr = self.request.get(descriptionName)
+ if descriptionStr is None:
+ return self.context.missing_value
+ ref.description = descriptionStr
+
+ # return the existing or new reference
+
+
+ #return referenceFromURL(input,self.request,
+ # self._emptyReference.__class__)
+
+
+
class ObjectReferenceWidget(ViewReferenceWidget):
@Lazy
Modified: z3c.reference/branches/flash/src/z3c/reference/demo/browser/views.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/browser/views.py 2007-09-06 14:48:49 UTC (rev 79500)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/browser/views.py 2007-09-06 16:39:03 UTC (rev 79501)
@@ -91,6 +91,8 @@
settingNameStr = u''
viewStr = u''
targetStr = u''
+ titleStr = u''
+ descriptionStr = u''
def __init__(self, context, request):
self.context = context
@@ -104,9 +106,6 @@
uid=intIds.getId(o))
def __call__(self):
- self.settingName = self.request.get('settingName')
- self.targetStr = self.request.get('target')
- self.viewStr = self.request.get('view')
return self.template()
@@ -117,6 +116,8 @@
settingNameStr = u''
viewStr = u''
targetStr = u''
+ titleStr = u''
+ descriptionStr = u''
def __init__(self, context, request):
self.context = context
More information about the Checkins
mailing list