Changeset 6447 for main/waeup.sirp/trunk/src/waeup/sirp/university
- Timestamp:
- 21 Jun 2011, 11:09:33 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.sirp/trunk/src/waeup/sirp/university/catalog.py
r6220 r6447 2 2 """ 3 3 import grok 4 from hurry.query import Eq 4 from hurry.query import Eq, Text 5 from hurry.query.query import Query 5 6 from zope.catalog.interfaces import ICatalog 6 7 from zope.component import getUtility 7 8 from zope.component.interfaces import ComponentLookupError 9 from zope.index.text.parsetree import ParseError 8 10 from zope.intid import IIntIds 9 from waeup.sirp.catalog import QueryResultItem11 #from waeup.sirp.catalog import QueryResultItem 10 12 from waeup.sirp.index import UniqueField 11 from waeup.sirp.interfaces import IUniversity 13 from waeup.sirp.interfaces import IUniversity, IQueryResultItem 12 14 from waeup.sirp.university.interfaces import ( 13 15 ICourse, ICertificateCourse, IDepartment, 14 16 ICertificate, 15 17 ) 16 17 18 18 19 class CourseIndexes(grok.Indexes): … … 92 93 return 93 94 94 class CourseQueryResultItem(QueryResultItem): 95 class CoursesQueryResultItem(object): 96 grok.implements(IQueryResultItem) 97 95 98 def __init__(self, context, view): 96 99 self.context = context 97 100 self.url = view.url(context) 98 self.title = "COURSE: " + context.title 99 self.description = 'code: %s' % context.code 101 self.title = context.title 102 self.code = context.code 103 self.type = 'Course' 104 105 class CertificateCoursesQueryResultItem(object): 106 grok.implements(IQueryResultItem) 107 108 def __init__(self, context, view): 109 self.context = context 110 self.url = view.url(context) 111 self.title = context.course.title 112 self.code = context.getCourseCode 113 self.type = 'Course Referrer' 100 114 101 115 def search(query=None, view=None): 102 116 if not query: 103 return [] 104 cat = getUtility(ICatalog, name='courses_catalog') 105 results = list(cat.searchResults(code=(query, query))) 117 view.flash('Empty search string.') 118 return 106 119 107 120 hitlist = [] 108 results = Query().searchResults( 109 Eq(('courses_catalog', 'code'), query)) 110 for result in results: 111 hitlist.append(CourseQueryResultItem(result, view=view)) 121 try: 122 results = Query().searchResults( 123 Eq(('courses_catalog', 'code'), query)) 124 for result in results: 125 hitlist.append(CoursesQueryResultItem(result, view=view)) 126 results = Query().searchResults( 127 Text(('courses_catalog', 'title'), query)) 128 for result in results: 129 hitlist.append(CoursesQueryResultItem(result, view=view)) 112 130 113 results = Query().searchResults( 114 Text(('courses_catalog', 'title'), query)) 115 116 for result in results: 117 hitlist.append(CourseQueryResultItem(result, view=view)) 118 131 results = Query().searchResults( 132 Eq(('certcourses_catalog', 'course_code'), query)) 133 for result in results: 134 hitlist.append(CertificateCoursesQueryResultItem(result, view=view)) 135 except ParseError: 136 view.flash('Search string not allowed.') 137 return 119 138 return hitlist
Note: See TracChangeset for help on using the changeset viewer.