[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/search/ Vocabularies refactored to local sources as reuse in other forms is not anticipated.

Charlie Clark charlie at begeistert.org
Sun Oct 10 11:26:50 EDT 2010


Log message for revision 117410:
  Vocabularies refactored to local sources as reuse in other forms is not anticipated.

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/search/configure.zcml
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/search/interfaces.py
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/search/search.py
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/search/vocab.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/search/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/search/configure.zcml	2010-10-09 16:31:30 UTC (rev 117409)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/search/configure.zcml	2010-10-10 15:26:49 UTC (rev 117410)
@@ -10,28 +10,4 @@
       permission="zope2.View"
       />
 
-  <utility
-      component=".vocab.subject_vocab"
-      provides="zope.schema.interfaces.IVocabularyFactory"
-      name="cmf.subject"
-      />
-
-  <utility
-      component=".vocab.status_vocab"
-      provides="zope.schema.interfaces.IVocabularyFactory"
-      name="cmf.review state"
-      />
-
-  <utility
-      component=".vocab.date_vocab"
-      provides="zope.schema.interfaces.IVocabularyFactory"
-      name="cmf.date"
-      />
-
-  <utility
-      component=".vocab.type_vocab"
-      provides="zope.schema.interfaces.IVocabularyFactory"
-      name="cmf.type"
-      />
-
 </configure>

Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/search/interfaces.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/search/interfaces.py	2010-10-09 16:31:30 UTC (rev 117409)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/search/interfaces.py	2010-10-10 15:26:49 UTC (rev 117410)
@@ -12,18 +12,81 @@
 ##############################################################################
 """Search Form Schema"""
 
-from datetime import date
+from datetime import date, timedelta
 
-from zope.interface import Interface
+from DateTime import DateTime
+
+from zope.interface import Interface, directlyProvides
+from zope.schema.interfaces import IContextSourceBinder
 from zope.schema import Choice, Int, Datetime, List, TextLine, ASCIILine
+from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
 
+from Products.CMFCore.utils import getToolByName
 from Products.CMFDefault.utils import Message as _
 
+def status_vocab(context):
+    """Provides a list of workflow states"""
+    catalog = getToolByName(context, 'portal_catalog')
+    values = [((u'--any--'), "None")]
+    values += [(v, v) for v in catalog.uniqueValuesFor('review_state')]
+    return SimpleVocabulary.fromItems(values)
+directlyProvides(status_vocab, IContextSourceBinder)
+
+def subject_vocab(context):
+    """Provides a list of subject keywords"""
+    catalog = getToolByName(context, 'portal_catalog')
+    values = [((u'--any--'), "None")]
+    values += [(v, v) for v in catalog.uniqueValuesFor('Subject')]
+    return SimpleVocabulary.fromItems(values)
+directlyProvides(subject_vocab, IContextSourceBinder)
+
+def date_vocab(context):
+    """Provides a list of dates for searching with"""
+    mtool = getToolByName(context, 'portal_membership')
+    dates = [SimpleTerm(date(1970, 1, 1), date(1970, 1, 1), 'Ever')]
+    if not mtool.isAnonymousUser():
+        login_time = mtool.getAuthenticatedMember().last_login_time
+        if not hasattr(login_time, 'parts'):
+            login_time = DateTime(login_time)
+        login = date(*login_time.parts()[:3])
+        dates.append(SimpleTerm(
+            login, login, 'Last login')
+                     )
+
+    today = date.today()
+    dates.append(SimpleTerm(today - timedelta(days=1),
+                            today - timedelta(days=1),
+                            u'Yesterday'
+                            )
+                 )
+    dates.append(SimpleTerm(today - timedelta(days=7),
+                            today - timedelta(days=7),
+                            u'Last week'
+                            )
+                 )
+    dates.append(SimpleTerm(today - timedelta(days=31),
+                            today - timedelta(days=31),
+                            u'Last month'
+                            )
+                 )
+    return SimpleVocabulary(dates)
+directlyProvides(date_vocab, IContextSourceBinder)
+
+def type_vocab(context):
+    """Provides a list of portal types"""
+    ttool = getToolByName(context, 'portal_types')
+    types = ttool.listTypeInfo()
+    terms = [SimpleTerm(None, None, '--any--')]
+    terms += [SimpleTerm(t.getId(), t.getId(), t.Title()) for t in types]
+    return SimpleVocabulary(terms)
+directlyProvides(type_vocab, IContextSourceBinder)
+
+
 class ISearchSchema(Interface):
 
     review_state = Choice(
                         title=(_(u"Review Status")),
-                        vocabulary=u"cmf.review state",
+                        source=status_vocab,
                         description=(_(
                             u"As a reviewer, you may search for items based on"
                             u" their review state. If you wish to constrain"
@@ -45,7 +108,7 @@
     subject = Choice(
                 title=(_(u"Subject")),
                 description=(_(u"")),
-                vocabulary=u"cmf.subject",
+                source=subject_vocab,
                 default="None"
                 )
 
@@ -63,7 +126,7 @@
             description=(_(
                 u"You may find only recent items by selecting a time-frame."
                         )),
-            vocabulary=u"cmf.date",
+            source=date_vocab,
             default=date.today())
 
     portal_type = Choice(
@@ -72,14 +135,14 @@
                         u"You may limit your results to particular kinds of"
                         u" items by selecting them above. To find all kinds of"
                         u" items, do not select anything.")),
-                    vocabulary=u"cmf.type",
+                    source=type_vocab,
                     default="None")
 
     creator = ASCIILine(
                 title=(_(u"Creator")),
                 description=(_(
                     u"To find items by a particular user only, enter their"
-                    u"username above. Note that you must enter their username"
-                    u"exactly.")),
+                    u" username above. Note that you must enter their username"
+                    u" exactly.")),
                 required=False
                 )

Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/search/search.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/search/search.py	2010-10-09 16:31:30 UTC (rev 117409)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/search/search.py	2010-10-10 15:26:49 UTC (rev 117410)
@@ -24,18 +24,17 @@
 ##############################################################################
 """Search views"""
 
