[silva.core.references][Sylvain Viollon] Update code to fetch re...

[email protected] Mon, 09 Dec 2013 11:22:06 +0100
Newsgroups gmane.comp.web.zope.silva.cvs
Message-ID <[email protected]>
author:    Sylvain Viollon
date:      Mon Dec 09 11:22:09 2013 +0100
revision:  317:b45358442c1c in silva.core.references
branch:    2.4
details:   https://hg.infrae.com/silva.core.references?cmd=changeset;node=b45358442c1c
modified:  src/silva/core/references/widgets/__init__.py src/silva/core/references/widgets/formulator_templates/reference_input.cpt src/silva/core/references/widgets/zeamform_templates/referencewidgetinput.cpt
added:     
removed:   
log:       Update code to fetch reference path.


diffstat:

 src/silva/core/references/widgets/__init__.py                                 |  18 +++++++--
 src/silva/core/references/widgets/formulator_templates/reference_input.cpt    |   2 +-
 src/silva/core/references/widgets/zeamform_templates/referencewidgetinput.cpt |   2 +-
 3 files changed, 15 insertions(+), 7 deletions(-)

diffs (66 lines):

diff -r 2c55eae09d13 -r b45358442c1c src/silva/core/references/widgets/__init__.py
--- a/src/silva/core/references/widgets/__init__.py	Mon Nov 11 14:48:43 2013 +0100
+++ b/src/silva/core/references/widgets/__init__.py	Mon Dec 09 11:22:09 2013 +0100
@@ -11,6 +11,7 @@
 from silva.core.references.reference import get_content_id
 from silva.core.views.interfaces import IVirtualSite
 from silva.ui.interfaces import ISilvaUI
+from silva.ui.rest.helper import UIHelper
 from silva.translations import translate as _
 
 
@@ -35,6 +36,15 @@
 _marker = object()
 
 
+class ReferencePathResolver(UIHelper):
+    # UIHelper uses super, as it was intended to use as a
+    # mixing. However it is not here.
+
+    def __init__(self, context, request):
+        self.context = context
+        self.request = request
+
+
 class ReferenceInfoResolver(object):
     """This resolve information about a reference and set them on an
     object.
@@ -48,11 +58,9 @@
         self.request = request
         self.multiple = multiple
         self.message = message
-        self.get_icon_tag = IIconResolver(self.request).get_tag
-        self.root_path = IVirtualSite(self.request).get_root_path()
-
-    def get_content_path(self, content):
-        return content.absolute_url_path()[len(self.root_path):] or '/'
+        self.get_icon_tag = IIconResolver(request).get_tag
+        self.get_content_path = ReferencePathResolver(
+            context, request).get_content_path
 
     def set_lookup_url(self, content):
         self.widget.context_lookup_url = absoluteURL(
diff -r 2c55eae09d13 -r b45358442c1c src/silva/core/references/widgets/formulator_templates/reference_input.cpt
--- a/src/silva/core/references/widgets/formulator_templates/reference_input.cpt	Mon Nov 11 14:48:43 2013 +0100
+++ b/src/silva/core/references/widgets/formulator_templates/reference_input.cpt	Mon Dec 09 11:22:09 2013 +0100
@@ -8,7 +8,7 @@
        title="Edit item" tabindex="-1"
        id="#" href="#"
        tal:attributes="id string:${view.id}-edit-link;
-                       style item.value_path and '' or 'display: none';
+                       style None if item.value_path else 'display: none';
                        href item.value_path"
        i18n:attributes="title">
     </a>
diff -r 2c55eae09d13 -r b45358442c1c src/silva/core/references/widgets/zeamform_templates/referencewidgetinput.cpt
--- a/src/silva/core/references/widgets/zeamform_templates/referencewidgetinput.cpt	Mon Nov 11 14:48:43 2013 +0100
+++ b/src/silva/core/references/widgets/zeamform_templates/referencewidgetinput.cpt	Mon Dec 09 11:22:09 2013 +0100
@@ -7,7 +7,7 @@
      title="Edit item" tabindex="-1"
      id="#" href="#"
      tal:attributes="id string:${id}-edit-link;
-                     style widget.value_path or 'display: none';
+                     style None if widget.value_path else 'display: none';
                      href widget.value_path"
      i18n:attributes="title">
   </a>