def test_tabs_mapping(self): """ { 'all': {'title': u'All'}, 'documents': {'portal_types': ('Document',), 'title': 'Documents'}, 'events': {'portal_types': ('Event',), 'title': 'Events'}, 'file': {'portal_types': ('File',), 'title': 'File'}, 'links': {'portal_types': ('Link',), 'title': 'Links'}, 'news': {'portal_types': ('News Item',), 'title': 'News'}, } """ tabs_mapping = self.view.tabs_mapping self.assertEquals(len(tabs_mapping.keys()), 6) self.assertTrue('documents' in tabs_mapping) self.assertTrue('news' in tabs_mapping) self.assertTrue('links' in tabs_mapping) self.assertTrue('file' in tabs_mapping) self.assertTrue('events' in tabs_mapping) self.assertEquals(tabs_mapping['documents']['portal_types'], ('Document', )) self.assertEquals(tabs_mapping['news']['portal_types'], ('News Item', )) self.assertEquals(tabs_mapping['events']['portal_types'], ('Event', )) # change settings old_settings = api.portal.get_registry_record( 'tabs_mapping', interface=IRERSiteSearchSettings) new_settings = [] for record in old_settings: if record.tab_title in ['News', 'Events']: continue if record.tab_title == 'Documents': new_record = TabsValueField() new_record.tab_title = record.tab_title new_record.portal_types = ('Document', 'Event', 'News Item') new_settings.append(new_record) else: new_settings.append(record) api.portal.set_registry_record( 'tabs_mapping', tuple(new_settings), interface=IRERSiteSearchSettings, ) tabs_mapping = self.view.tabs_mapping self.assertTrue('documents' in tabs_mapping) self.assertFalse('news' in tabs_mapping) self.assertTrue('links' in tabs_mapping) self.assertTrue('file' in tabs_mapping) self.assertFalse('events' in tabs_mapping) self.assertEquals( tabs_mapping['documents']['portal_types'], ('Document', 'Event', 'News Item'), ) # go back to default api.portal.set_registry_record('tabs_mapping', old_settings, interface=IRERSiteSearchSettings)
def test_types_mapping(self): """ { 'Link': 'links', 'Document': 'documents', 'News Item': 'news', 'Event': 'events', 'File': 'file', } """ types_mapping = self.view.types_mapping self.assertEquals(len(types_mapping.keys()), 5) self.assertEquals(types_mapping['Link'], 'links') self.assertEquals(types_mapping['Document'], 'documents') self.assertEquals(types_mapping['News Item'], 'news') self.assertEquals(types_mapping['Event'], 'events') self.assertEquals(types_mapping['File'], 'file') # change settings old_settings = api.portal.get_registry_record( 'tabs_mapping', interface=IRERSiteSearchSettings) new_settings = [] for record in old_settings: if record.tab_title in ['News', 'Events']: continue if record.tab_title == 'Documents': new_record = TabsValueField() new_record.tab_title = record.tab_title new_record.portal_types = ('Document', 'Event', 'News Item') new_settings.append(new_record) else: new_settings.append(record) api.portal.set_registry_record( 'tabs_mapping', tuple(new_settings), interface=IRERSiteSearchSettings, ) types_mapping = self.view.types_mapping self.assertEquals(len(types_mapping.keys()), 5) self.assertEquals(types_mapping['Link'], 'links') self.assertEquals(types_mapping['Document'], 'documents') self.assertEquals(types_mapping['News Item'], 'documents') self.assertEquals(types_mapping['Event'], 'documents') self.assertEquals(types_mapping['File'], 'file') # go back to default api.portal.set_registry_record('tabs_mapping', old_settings, interface=IRERSiteSearchSettings)
def setRegistryTabs(context): """ """ types_tool = getToolByName(context, 'portal_types') portal_types = types_tool.listContentTypes() new_tabs = [] for tab in DEFAULT_TABS: tab_ptype = tab[0] tab_title = tab[1] if tab_ptype in portal_types: new_value = TabsValueField() new_value.tab_title = tab_title new_value.portal_types = (tab_ptype, ) new_tabs.append(new_value) return tuple(new_tabs)