[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