-from zope.interface import Interface
 from zope.formlib import form
 
 from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
 
-from Products.CMFCore.interfaces import ISyndicationInfo
 from Products.CMFDefault.formlib.form import EditFormBase
 from Products.CMFDefault.utils import Message as _
 from Products.CMFDefault.browser.utils import memoize
 
 from interfaces import ISearchSchema
 
+
 class Search(EditFormBase):
     """Portal Search Form"""
 

Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/search/vocab.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/search/vocab.py	2010-10-09 16:31:30 UTC (rev 117409)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/search/vocab.py	2010-10-10 15:26:49 UTC (rev 117410)
@@ -18,58 +18,7 @@
 
 from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
 
-from Products.CMFCore.utils import getToolByName
 from Products.CMFCore.utils import MessageFactory as _
 
-def status_vocab(context):
-    """Provides a list of workflow states"""
-    catalog = getToolByName(context, 'portal_catalog')
-    values = [((u'--any--'), "None")]
-    values += [(v, v) for v in catalog.uniqueValuesFor('review_state')]
-    return SimpleVocabulary.fromItems(values)
 
-def subject_vocab(context):
-    """Provides a list of subject keywords"""
-    catalog = getToolByName(context, 'portal_catalog')
-    values = [((u'--any--'), "None")]
-    values += [(v, v) for v in catalog.uniqueValuesFor('Subject')]
-    return SimpleVocabulary.fromItems(values)
 
-def date_vocab(context):
-    """Provides a list of dates for searching with"""
-    mtool = getToolByName(context, 'portal_membership')
-    dates = [SimpleTerm(date(1970, 1, 1), date(1970, 1, 1), 'Ever')]
-    if not mtool.isAnonymousUser():
-        login_time = mtool.getAuthenticatedMember().last_login_time
-        if not hasattr(login_time, 'parts'):
-            login_time = DateTime(login_time)
-        login = date(*login_time.parts()[:3])
-        dates.append(SimpleTerm(
-            login, login, 'Last login')
-                     )
-
-    today = date.today()
-    dates.append(SimpleTerm(today - timedelta(days=1),
-                            today - timedelta(days=1),
-                            u'Yesterday'
-                            )
-                 )
-    dates.append(SimpleTerm(today - timedelta(days=7),
-                            today - timedelta(days=7),
-                            u'Last week'
-                            )
-                 )
-    dates.append(SimpleTerm(today - timedelta(days=31),
-                            today - timedelta(days=31),
-                            u'Last month'
-                            )
-                 )
-    return SimpleVocabulary(dates)
-
-def type_vocab(context):
-    """Provides a list of portal types"""
-    ttool = getToolByName(context, 'portal_types')
-    types = ttool.listTypeInfo()
-    terms = [SimpleTerm(None, None, '--any--')]
-    terms += [SimpleTerm(t.getId(), t.getId(), t.Title()) for t in types]
-    return SimpleVocabulary(terms)



More information about the checkins mailing list