Déplacement pour eggification.
[Plinn.git] / Topic.py
diff --git a/Topic.py b/Topic.py
deleted file mode 100644 (file)
index e9f7a93..0000000
--- a/Topic.py
+++ /dev/null
@@ -1,135 +0,0 @@
-# -*- coding: utf-8 -*-
-#######################################################################################
-#   Plinn - http://plinn.org                                                          #
-#   Copyright © 2005-2009  Benoît PIN <benoit.pin@ensmp.fr>                           #
-#                                                                                     #
-#   This program is free software; you can redistribute it and/or                     #
-#   modify it under the terms of the GNU General Public License                       #
-#   as published by the Free Software Foundation; either version 2                    #
-#   of the License, or (at your option) any later version.                            #
-#                                                                                     #
-#   This program is distributed in the hope that it will be useful,                   #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of                    #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                     #
-#   GNU General Public License for more details.                                      #
-#                                                                                     #
-#   You should have received a copy of the GNU General Public License                 #
-#   along with this program; if not, write to the Free Software                       #
-#   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.   #
-#######################################################################################
-""" Plinn Topic
-
-
-
-"""
-
-from Globals import InitializeClass
-from zope.component.factory import Factory
-from AccessControl.SecurityInfo import ClassSecurityInfo
-from Products.CMFCore.permissions import View, ListFolderContents
-from Products.CMFTopic.permissions import AddTopics, ChangeTopics
-from Products.CMFTopic.Topic import Topic as BaseTopic
-from Products.CMFDefault.DublinCore import DefaultDublinCoreImpl
-from Products.CMFCore.utils import getToolByName
-from Folder import PlinnFolder
-from types import ListType, TupleType, StringTypes
-
-from sets import Set
-
-
-class Topic(BaseTopic, PlinnFolder):
-       """ CMF Topic with Dublin core metadata support """
-       
-       security = ClassSecurityInfo()
-       
-       security.declareProtected(ChangeTopics, 'listAvailableFields')
-       def listAvailableFields( self ):
-               """ Return a list of available fields for new criteria.
-               """
-               fields = Set(BaseTopic.listAvailableFields(self))
-               utool = getToolByName(self, "portal_url")
-               portal = utool.getPortalObject()
-               unusedTopicFields = Set(portal.getProperty("unused_topic_fields", []))
-               return fields - unusedTopicFields
-       
-       security.declareProtected(View, 'queryCatalog')
-       def queryCatalog(self, REQUEST=None, **kw) :
-               """ Invoke the catalog using our criteria.
-                       remove Member Data results
-               """
-               kw.update( self.buildQuery() )
-
-               ttool = getToolByName(self, 'portal_types')
-               if not kw.has_key('portal_type') :
-                       kw['portal_type'] = ttool.objectIds()
-               else :
-                       if type(kw['portal_type']) == ListType :
-                               try : kw['portal_type'].remove('Member Data')
-                               except : pass
-                       if type(kw['portal_type']) == TupleType :
-                               ptypes = list(kw['portal_type'])
-                               try :
-                                       ptypes.remove('Member Data')
-                                       kw['portal_type'] = tuple(ptypes)
-                               except : pass
-                       elif kw['portal_type'] == 'Member Data' :
-                               kw['portal_type'] = ttool.objectIds()
-
-               portal_catalog = getToolByName( self, 'portal_catalog' )
-               return portal_catalog.searchResults(REQUEST, **kw)
-       
-       
-       security.declareProtected(ChangeTopics, 'loadSearchQuery')
-       def loadSearchQuery(self, query):
-               sort_on = query.pop('sort_on')
-               sort_order = query.pop('sort_order')
-               ctool = getToolByName(self, 'portal_catalog')
-               hasindex = ctool._catalog.indexes.has_key
-               
-               for k, v in query.items() :
-                       if not hasindex(k) : continue
-                       if isinstance(v, StringTypes) :
-                               self.addCriterion(k, 'String Criterion')
-                               crit = self.getCriterion(k)
-                               crit.edit(v)
-                       elif isinstance(v, (ListType, TupleType)) :
-                               if len(v) == 1 :
-                                       self.addCriterion(k, 'String Criterion')
-                                       crit = self.getCriterion(k)
-                                       crit.edit(v[0])
-                               else :  
-                                       self.addCriterion(k, 'List Criterion')
-                                       crit = self.getCriterion(k)
-                                       crit.edit(value=v, operator='or')
-                       elif isinstance(v, dict) :
-                               self.addCriterion(k, v.pop('critType'))
-                               crit = self.getCriterion(k)
-                               crit.edit(**v)
-               
-               self.addCriterion(sort_on, 'Sort Criterion')
-               sort_crit = self.getCriterion(sort_on)
-               if sort_order == 'reverse' :
-                       sort_crit.edit(True)
-               else :
-                       sort_crit.edit(False)
-       
-       security.declareProtected(ChangeTopics, 'getCompatibleCriteriaFor')
-       def getCompatibleCriteriaFor(self, fieldName) :
-               """ Return a list of criteria which belong to the field """
-               
-               pass    
-InitializeClass(Topic)
-TopicFactory = Factory(Topic)
-
-
-def addTopic(dispatcher, id, title='', REQUEST=None):
-       """ Create an empty topic.
-       """
-       topic = Topic( id )
-       topic.id = id
-       topic.title = title
-       dest = dispatcher.Destination()
-       dest._setObject( id, topic )
-
-       if REQUEST is not None:
-               REQUEST['RESPONSE'].redirect( 'manage_main' )