[CMF-checkins] SVN: CMF/branches/yuppie-formlib/CMFDefault/ - replaced link forms by formlib based forms

Yvo Schubbe y.2006_ at wcm-solutions.de
Thu Nov 2 13:30:32 EST 2006


Log message for revision 71032:
  - replaced link forms by formlib based forms

Changed:
  U   CMF/branches/yuppie-formlib/CMFDefault/browser/configure.zcml
  A   CMF/branches/yuppie-formlib/CMFDefault/browser/favorite.py
  U   CMF/branches/yuppie-formlib/CMFDefault/browser/link.py
  D   CMF/branches/yuppie-formlib/CMFDefault/browser/templates/link_edit.pt
  U   CMF/branches/yuppie-formlib/CMFDefault/locales/cmf_default.pot

-=-
Modified: CMF/branches/yuppie-formlib/CMFDefault/browser/configure.zcml
===================================================================
--- CMF/branches/yuppie-formlib/CMFDefault/browser/configure.zcml	2006-11-02 18:26:56 UTC (rev 71031)
+++ CMF/branches/yuppie-formlib/CMFDefault/browser/configure.zcml	2006-11-02 18:30:31 UTC (rev 71032)
@@ -65,6 +65,8 @@
       permission="cmf.ModifyPortalContent"
       />
 
+  <adapter factory=".link.LinkSchemaAdapter"/>
+
   <browser:page
       for="..interfaces.ILink"
       layer="..interfaces.ICMFDefaultSkin"
@@ -79,11 +81,20 @@
       layer="..interfaces.ICMFDefaultSkin"
       name="edit.html"
       class=".link.LinkEditView"
-      template="templates/link_edit.pt"
       permission="cmf.ModifyPortalContent"
       />
 
+  <adapter factory=".favorite.FavoriteSchemaAdapter"/>
+
   <browser:page
+      for="..interfaces.IMutableFavorite"
+      layer="..interfaces.ICMFDefaultSkin"
+      name="edit.html"
+      class=".favorite.FavoriteEditView"
+      permission="cmf.ModifyPortalContent"
+      />
+
+  <browser:page
       for="*"
       layer="..interfaces.ICMFDefaultSkin"
       name="form_widget"

Added: CMF/branches/yuppie-formlib/CMFDefault/browser/favorite.py
===================================================================
--- CMF/branches/yuppie-formlib/CMFDefault/browser/favorite.py	2006-11-02 18:26:56 UTC (rev 71031)
+++ CMF/branches/yuppie-formlib/CMFDefault/browser/favorite.py	2006-11-02 18:30:31 UTC (rev 71032)
@@ -0,0 +1,100 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors. All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Browser views for favorites.
+
+$Id$
+"""
+
+import urlparse
+
+from zope.app.form.browser import BytesWidget
+from zope.component import adapts
+from zope.formlib import form
+from zope.interface import implements
+from zope.interface import Interface
+from zope.schema import BytesLine
+from zope.schema import TextLine
+
+from Products.CMFCore.utils import getToolByName
+from Products.CMFDefault.formlib.form import ContentEditFormBase
+from Products.CMFDefault.formlib.schema import ProxyFieldProperty
+from Products.CMFDefault.formlib.schema import SchemaAdapterBase
+from Products.CMFDefault.interfaces import IMutableFavorite
+from Products.CMFDefault.utils import Message as _
+
+
+class IFavoriteSchema(Interface):
+
+    title = TextLine(
+        title=_(u'Title'),
+        description=_(u'Title'),
+        readonly=True)
+
+    remote_url = BytesLine(
+        title=_(u'URL'),
+        description=_(u'URL relative to the site root.'),
+        required=False,
+        missing_value=u'')
+
+
+class FavoriteSchemaAdapter(SchemaAdapterBase):
+
+    adapts(IMutableFavorite)
+    implements(IFavoriteSchema)
+
+    _remote_url = ProxyFieldProperty(IFavoriteSchema['remote_url'])
+
+    def _getRemoteURL(self):
+        return self._remote_url
+
+    def _setRemoteURL(self, value):
+        self._remote_url = value
+        self.context.remote_uid = self.context._getUidByUrl()
+
+    title = ProxyFieldProperty(IFavoriteSchema['title'], 'Title')
+    remote_url = property(_getRemoteURL, _setRemoteURL)
+
+
+class FavoriteURIWidget(BytesWidget):
+
+    """Custom widget for remote_url.
+    """
+
+    def _toFieldValue(self, input):
+        value = super(FavoriteURIWidget, self)._toFieldValue(input)
+        if not value:
+            return value
+        # strip off scheme and machine from URL if present
+        tokens = urlparse.urlparse(value, 'http')
+        if tokens[1]:
+            # There is a nethost, remove it
+            tokens = ('', '') + tokens[2:]
+            value = urlparse.urlunparse(tokens)
+        # if URL begins with site URL, remove site URL
+        obj = self.context.context.context
+        portal_url = getToolByName(obj, 'portal_url').getPortalPath()
+        if value.startswith(portal_url):
+            value = value[len(portal_url):]
+        # if site is still absolute, make it relative
+        if value[:1]=='/':
+            value = value[1:]
+        return value
+
+
+class FavoriteEditView(ContentEditFormBase):
+
+    """Edit view for IMutableFavorite.
+    """
+
+    form_fields = form.FormFields(IFavoriteSchema)
+    form_fields['remote_url'].custom_widget = FavoriteURIWidget


Property changes on: CMF/branches/yuppie-formlib/CMFDefault/browser/favorite.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Modified: CMF/branches/yuppie-formlib/CMFDefault/browser/link.py
===================================================================
--- CMF/branches/yuppie-formlib/CMFDefault/browser/link.py	2006-11-02 18:26:56 UTC (rev 71031)
+++ CMF/branches/yuppie-formlib/CMFDefault/browser/link.py	2006-11-02 18:30:31 UTC (rev 71032)
@@ -15,15 +15,49 @@
 $Id$
 """
 
