108 |
108 |
109 @property |
109 @property |
110 def values(self): |
110 def values(self): |
111 intids = get_utility(IIntIds) |
111 intids = get_utility(IIntIds) |
112 catalog = get_utility(ICatalog) |
112 catalog = get_utility(ICatalog) |
113 params = Eq(catalog['parents'], intids.register(self.context)) & \ |
|
114 Any(catalog['content_type'], CONTENT_TYPES.keys()) |
|
115 query = self.request.params.get('query') |
113 query = self.request.params.get('query') |
116 if query: |
114 if query: |
117 sequence = get_utility(ISequentialIntIds) |
115 sequence = get_utility(ISequentialIntIds) |
118 query = query.lower() |
116 query = query.lower() |
119 if query.startswith('+'): |
117 if query.startswith('+'): |
120 params &= Eq(catalog['oid'], sequence.get_full_oid(query)) |
118 params = Eq(catalog['oid'], sequence.get_full_oid(query)) |
121 else: |
119 else: |
|
120 params = Eq(catalog['parents'], intids.register(self.context)) & \ |
|
121 Any(catalog['content_type'], CONTENT_TYPES.keys()) |
122 query_params = Eq(catalog['oid'], sequence.get_full_oid(query)) |
122 query_params = Eq(catalog['oid'], sequence.get_full_oid(query)) |
123 negotiator = get_utility(INegotiator) |
123 negotiator = get_utility(INegotiator) |
124 for lang in {self.request.registry.settings.get('pyramid.default_locale_name', 'en'), |
124 for lang in {self.request.registry.settings.get('pyramid.default_locale_name', 'en'), |
125 self.request.locale_name, |
125 self.request.locale_name, |
126 negotiator.server_language} | negotiator.offered_languages: |
126 negotiator.server_language} | negotiator.offered_languages: |
128 if index_name in catalog: |
128 if index_name in catalog: |
129 index = catalog[index_name] |
129 index = catalog[index_name] |
130 if index.check_query(query): |
130 if index.check_query(query): |
131 query_params |= Contains(index, ' and '.join((w+'*' for w in query.split()))) |
131 query_params |= Contains(index, ' and '.join((w+'*' for w in query.split()))) |
132 params &= query_params |
132 params &= query_params |
133 return unique(map(get_last_version, |
133 return unique(map(get_last_version, |
134 CatalogResultSet(CatalogQuery(catalog).query(params, |
134 CatalogResultSet(CatalogQuery(catalog).query(params, |
135 sort_index='modified_date', |
135 sort_index='modified_date', |
136 reverse=True)))) |
136 reverse=True)))) |
|
137 else: |
|
138 return () |
137 |
139 |
138 |
140 |
139 # |
141 # |
140 # Advanced search adapters |
142 # Advanced search adapters |
141 # |
143 # |