]> CRI, Mines Paris - PSL - Plinn.git/blobdiff - skins/generic/search.py
Déplacement pour eggification.
[Plinn.git] / skins / generic / search.py
diff --git a/skins/generic/search.py b/skins/generic/search.py
deleted file mode 100755 (executable)
index 0d02e57..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-##parameters=
-from Products.CMFCore.utils import getToolByName
-from ZTUtils import make_query as mq
-from ZTUtils import make_hidden_input
-from Products.Plinn.utils import translate
-def _(message) : return translate(message, context).encode('utf-8')
-
-utool = getToolByName(context, 'portal_url')
-portal_url = utool()
-ctool = getToolByName(context, 'portal_catalog')
-mtool = getToolByName(context,'portal_membership')
-homeDir = mtool.getHomeFolder(verifyPermission=True)
-options = {}
-indexes = {}
-for i in ctool.indexes() :
-       indexes[i] = True
-hasindex = indexes.has_key
-
-form = context.REQUEST.form
-query = {}
-skip_vars = ['strCreator', 'ajax', 'b_start']
-
-# list typed criterions
-select_vars = ( 'review_state'
-                         , 'Subject'
-                         , 'portal_type'
-                         )
-noFollowVars = []
-
-# first cleaning: remove empty values / dict cast.
-for k, v in form.items() :
-       if not v : continue
-       if k in select_vars :
-               if same_type( v, [] ):
-                       v = filter( None, v )
-               if not v:
-                       continue
-       if hasattr(v, 'has_key') :
-               v = dict(v.items())
-       
-       query[ k ] = v
-
-# simplifications / cleaning again
-if query.has_key('portal_type') :
-       try : query['portal_type'].remove('Member Data')
-       except (ValueError, AttributeError) : pass
-else :
-       query['portal_type'] = context.portal_types.objectIds()
-       noFollowVars.append('portal_type')
-
-# clean parameters that are not indexes
-for k in skip_vars:
-       if query.has_key(k) :
-               del query[k]
-
-# expand creator search item
-if form.has_key('strCreator') and form['strCreator'].strip() :
-       query['listCreators'] = [ m.getId() for m in context.portal_membership.looseSearchMembers(form['strCreator']) ]
-
-# 'mofified' index solving
-if query.has_key('modified') :
-       def resolveDate(modified) :
-               today = context.ZopeTime().earliestTime()
-               dateResolution = {'yesterday'   : (today-1).Date()
-                                               , 'lastWeek'    : (today-7).Date()
-                                               , 'lastMonth'   : (today-31).Date()
-                                               }
-               member = mtool.getAuthenticatedMember()
-               if member :
-                       lastLoginTime = member.getProperty('last_login_time', None)
-                       if lastLoginTime :
-                               dateResolution['lastLogin'] = lastLoginTime
-               return dateResolution.get(modified)
-       
-       date = resolveDate(query['modified'])
-       if date :
-               query['modified'] = {'query':date, 'range':'min'}
-       else :
-               del query['modified']
-
-sort_on = query.get('sort_on', 'fTitle')
-if hasindex(sort_on) :
-       query['sort_on'] = sort_on
-       query['sort_order'] = query.get('sort_order', 'ascending')
-else :
-       if query.has_key('sort_on')             : query.pop('sort_on')
-       if query.has_key('sort_order')  : query.pop('sort_order')       
-
-def makeColumnHeader(indexName) :
-       toggleSortOrder = indexName == sort_on
-       columnQuery = query.copy()
-       for name in noFollowVars :
-               if columnQuery.has_key(name) :
-                       columnQuery.pop(name)
-       columnQuery['sort_on'] = indexName
-       sort_order = query.get('sort_order', 'ascending')
-       if toggleSortOrder :
-               if sort_order == 'ascending' :
-                       sort_order = 'reverse'
-               elif sort_order == 'reverse' :
-                       sort_order = 'ascending'
-       columnQuery['sort_order'] = sort_order
-       url = '%s/search?%s' % (portal_url, mq(**columnQuery))
-       
-       toggleImg = None
-       if toggleSortOrder : # e.g. selected
-               if query['sort_order'] == 'ascending' :
-                       toggleImg = {'src':'%s/arrowUp.gif' % portal_url
-                                               ,'alt' : _('ascending sort')}
-
-               elif query['sort_order'] == 'reverse' :
-                       toggleImg = {'src':'%s/arrowDown.gif' % portal_url
-                                               ,'alt' : _('ascending sort')}
-       return {'url':url, 'img':toggleImg}
-                       
-
-options['makeColumnHeader'] = makeColumnHeader
-results = ctool( **query )
-options['results'] = results
-options['resultsLength'] = len(results)
-if homeDir and results :
-       options['canSaveAsTopic'] = True
-       args = query.copy()
-       for name in noFollowVars :
-               try : args.pop(name)
-               except : pass
-       if form.has_key('modified') :
-               possibleValues = {'yesterday'   : 1
-                                                ,'lastWeek'    : 7
-                                                ,'lastMonth' : 31}
-               value = possibleValues.get(form['modified'])
-               if value :
-                       d = {'critType' : 'Friendly Date Criterion'
-                               ,'value'        : value
-                               ,'operation': 'max'
-                               ,'daterange': 'old'}
-                       args['modified'] = d
-               else :
-                       try : del args['modified']
-                       except KeyError : pass
-       options['queryAsHiddenInputs'] = make_hidden_input(**args)
-else :
-       options['canSaveAsTopic'] = False
-return context.search_results_template(**options)