-from Products.CMFDefault.exceptions import ResourceLockedError
+import urlparse
+
+from zope.app.form.browser import BytesWidget
+from zope.component import adapts
+from zope.formlib import form
+from zope.interface import implements
+from zope.interface import Interface
+from zope.schema import BytesLine
+from zope.schema import TextLine
+
+from Products.CMFDefault.formlib.form import ContentEditFormBase
+from Products.CMFDefault.formlib.schema import ProxyFieldProperty
+from Products.CMFDefault.formlib.schema import SchemaAdapterBase
+from Products.CMFDefault.interfaces import IMutableLink
 from Products.CMFDefault.utils import Message as _
 
 from utils import decode
-from utils import FormViewBase
 from utils import memoize
 from utils import ViewBase
 
 
+class ILinkSchema(Interface):
+
+    title = TextLine(
+        title=_(u'Title'),
+        description=_(u'Title'),
+        readonly=True)
+
+    remote_url = BytesLine(
+        title=_(u'URL'),
+        required=False,
+        missing_value=u'')
+
+
+class LinkSchemaAdapter(SchemaAdapterBase):
+
+    adapts(IMutableLink)
+    implements(ILinkSchema)
+
+    title = ProxyFieldProperty(ILinkSchema['title'], 'Title')
+    remote_url = ProxyFieldProperty(ILinkSchema['remote_url'])
+
+
 class LinkView(ViewBase):
 
     """View for ILink.
@@ -37,36 +71,36 @@
         return self.context.getRemoteUrl()
 
 
-class LinkEditView(FormViewBase):
+class LinkURIWidget(BytesWidget):
 
-    """Edit view for IMutableLink.
+    """Custom widget for remote_url.
     """
 
-    _BUTTONS = ({'id': 'change',
-                 'title': _(u'Change'),
-                 'transform': ('edit_control',),
-                 'redirect': ('portal_types', 'object/edit')},
-                {'id': 'change_and_view',
-                 'title': _(u'Change and View'),
-                 'transform': ('edit_control',),
-                 'redirect': ('portal_types', 'object/view')})
+    def _toFieldValue(self, input):
+        value = super(LinkURIWidget, self)._toFieldValue(input)
+        if not value:
+            return value
+        tokens = urlparse.urlparse(value, 'http')
+        if tokens[0] == 'http':
+            if tokens[1]:
+                # We have a nethost. All is well.
+                return urlparse.urlunparse(tokens)
+            elif tokens[2:] == ('', '', '', ''):
+                # Empty URL
+                return u''
+            else:
+                # Relative URL, keep it that way, without http:
+                tokens = ('', '') + tokens[2:]
+                return urlparse.urlunparse(tokens)
+        else:
+            # Other scheme, keep original
+            return urlparse.urlunparse(tokens)
 
