def get_datasource_settings(self): # Container for datasource settings datasource_settings = Munch({ 'datasources': [], 'datasource': Munch(), 'total': munchify({'fulltext_countries': [], 'details_countries': []}), }) # Read datasource settings from configuration datasource_settings.datasources = read_list(self.application_settings.get('ip_navigator', {}).get('datasources')) datasource_settings.protected_fields = read_list(self.application_settings.get('ip_navigator', {}).get('datasources_protected_fields')) for datasource in datasource_settings.datasources: settings_key = 'datasource:{name}'.format(name=datasource) datasource_info = self.application_settings.get(settings_key, {}) datasource_info['fulltext_enabled'] = asbool(datasource_info.get('fulltext_enabled', False)) datasource_info['fulltext_countries'] = read_list(datasource_info.get('fulltext_countries', '')) datasource_info['details_enabled'] = asbool(datasource_info.get('details_enabled', False)) datasource_info['details_countries'] = read_list(datasource_info.get('details_countries', '')) datasource_settings.datasource[datasource] = munchify(datasource_info) # Aggregate data for all countries datasource_settings.total.fulltext_countries += datasource_info['fulltext_countries'] return datasource_settings
def get_datasource_settings(self, vendor=None): # Container for datasource settings. datasource_settings = SmartBunch({ 'datasources': [], 'datasource': SmartBunch(), 'total': SmartBunch.bunchify({'fulltext_countries': [], 'details_countries': []}), }) # Read datasource settings from configuration. datasource_settings.datasources = read_list(self.application_settings.get('ip_navigator', {}).get('datasources')) datasource_settings.protected_fields = read_list(self.application_settings.get('ip_navigator', {}).get('datasources_protected_fields')) for datasource in datasource_settings.datasources: datasource_info = SmartBunch() if vendor is None: settings_key = 'datasource:{name}'.format(name=datasource) else: settings_key = 'datasource:{name}:{vendor}'.format(name=datasource, vendor=vendor) ds_settings = self.application_settings.get(settings_key, {}) datasource_info.setdefault('fulltext_enabled', asbool(ds_settings.get('fulltext_enabled', False))) datasource_info.setdefault('fulltext_countries', read_list(ds_settings.get('fulltext_countries', ''))) datasource_info.setdefault('details_enabled', asbool(ds_settings.get('details_enabled', False))) datasource_info.setdefault('details_countries', read_list(ds_settings.get('details_countries', ''))) for key, value in ds_settings.iteritems(): datasource_info.setdefault(key, value) datasource_settings.datasource[datasource] = SmartBunch.bunchify(datasource_info) # Aggregate data for all countries. datasource_settings.total.fulltext_countries += datasource_info['fulltext_countries'] return datasource_settings
def development_mode(): registry = get_current_registry() try: return asbool( registry.application_settings.ip_navigator.development_mode) except: return False
def prepare_search(request): #pprint(request.params) # CQL expression string expression = request.params.get('expression', '').strip() # Compute expression syntax syntax_cql = asbool( request.params.get('query_data[modifiers][syntax-cql]')) syntax_ikofax = asbool( request.params.get('query_data[modifiers][syntax-ikofax]')) syntax = 'cql' if syntax_ikofax or expression.startswith('ikofax:'): expression = expression.replace('ikofax:', '') syntax = 'ikofax' log.info(u'DEPATISnet query: {}, syntax: {}'.format(expression, syntax)) # Compute query options, like # - limit # - sorting # - whether to remove family members options = {} options.update({'syntax': syntax}) # propagate request parameters to search options parameters request_to_options(request, options) # Transcode query expression if syntax == 'cql': search = cql_prepare_query(expression) elif syntax == 'ikofax': search = ikofax_prepare_query(expression) else: request.errors.add('depatisnet-search', 'expression', u'Unknown syntax {}'.format(syntax)) # Propagate keywords to highlighting component keywords_to_response(request, search=search) return search, options
def theme_settings(self): """define default settings""" data_source_list = [ '<a href="https://ops.epo.org/" target="_blank" class="incognito pointer">EPO/OPS</a>', '<a href="https://depatisnet.dpma.de" target="_blank" class="incognito pointer">DPMA/DEPATISnet</a>', '<a href="https://www.uspto.gov/" target="_blank" class="incognito pointer">USPTO/PATIMG</a>', '<a href="http://cipo.gc.ca" target="_blank" class="incognito pointer">CIPO</a>', '<a href="https://www.ificlaims.com/" target="_blank" class="incognito pointer">IFI CLAIMS</a>', '<a href="https://depa.tech/" target="_blank" class="incognito pointer">MTC depa.tech</a>', #'<a href="https://patentfamily.com/" target="_blank" class="incognito pointer">SIP</a>', ] software_version_label = 'PatZilla release: ' + self.registry.application_settings.software_version software_version_link = '<a href="https://github.com/ip-tools/ip-navigator" target="_blank" ' \ 'class="incognito pointer">{label}</a>'.format(label=software_version_label) vendor = self.vendor # Format email addresses email_support = parseaddr(vendor.email.addressbook.support)[1] email_purchase = parseaddr(vendor.email.addressbook.purchase)[1] data = { 'ui.vendor.name': vendor.organization, 'ui.vendor.copyright': vendor.copyright_html, 'ui.productname': vendor.productname, 'ui.productname.rich': vendor.productname_html, 'ui.productname.html': vendor.productname_html, 'ui.productname.login': '******' in vendor and vendor.productname_login or vendor.productname_html, 'ui.email.support': email_support, 'ui.email.purchase': email_purchase, 'ui.version': software_version_link, 'ui.page.title': vendor.get('page_title', ''), # + ' ' + self.beta_badge, 'ui.page.subtitle': '', 'ui.page.footer': 'Data sources: ' + ', '.join(data_source_list), } # Transfer all properties having designated prefixes 1:1 prefixes = ['ui.', 'feature.'] for key, value in vendor.items(): for prefix in prefixes: if key.startswith(prefix): if key.endswith('.enabled'): value = asbool(value) data[key] = value # Backward compatibility if 'ui.stylesheet' not in data: data['ui.stylesheet'] = vendor.get('stylesheet_uri') return data
def get_application_settings(self): """ Read configuration file to get global settings """ # TODO: Optimize: Only read once, not on each request! settings = get_configuration(self.configfile, kind=Munch) # Add some global settings settings['software_version'] = __version__ # Amend settings: Make real Booleans from strings settings['smtp']['tls'] = asbool(settings['smtp'].get('tls', True)) return settings