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

Last change on this file since 7084 was 6447, checked in by Henrik Bettermann, 14 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
RevLine 
[5090]1"""Components to help cataloging and searching objects.
2"""
[3521]3import grok
[5091]4from grok import index
[3521]5from hurry.query import Eq
[5090]6from hurry.query.interfaces import IQuery
7from hurry.query.query import Query
8from zope.catalog.catalog import ResultSet
[5091]9from zope.component import getUtility
[5090]10from zope.intid.interfaces import IIntIds
11
[4920]12from waeup.sirp.app import University
[5007]13from waeup.sirp.interfaces import IQueryResultItem
[3521]14
[6447]15# not yet used
[5090]16class WAeUPQuery(Query):
[6207]17    """A hurry.query-like query that supports also ``apply``.
18    """
19    grok.implements(IQuery)
[4789]20
[6207]21    def apply(self, query):
22        """Get a catalog's BTree set of intids conforming to a query.
23        """
24        return query.apply()
[5090]25
[6207]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
[5090]34
[5091]35grok.global_utility(WAeUPQuery)
[5090]36
[6447]37# not yet used
[4789]38class QueryResultItem(object):
[6207]39    grok.implements(IQueryResultItem)
40    url = None
41    title = None
42    description = None
[6116]43
[6207]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.