-    # interface
 
-    @memoize
-    @decode
-    def remote_url(self):
-        return self.request.form.get('remote_url', self.context.remote_url)
+class LinkEditView(ContentEditFormBase):
 
-    # controllers
+    """Edit view for IMutableLink.
+    """
 
-    def edit_control(self, remote_url, **kw):
-        context = self.context
-        if remote_url != context.remote_url:
-            try:
-                context.edit(remote_url=remote_url)
-                return True, _(u'Link changed.')
-            except ResourceLockedError, errmsg:
-                return False, errmsg
-        else:
-            return False, _(u'Nothing to change.')
+    form_fields = form.FormFields(ILinkSchema)
+    form_fields['remote_url'].custom_widget = LinkURIWidget

Deleted: CMF/branches/yuppie-formlib/CMFDefault/browser/templates/link_edit.pt
===================================================================
--- CMF/branches/yuppie-formlib/CMFDefault/browser/templates/link_edit.pt	2006-11-02 18:26:56 UTC (rev 71031)
+++ CMF/branches/yuppie-formlib/CMFDefault/browser/templates/link_edit.pt	2006-11-02 18:30:31 UTC (rev 71032)
@@ -1,33 +0,0 @@
-<html metal:use-macro="context/@@standard_macros/page">
-<body>
-
-<metal:slot metal:fill-slot="body" i18n:domain="cmf_default">
-<h1 i18n:translate="">Edit: <tal:span
-    tal:content="view/title" i18n:name="obj_title">Title</tal:span></h1>
-
-<form action="link_edit_form" method="post"
-   tal:attributes="action view/form_action">
-<table class="FormLayout">
- <tr>
-  <th i18n:translate="">Title</th>
-  <td tal:content="view/title">Title</td>
- </tr>
- <tr>
-  <th i18n:translate="">URL</th>
-  <td>
-   <input type="text" name="remote_url" value=""
-          tal:attributes="value view/remote_url" />
-  </td>
- </tr>
- <tr>
-  <td>&nbsp;</td>
-  <td>
-   <metal:macro metal:use-macro="context/@@form_widget/buttons" />
-  </td>
- </tr>
-</table>
-</form>
-</metal:slot>
-
-</body>
-</html>

Modified: CMF/branches/yuppie-formlib/CMFDefault/locales/cmf_default.pot
===================================================================
--- CMF/branches/yuppie-formlib/CMFDefault/locales/cmf_default.pot	2006-11-02 18:26:56 UTC (rev 71031)
+++ CMF/branches/yuppie-formlib/CMFDefault/locales/cmf_default.pot	2006-11-02 18:30:31 UTC (rev 71032)
@@ -12,7 +12,7 @@
 ##############################################################################
 msgid ""
 msgstr ""
-"Project-Id-Version: CMF 2.0\n"
+"Project-Id-Version: CMF 2.1\n"
 "POT-Creation-Date: $Date$\n"
 "Language-Team: CMF Developers <zope-cmf at zope.org>\n"
 "MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #: CMFCore/RegistrationTool.py:144
-#: CMFDefault/RegistrationTool.py:96
+#: CMFDefault/RegistrationTool.py:94
 msgid "The login name you selected is already in use or is not valid. Please choose another."
 msgstr ""
 
@@ -30,7 +30,7 @@
 msgstr ""
 
 #: CMFCore/WorkflowTool.py:241
-# Default: ""
+#. Default: ""
 msgid "No workflow provides the '${action_id}' action."
 msgstr ""
 
@@ -40,12 +40,12 @@
 msgstr ""
 
 #: CMFCore/WorkflowTool.py:277
-# Default: ""
+#. Default: ""
 msgid "No workflow provides '${name}' information."
 msgstr ""
 
 #: CMFCore/WorkflowTool.py:292
-# Default: ""
+#. Default: ""
 msgid "Could not get info: ${name}"
 msgstr ""
 
@@ -53,42 +53,42 @@
 msgid "Intervening changes from elsewhere detected. Please refetch the document and reapply your changes. (You may be able to recover your version using the browser 'back' button, but will have to apply them to a freshly fetched copy.)"
 msgstr ""
 
