[Checkins] SVN: lovely.tag/trunk/src/lovely/tag/ Prepared the adapters to allow subclasses to provide a name for the tagging

Jürgen Kartnaller juergen at kartnaller.at
Tue Sep 26 04:44:48 EDT 2006


Log message for revision 70381:
  Prepared the adapters to allow subclasses to provide a name for the tagging
  engine.
  Updated sampledata to the latest version of z3c.sampledata .
  

Changed:
  U   lovely.tag/trunk/src/lovely/tag/README.txt
  U   lovely.tag/trunk/src/lovely/tag/browser/README.txt
  U   lovely.tag/trunk/src/lovely/tag/ftesting.zcml
  U   lovely.tag/trunk/src/lovely/tag/sampledata.py
  U   lovely.tag/trunk/src/lovely/tag/tagging.py

-=-
Modified: lovely.tag/trunk/src/lovely/tag/README.txt
===================================================================
--- lovely.tag/trunk/src/lovely/tag/README.txt	2006-09-26 05:09:39 UTC (rev 70380)
+++ lovely.tag/trunk/src/lovely/tag/README.txt	2006-09-26 08:44:45 UTC (rev 70381)
@@ -291,6 +291,36 @@
   >>> sorted(tagging.getUsers(tags=(u'USA',)))
   [u'jodok', u'srichter']
 
+Using Named Tagging Engines
+---------------------------
+
+  >>> namedEngine = tag.TaggingEngine()
+  >>> zope.component.provideUtility(namedEngine, tag.interfaces.ITaggingEngine,
+  ...                               name='IAmNamed')
+
+  >>> class INamedTagging(tag.interfaces.ITagging):
+  ...     pass
+  >>> class NamedTagging(tag.Tagging):
+  ...     zope.interface.implements(INamedTagging)
+  ...     zope.component.adapts(tag.interfaces.ITaggable)
+  ...     engineName = 'IAmNamed'
+  >>> zope.component.provideAdapter(NamedTagging,
+  ...                               (tag.interfaces.ITaggable,),
+  ...                               INamedTagging)
+  >>> namedTagging = INamedTagging(image)
+  >>> namedTagging.tags = ['named1', 'named2']
+  >>> sorted(namedTagging.getTags())
+  []
+  >>> namedTagging.update(u'jukart', [u'works', u'hard'])
+  >>> sorted(namedTagging.getTags())
+  [u'hard', u'works']
+
+The new tags are not in the unnamed tagging engine.
+
+  >>> sorted(tagging.getTags())
+  [u'USA', u'home', u'vacation']
+
+
 IUserTagging
 ------------
 

Modified: lovely.tag/trunk/src/lovely/tag/browser/README.txt
===================================================================
--- lovely.tag/trunk/src/lovely/tag/browser/README.txt	2006-09-26 05:09:39 UTC (rev 70380)
+++ lovely.tag/trunk/src/lovely/tag/browser/README.txt	2006-09-26 08:44:45 UTC (rev 70381)
@@ -22,7 +22,7 @@
   >>> browser.open('http://localhost/tags/@@tagCloud')
   >>> print browser.contents
   <div class="tagCloud">
-   <span class="tag1">1970s(1)</span>
+   <span class="tag1">adam(1)</span>
    ...
   </div>
 
@@ -32,10 +32,9 @@
 
 Shows a tag cloud of all related tags of a tag.
 
-  >>> browser.open('http://localhost/tags/@@relatedTagCloud?tagname=1970s')
+  >>> browser.open('http://localhost/tags/@@relatedTagCloud?tagname=adam')
   >>> print browser.contents
   <div class="tagCloud">
-   <span class="tag1">city(1)</span>
-   ...
+   <span class="tag1">mysteries(1)</span>
   </div>
 

Modified: lovely.tag/trunk/src/lovely/tag/ftesting.zcml
===================================================================
--- lovely.tag/trunk/src/lovely/tag/ftesting.zcml	2006-09-26 05:09:39 UTC (rev 70380)
+++ lovely.tag/trunk/src/lovely/tag/ftesting.zcml	2006-09-26 08:44:45 UTC (rev 70381)
@@ -64,7 +64,6 @@
   <include package="zope.formlib"/>
   
   <include package="z3c.sampledata"/>
-  <include package="z3c.sampledata" file="site.zcml"/>
 
   <include package="lovely.tag"/>
   <include package="lovely.tag" file="sampledata.zcml"/>

Modified: lovely.tag/trunk/src/lovely/tag/sampledata.py
===================================================================
--- lovely.tag/trunk/src/lovely/tag/sampledata.py	2006-09-26 05:09:39 UTC (rev 70380)
+++ lovely.tag/trunk/src/lovely/tag/sampledata.py	2006-09-26 08:44:45 UTC (rev 70381)
@@ -63,7 +63,7 @@
     dependencies = []
     schema = None
 
-    def generate(self, context, param={}, seed=None):
+    def generate(self, context, param={}, dataSource=None, seed=None):
         hooks.setSite(context)
 
         engine = component.queryUtility(tag.interfaces.ITaggingEngine)
@@ -82,7 +82,7 @@
     dependencies = []
     schema = None
 
-    def generate(self, context, param={}, seed=None):
+    def generate(self, context, param={}, dataSource=None, seed=None):
         engine = component.getUtility(tag.interfaces.ITaggingEngine)
         return generate(20, engine, seed)
 

Modified: lovely.tag/trunk/src/lovely/tag/tagging.py
===================================================================
--- lovely.tag/trunk/src/lovely/tag/tagging.py	2006-09-26 05:09:39 UTC (rev 70380)
+++ lovely.tag/trunk/src/lovely/tag/tagging.py	2006-09-26 08:44:45 UTC (rev 70381)
@@ -22,10 +22,13 @@
 from zope.security.management import getInteraction
 from lovely.tag import interfaces
 
+
 class Tagging(object):
     zope.interface.implements(interfaces.ITagging)
     zope.component.adapts(interfaces.ITaggable)
 
+    engineName = ''
+
     def __init__(self, context):
         self.context = context
 
@@ -35,7 +38,8 @@
             ids.register(self.context)
             self._id = ids.getId(self.context)
 
-        self._engine = zope.component.getUtility(interfaces.ITaggingEngine)
+        self._engine = zope.component.getUtility(interfaces.ITaggingEngine,
+                                                 name=self.engineName)
 
     def update(self, user, tags):
         """See interfaces.ITagging"""
@@ -49,11 +53,13 @@
         """See interfaces.ITagging"""
         return self._engine.getUsers(items=(self._id,), tags=tags)
 
+
 class UserTagging(object):
-    
     zope.interface.implements(interfaces.IUserTagging)
     zope.component.adapts(interfaces.ITaggable)
 
+    engineName = ''
+
     def __init__(self, context):
         self.context = context
         ids = zope.component.getUtility(intid.interfaces.IIntIds)
@@ -61,7 +67,8 @@
         if self._id is None:
             ids.register(self.context)
             self._id = ids.getId(self.context)
-        self._engine = zope.component.getUtility(interfaces.ITaggingEngine)
+        self._engine = zope.component.getUtility(interfaces.ITaggingEngine,
+                                                 name=self.engineName)
 
     @property
     def _pid(self):
@@ -70,7 +77,7 @@
             return participations[0].principal.id
         else:
             raise ValueError, "User not found"
-    
+
     @apply
     def tags():
         def fget(self):



More information about the Checkins mailing list