[Products.Silva][Sylvain Viollon] Update action.

[email protected] Thu, 14 Nov 2013 15:28:05 +0100
Newsgroups gmane.comp.web.zope.silva.cvs
Message-ID <[email protected]>
author:    Sylvain Viollon
date:      Thu Nov 14 15:28:01 2013 +0100
revision:  11883:0985ca7d77f8 in Products.Silva
branch:    2.4
details:   https://hg.infrae.com/Products.Silva?cmd=changeset;node=0985ca7d77f8
modified:  Products/Silva/GhostFolder/smi.py
added:     
removed:   
log:       Update action.


diffstat:

 Products/Silva/GhostFolder/smi.py |  19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diffs (40 lines):

diff -r 3719ea761135 -r 0985ca7d77f8 Products/Silva/GhostFolder/smi.py
--- a/Products/Silva/GhostFolder/smi.py	Thu Nov 14 15:07:31 2013 +0100
+++ b/Products/Silva/GhostFolder/smi.py	Thu Nov 14 15:28:01 2013 +0100
@@ -15,6 +15,7 @@
 from silva.core.conf.interfaces import IIdentifiedContent
 from silva.core.references.reference import Reference
 from silva.core.interfaces import IContainer, IGhostFolder
+from silva.core.interfaces.errors import ContentError
 from silva.ui.menu import ContentMenu, MenuItem
 from silva.translations import translate as _
 from zeam.form import silva as silvaforms
@@ -37,15 +38,23 @@
 
     def __call__(self, form):
         folder = form.context
-        if folder.get_link_status() is None:
+        if folder.get_link_status() is not None:
+            form.send_message(
+                _(u'Ghost Folder was not synchronized, '
+                  u'because the target is invalid.'),
+                type='error')
+            return silvaforms.FAILURE
+        try:
             folder.haunt()
+        except ContentError as error:
+            form.send_message(
+                error.reason,
+                type='error')
+            return silvaforms.FAILURE
+        else:
             form.send_message(
                 _(u'Ghost Folder synchronized.'), type='feedback')
             return silvaforms.SUCCESS
-        form.send_message(
-            _(u'Ghost Folder was not synchronized, because the target is invalid.'),
-            type='error')
-        return silvaforms.FAILURE
 
 
 class GhostFolderAddForm(silvaforms.SMIAddForm):