-#: CMFDefault/RegistrationTool.py:101
-msgid "You must enter an email address."
-msgstr ""
-
-#: CMFDefault/RegistrationTool.py:106
-#: CMFDefault/RegistrationTool.py:115
-#: CMFDefault/RegistrationTool.py:121
+#: CMFDefault/RegistrationTool.py:104
+#: CMFDefault/RegistrationTool.py:113
+#: CMFDefault/RegistrationTool.py:119
 msgid "You must enter a valid email address."
 msgstr ""
 
-#: CMFDefault/RegistrationTool.py:135
-#: CMFDefault/RegistrationTool.py:164
+#: CMFDefault/RegistrationTool.py:133
+#: CMFDefault/RegistrationTool.py:162
 msgid "The username you entered could not be found."
 msgstr ""
 
-#: CMFDefault/RegistrationTool.py:51
-# Default: ""
+#: CMFDefault/RegistrationTool.py:49
+#. Default: ""
 msgid "No email address is registered for member: ${member_id}"
 msgstr ""
 
-#: CMFDefault/RegistrationTool.py:70
+#: CMFDefault/RegistrationTool.py:68
 msgid "You must enter a password."
 msgstr ""
 
-#: CMFDefault/RegistrationTool.py:73
+#: CMFDefault/RegistrationTool.py:71
 msgid "Your password must contain at least 5 characters."
 msgstr ""
 
-#: CMFDefault/RegistrationTool.py:76
+#: CMFDefault/RegistrationTool.py:74
 msgid "Your password and confirmation did not match. Please try again."
 msgstr ""
 
-#: CMFDefault/RegistrationTool.py:93
+#: CMFDefault/RegistrationTool.py:91
 msgid "You must enter a valid name."
 msgstr ""
 
+#: CMFDefault/RegistrationTool.py:99
+msgid "You must enter an email address."
+msgstr ""
+
 #: CMFDefault/browser/document.py:107
 #: CMFDefault/skins/zpt_content/document_edit_control.py:10
 msgid "Document changed."
@@ -99,9 +99,9 @@
 #: CMFDefault/browser/folder.py:374
 #: CMFDefault/browser/folder.py:389
 #: CMFDefault/browser/folder.py:404
-#: CMFDefault/browser/link.py:74
 #: CMFDefault/browser/metadata.py:63
 #: CMFDefault/browser/newsitem.py:53
+#: CMFDefault/formlib/form.py:144
 #: CMFDefault/skins/zpt_content/document_edit_control.py:14
 #: CMFDefault/skins/zpt_content/folder_edit_control.py:9
 #: CMFDefault/skins/zpt_content/link_edit_control.py:13
@@ -116,9 +116,9 @@
 msgstr ""
 
 #: CMFDefault/browser/document.py:49
-#: CMFDefault/browser/link.py:48
 #: CMFDefault/browser/metadata.py:34
 #: CMFDefault/browser/metadata.py:72
+#: CMFDefault/formlib/form.py:100
 #: CMFDefault/skins/zpt_content/document_edit_form.py:34
 #: CMFDefault/skins/zpt_content/file_edit_form.py:25
 #: CMFDefault/skins/zpt_content/folder_edit_form.py:24
@@ -134,9 +134,9 @@
 msgstr ""
 
 #: CMFDefault/browser/document.py:54
-#: CMFDefault/browser/link.py:52
 #: CMFDefault/browser/metadata.py:38
 #: CMFDefault/browser/metadata.py:80
+#: CMFDefault/formlib/form.py:106
 #: CMFDefault/skins/zpt_content/document_edit_form.py:35
 #: CMFDefault/skins/zpt_content/file_edit_form.py:26
 #: CMFDefault/skins/zpt_content/folder_edit_form.py:25
@@ -148,6 +148,39 @@
 msgid "Change and View"
 msgstr ""
 
