def test_get_content_types_does_caching(self): self._setupContentTypes() from repoze.lemonade.tests.fixtureapp import content from repoze.lemonade.content import get_content_types from repoze.lemonade.interfaces import IContentTypeCache from zope.interface import implements from zope.component import getSiteManager class Fred: implements(content.IBar) fred = Fred() get_content_types(fred) sm = getSiteManager() cache = sm.getUtility(IContentTypeCache) self.failUnless(content.IBar in cache)
def test_get_content_types_nocontext(self): self._setupContentTypes() from repoze.lemonade.tests.fixtureapp import content from repoze.lemonade.content import get_content_types types = sorted(get_content_types()) self.assertEqual(len(types), 2) self.assertEqual(types, [content.IBar, content.IFoo])
def advancedsearch_view(context, request): page_title = 'Advanced Search' api = request.api api.page_title = page_title type_choices = [] for t in get_content_types(): if t.queryTaggedValue('search_option', False): # this content type should be on the list of types to search iid = interface_id(t) name = t.queryTaggedValue('name', iid) type_choices.append((name, iid)) type_choices.sort() this_year = datetime.datetime.now().year year_choices = [str(i) for i in range(2007, this_year+1)] topic_choices = get_topic_options(context) return dict( api=api, post_url=model_url(context, request, "searchresults.html"), topic_choices=topic_choices, type_choices=type_choices, year_choices=year_choices, )
def test_get_content_types_nocontext(self): self._setupContentTypes() from repoze.lemonade.tests.fixtureapp import content from repoze.lemonade.content import get_content_types types =sorted(get_content_types()) self.assertEqual(len(types), 2) self.assertEqual(types, [content.IBar, content.IFoo])
def test_functional_with_get_content_types(self): from repoze.lemonade.testing import registerContentFactory from repoze.lemonade.content import get_content_types from zope.interface import Interface class IFoo(Interface): pass class Foo: def __init__(self, arg): self.arg = arg registerContentFactory(Foo, IFoo) self.assertEqual(get_content_types(), [IFoo])
def test_get_content_types_context(self): self._setupContentTypes() from repoze.lemonade.tests.fixtureapp import content from repoze.lemonade.content import get_content_types from zope.interface import implements class Fred: implements(content.IBar) fred = Fred() types = get_content_types(fred) self.assertEqual(len(types), 1) self.assertEqual(types, [content.IBar])
def make_query(context, request): """Given a search request, return a catalog query and a list of terms. """ params = request.params query = {} terms = [] body = params.get("body") if body: query["texts"] = body query["sort_index"] = "texts" terms.append(body) creator = params.get("creator") if creator: userids = list(_iter_userids(context, request, creator)) query["creator"] = {"query": userids, "operator": "or"} terms.append(creator) types = params.getall("types") if types: type_dict = {} for t in get_content_types(): type_dict[interface_id(t)] = t ifaces = [type_dict[name] for name in types] query["interfaces"] = {"query": ifaces, "operator": "or"} terms.extend(iface.getTaggedValue("name") for iface in ifaces) else: query["interfaces"] = [IContent] tags = params.getall("tags") if tags: query["tags"] = {"query": tags, "operator": "or"} terms.extend(tags) year = params.get("year") if year: year = int(year) begin = coarse_datetime_repr(datetime.datetime(year, 1, 1)) end = coarse_datetime_repr(datetime.datetime(year, 12, 31, 12, 59, 59)) query["creation_date"] = (begin, end) terms.append(year) return query, terms
def advancedsearch_view(context, request): page_title = "Advanced Search" api = TemplateAPI(context, request, page_title) type_choices = [] for t in get_content_types(): if t.queryTaggedValue("search_option", False): # this content type should be on the list of types to search iid = interface_id(t) name = t.queryTaggedValue("name", iid) type_choices.append((name, iid)) type_choices.sort() this_year = datetime.datetime.now().year year_choices = [str(i) for i in range(2007, this_year + 1)] return render_template_to_response( "templates/advancedsearch.pt", api=api, post_url=model_url(context, request, "searchresults.html"), type_choices=type_choices, year_choices=year_choices, )
def test_factory_register(self): from repoze.lemonade.content import get_content_types assert(self._target_marker_interface in get_content_types())
def test_factory_register(self): from repoze.lemonade.content import get_content_types self.assert_(self._target_marker_interface in get_content_types())
def make_query(context, request, search_interfaces=[]): """Given a search request, return a catalog query and a list of terms. """ params = request.params query = {} terms = [] body = params.get('body') if body: query['texts'] = body query['sort_index'] = 'texts' terms.append(body) creator = params.get('creator') if creator: userids = list(_iter_userids(context, request, creator)) query['creator'] = { 'query': userids, 'operator': 'or', } terms.append(creator) types = params.getall('types') if types: type_dict = {} for t in get_content_types(): type_dict[interface_id(t)] = t ifaces = [type_dict[name] for name in types] query['interfaces'] = { 'query': ifaces, 'operator': 'or', } terms.extend(iface.getTaggedValue('name') for iface in ifaces) else: query['interfaces'] = { 'query': search_interfaces, 'operator': 'or' } tags = params.getall('tags') if tags: query['tags'] = { 'query': tags, 'operator': 'or', } terms.extend(tags) topics = params.getall('topics') if topics: query['topics'] = { 'query': topics, 'operator': 'or', } terms.extend(topics) year = params.get('year') if year: year = int(year) begin = coarse_datetime_repr(datetime.datetime(year, 1, 1)) end = coarse_datetime_repr(datetime.datetime(year, 12, 31, 12, 59, 59)) query['creation_date'] = (begin, end) terms.append(year) return query, terms