source: main/waeup.sirp/trunk/src/waeup/sirp/catalog.py @ 6996

Last change on this file since 6996 was 6447, checked in by Henrik Bettermann, 13 years ago

Implement search function for academic section. The courses_catalog and the certcourses_catalog are searched.

Remove search pages for students. Student search will be done in the upcoming student package.

  • Property svn:eol-style set to native
File size: 1.3 KB
Line 
1"""Components to help cataloging and searching objects.
2"""
3import grok
4from grok import index
5from hurry.query import Eq
6from hurry.query.interfaces import IQuery
7from hurry.query.query import Query
8from zope.catalog.catalog import ResultSet
9from zope.component import getUtility
10from zope.intid.interfaces import IIntIds
11
12from waeup.sirp.app import University
13from waeup.sirp.interfaces import IQueryResultItem
14
15# not yet used
16class WAeUPQuery(Query):
17    """A hurry.query-like query that supports also ``apply``.
18    """
19    grok.implements(IQuery)
20
21    def apply(self, query):
22        """Get a catalog's BTree set of intids conforming to a query.
23        """
24        return query.apply()
25
26    def searchResults(self, query):
27        """Get a set of ZODB objects conforming to a query.
28        """
29        results = self.apply(query)
30        if results is not None:
31            uidutil = getUtility(IIntIds)
32            results = ResultSet(results, uidutil)
33        return results
34
35grok.global_utility(WAeUPQuery)
36
37# not yet used
38class QueryResultItem(object):
39    grok.implements(IQueryResultItem)
40    url = None
41    title = None
42    description = None
43
44    def __init__(self, context, view):
45        self.context = context
46        self.url = view.url(context)
47        self.title = context.title
48        self.description = ''
Note: See TracBrowser for help on using the repository browser.