+#: CMFDefault/browser/favorite.py:39
+#: CMFDefault/browser/favorite.py:40
+#: CMFDefault/browser/link.py:42
+#: CMFDefault/browser/link.py:43
+#: CMFDefault/browser/templates/document_edit.pt:13
+#: CMFDefault/browser/templates/metadata_edit.pt:34
+#: CMFDefault/browser/templates/metadata_minimal_edit.pt:12
+#: CMFDefault/browser/templates/newsitem_edit.pt:12
+#: CMFDefault/skins/zpt_content/document_edit_template.pt:16
+#: CMFDefault/skins/zpt_content/file_edit_template.pt:15
+#: CMFDefault/skins/zpt_content/folder_edit_template.pt:15
+#: CMFDefault/skins/zpt_content/image_edit_template.pt:15
+#: CMFDefault/skins/zpt_content/link_edit_template.pt:15
+#: CMFDefault/skins/zpt_content/metadata_edit_template.pt:37
+#: CMFDefault/skins/zpt_content/newsitem_edit_template.pt:15
+#: CMFDefault/skins/zpt_generic/metadata_help.pt:11
+#: CMFDefault/skins/zpt_generic/review.pt:24
+#: CMFDefault/skins/zpt_generic/search_form_template.pt:48
+#: CMFDefault/skins/zpt_generic/search_results_template.pt:15
+#: CMFTopic/skins/zpt_topic/topic_edit_template.pt:15
+msgid "Title"
+msgstr ""
+
+#: CMFDefault/browser/favorite.py:44
+#: CMFDefault/browser/link.py:47
+#: CMFDefault/skins/zpt_content/link_edit_template.pt:19
+msgid "URL"
+msgstr ""
+
+#: CMFDefault/browser/favorite.py:45
+msgid "URL relative to the site root."
+msgstr ""
+
 #: CMFDefault/browser/folder.py:193
 #: CMFDefault/skins/zpt_generic/folder_contents.py:113
 #: CMFDefault/skins/zpt_generic/metadata_help.pt:110
@@ -338,11 +371,6 @@
 msgid "Delete"
 msgstr ""
 
-#: CMFDefault/browser/link.py:70
-#: CMFDefault/skins/zpt_content/link_edit_control.py:9
-msgid "Link changed."
-msgstr ""
-
 #: CMFDefault/browser/metadata.py:61
 #: CMFDefault/browser/metadata.py:207
 #: CMFDefault/skins/zpt_content/folder_edit_control.py:7
@@ -371,69 +399,11 @@
 msgid "There are no items matching your specified criteria."
 msgstr ""
 
-#: CMFDefault/browser/templates/batch_widgets.pt:7
-#: CMFDefault/browser/templates/batch_widgets.pt:19
-#: CMFDefault/browser/templates/batch_widgets.pt:19
-#: CMFDefault/browser/templates/batch_widgets.pt:30
-#: CMFDefault/browser/templates/folder_contents.pt:42
-#: CMFDefault/browser/templates/form_widgets.pt:13
-#: CMFDefault/skins/zpt_content/content_status_history.pt:25
-#: CMFDefault/skins/zpt_content/content_status_history.pt:32
-#: CMFDefault/skins/zpt_content/transition_form.pt:26
-#: CMFDefault/skins/zpt_content/transition_form.pt:56
-#: CMFDefault/skins/zpt_generic/batch_widgets.pt:14
-#: CMFDefault/skins/zpt_generic/batch_widgets.pt:34
-#: CMFDefault/skins/zpt_generic/batch_widgets.pt:34
-#: CMFDefault/skins/zpt_generic/batch_widgets.pt:45
-#: CMFDefault/skins/zpt_generic/folder_contents_template.pt:46
-#: CMFDefault/skins/zpt_generic/folder_factories_template.pt:21
-#: CMFDefault/skins/zpt_generic/folder_factories_template.pt:26
-#: CMFDefault/skins/zpt_generic/folder_filter_form.pt:51
-#: CMFDefault/skins/zpt_generic/folder_rename_template.pt:17
-#: CMFDefault/skins/zpt_generic/form_widgets.pt:22
-#: CMFDefault/skins/zpt_generic/index_html_utils.html:32
-#: CMFDefault/skins/zpt_generic/index_html_utils.html:32
-#: CMFDefault/skins/zpt_generic/index_html_utils.html:70
-#: CMFDefault/skins/zpt_generic/index_html_utils.html:70
-#: CMFDefault/skins/zpt_generic/index_html_utils.html:106
-#: CMFDefault/skins/zpt_generic/index_html_utils.html:106
-#: CMFDefault/skins/zpt_generic/join_template.pt:5
-#: CMFDefault/skins/zpt_generic/main_template.pt:71
-#: CMFDefault/skins/zpt_generic/main_template.pt:118
-#: CMFDefault/skins/zpt_generic/main_template.pt:157
-#: CMFDefault/skins/zpt_generic/main_template.pt:175
-#: CMFDefault/skins/zpt_generic/main_template.pt:201
-#: CMFDefault/skins/zpt_generic/main_template.pt:207
-#: CMFDefault/skins/zpt_generic/main_template.pt:221
-#: CMFDefault/skins/zpt_generic/main_template.pt:235
-#: CMFDefault/skins/zpt_generic/main_template.pt:269
-#: CMFDefault/skins/zpt_generic/review.pt:55
-#: CMFDefault/skins/zpt_generic/roster.pt:43
-#: CMFDefault/skins/zpt_generic/search_results_template.pt:35
-#: CMFDefault/skins/zpt_generic/synPropertiesForm_template.pt:66
+#: CMFDefault/browser/templates/batch_widgets.pt:41
+#: CMFDefault/browser/templates/batch_widgets.pt:47
 msgid "${DYNAMIC_CONTENT}"
 msgstr ""
 
-#: CMFDefault/browser/templates/document_edit.pt:13
-#: CMFDefault/browser/templates/link_edit.pt:12
-#: CMFDefault/browser/templates/metadata_edit.pt:34
-#: CMFDefault/browser/templates/metadata_minimal_edit.pt:12
-#: CMFDefault/browser/templates/newsitem_edit.pt:12
-#: CMFDefault/skins/zpt_content/document_edit_template.pt:16
-#: CMFDefault/skins/zpt_content/file_edit_template.pt:15
-#: CMFDefault/skins/zpt_content/folder_edit_template.pt:15
-#: CMFDefault/skins/zpt_content/image_edit_template.pt:15
-#: CMFDefault/skins/zpt_content/link_edit_template.pt:15
-#: CMFDefault/skins/zpt_content/metadata_edit_template.pt:37
-#: CMFDefault/skins/zpt_content/newsitem_edit_template.pt:15
-#: CMFDefault/skins/zpt_generic/metadata_help.pt:11
-#: CMFDefault/skins/zpt_generic/review.pt:24
-#: CMFDefault/skins/zpt_generic/search_form_template.pt:48
-#: CMFDefault/skins/zpt_generic/search_results_template.pt:15
-#: CMFTopic/skins/zpt_topic/topic_edit_template.pt:15
-msgid "Title"
-msgstr ""
-
 #: CMFDefault/browser/templates/document_edit.pt:17
 #: CMFDefault/browser/templates/metadata_edit.pt:41
 #: CMFDefault/browser/templates/metadata_minimal_edit.pt:19
@@ -485,7 +455,6 @@
 msgstr ""
 
 #: CMFDefault/browser/templates/document_edit.pt:5
-#: CMFDefault/browser/templates/link_edit.pt:5
 #: CMFDefault/browser/templates/metadata_minimal_edit.pt:5
 #: CMFDefault/browser/templates/newsitem_edit.pt:5
 #: CMFDefault/skins/zpt_content/document_edit_template.pt:5
@@ -548,11 +517,6 @@
 msgid "Link: ${link}"
 msgstr ""
 
-#: CMFDefault/browser/templates/link_edit.pt:16
-#: CMFDefault/skins/zpt_content/link_edit_template.pt:19
-msgid "URL"
-msgstr ""
-
 #: CMFDefault/browser/templates/metadata_edit.pt:101
 #: CMFDefault/skins/zpt_content/metadata_edit_template.pt:104
 #: CMFDefault/skins/zpt_generic/metadata_help.pt:199
@@ -638,30 +602,30 @@
 msgid "Body"
 msgstr ""
 
-#: CMFDefault/browser/utils.py:274
+#: CMFDefault/browser/utils.py:273
 msgid "Previous item"
 msgstr ""
 
-#: CMFDefault/browser/utils.py:276
-# Default: ""
+#: CMFDefault/browser/utils.py:275
+#. Default: ""
 msgid "Previous ${count} items"
 msgstr ""
 
-#: CMFDefault/browser/utils.py:288
+#: CMFDefault/browser/utils.py:287
 msgid "Next item"
 msgstr ""
 
-#: CMFDefault/browser/utils.py:290
-# Default: ""
+#: CMFDefault/browser/utils.py:289
+#. Default: ""
 msgid "Next ${count} items"
 msgstr ""
 
-#: CMFDefault/browser/utils.py:301
+#: CMFDefault/browser/utils.py:300
 #: CMFDefault/skins/zpt_generic/search.py:47
 msgid "item"
 msgstr ""
 
-#: CMFDefault/browser/utils.py:301
+#: CMFDefault/browser/utils.py:300
 #: CMFDefault/skins/zpt_generic/search.py:47
 msgid "items"
 msgstr ""
@@ -670,6 +634,20 @@
 msgid "Invalid email address."
 msgstr ""
 
+#: CMFDefault/formlib/form.py:123
+#. Default: ""
+msgid "Edit ${obj_type}"
+msgstr ""
+
+#: CMFDefault/formlib/form.py:127
+msgid "This resource is locked via webDAV."
+msgstr ""
+
+#: CMFDefault/formlib/form.py:141
+#. Default: ""
+msgid "${obj_type} changed."
+msgstr ""
+
 #: CMFDefault/profiles/default/actions.xml:10
 #: CMFDefault/skins/zpt_generic/login_form.pt:44
 msgid "Login"
@@ -1016,6 +994,10 @@
 msgid "Upload image"
 msgstr ""
 
+#: CMFDefault/skins/zpt_content/link_edit_control.py:9
+msgid "Link changed."
+msgstr ""
+
 #: CMFDefault/skins/zpt_content/transition_form.pt:11
 msgid "Transition of ${objectid}."
 msgstr ""
@@ -1124,20 +1106,15 @@
 msgid "Please select a content type."
 msgstr ""
 
+#: CMFDefault/skins/zpt_generic/batch_widgets.pt:70
+#: CMFDefault/skins/zpt_generic/batch_widgets.pt:81
+msgid "${DYNAMIC_CONTENT} ${count} ${DYNAMIC_CONTENT}"
+msgstr ""
+
 #: CMFDefault/skins/zpt_generic/breadcrumbs.py:13
 msgid "root"
 msgstr ""
 
-#: CMFDefault/skins/zpt_generic/content_byline.pt:14
-#: CMFDefault/skins/zpt_generic/recent_news_template.pt:29
-msgid "and"
-msgstr ""
-
-#: CMFDefault/skins/zpt_generic/content_byline.pt:22
-#: CMFDefault/skins/zpt_generic/recent_news_template.pt:32
-msgid "unknown"
-msgstr ""
-
 #: CMFDefault/skins/zpt_generic/content_byline.pt:23
 msgid "Last modified"
 msgstr ""
@@ -1599,7 +1576,7 @@
 msgstr ""
 
 #: CMFDefault/skins/zpt_generic/password_email.py:18
-# Default: ""
+#. Default: ""
 msgid "${portal_title}: Membership reminder"
 msgstr ""
 
@@ -1768,7 +1745,7 @@
 msgstr ""
 
 #: CMFDefault/skins/zpt_generic/registered_email.py:31
-# Default: ""
+#. Default: ""
 msgid "${portal_title}: Your Membership Information"
 msgstr ""
 
@@ -2027,6 +2004,18 @@
 msgid "Max Syndicated Items"
 msgstr ""
 
+#: CMFDefault/skins/zpt_generic/talkback_tree.pt:26
+msgid "and"
+msgstr ""
+
+#: CMFDefault/skins/zpt_generic/talkback_tree.pt:29
+msgid "unknown"
+msgstr ""
+
+#: CMFDefault/skins/zpt_generic/talkback_tree.pt:32
+msgid "delete reply"
+msgstr ""
+
 #: CMFDefault/skins/zpt_generic/undo_form.pt:107
 msgid "There are no transactions that can be undone."
 msgstr ""
@@ -2072,17 +2061,17 @@
 msgstr ""
 
 #: CMFDefault/utils.py:329
-# Default: ""
+#. Default: ""
 msgid "JavaScript event '${attribute}' not allowed."
 msgstr ""
 
 #: CMFDefault/utils.py:334
-# Default: ""
+#. Default: ""
 msgid "JavaScript URI '${value}' not allowed."
 msgstr ""
 
 #: CMFDefault/utils.py:347
-# Default: ""
+#. Default: ""
 msgid "Dynamic tag '${tag}' not allowed."
 msgstr ""
 
@@ -2119,12 +2108,12 @@
 msgstr ""
 
 #: DCWorkflow/DCWorkflow.py:285
-# Default: ""
+#. Default: ""
 msgid "Transition '${action_id}' is not triggered by a user action."
 msgstr ""
 
 #: DCWorkflow/DCWorkflow.py:468
-# Default: ""
+#. Default: ""
 msgid "Destination state undefined: ${state_id}"
 msgstr ""
 



More information about the CMF-checkins mailing list