def __call__(self): field_list = self.request.form.get('items.fl', '').strip() if field_list: field_list = field_list.split(',') else: field_list = ['@type', 'title', 'description', 'review_state'] obj = IContentListingObject(self.context) summary = json_compatible({ '@id': obj.getURL(), }) for field in field_list: accessor = FIELD_ACCESSORS.get(field) if accessor is None: continue if isinstance(accessor, str): value = getattr(obj, accessor, None) if callable(value): value = value() else: value = accessor(obj) summary[field] = json_compatible(value) if ('title' in summary and ITranslatedTitleSupport.providedBy(self.context)): # Update title to contain translated title in negotiated language attr = 'title_{}'.format(get_preferred_language_code()) summary['title'] = getattr(self.context, attr) return summary
def translated_title(self, language=None): if not language: language = get_preferred_language_code() title = getattr(self, 'title_{}'.format(language), None) if not title: title = getattr(self, 'title_{}'.format(self.FALLBACK_LANGUAGE), None) return title
def migrate_data(self): """Temporarily insert placeholders as repository_folder_title, the real value will be inserted by the 4633 upgradestep. """ default_language = get_preferred_language_code() proposal_table = table("proposals", column("id"), column("repository_folder_title"), column("language")) self.execute(proposal_table.update().values(repository_folder_title=u"-")) self.execute(proposal_table.update().values(language=default_language))
def Title(self): if supports_translated_title(self.portal_type): code = get_preferred_language_code() title = getattr(self, 'title_%s' % code, None) if isinstance(title, unicode): return title.encode('utf-8') return title return super(TranslatedTitleBrain, self).Title
def __call__(self): # Get the default summary first, then modify it as needed summary = super(GeverJSONSummarySerializer, self).__call__() # Include portal_type summary['@type'] = self.context.portal_type if ITranslatedTitleSupport.providedBy(self.context): # Update title to contain translated title in negotiated language attr = 'title_{}'.format(get_preferred_language_code()) summary['title'] = getattr(self.context, attr) return summary
def migrate_data(self): """Temporarily insert placeholders as repository_folder_title, the real value will be inserted by the 4633 upgradestep. """ default_language = get_preferred_language_code() proposal_table = table("proposals", column("id"), column("repository_folder_title"), column("language")) self.execute( proposal_table.update().values(repository_folder_title=u'-')) self.execute(proposal_table.update().values(language=default_language))
def get_caching_url(self): url = self.context.absolute_url() + '/navigation.json' params = [] cache_key = self._navigation_cache_key() if cache_key: params.append('cache_key={0}'.format(cache_key)) if self.request.getHeader('Cache-Control') == 'no-cache': params.append('nocache=true') params.append('language={}'.format(get_preferred_language_code())) if params: url = '{0}?{1}'.format(url, '&'.join(params)) return url
def translated_title(obj): if ITranslatedTitleSupport.providedBy(obj): attr = 'title_{}'.format(get_preferred_language_code()) return getattr(obj, attr, obj.Title()) else: return obj.Title()
def get_repo_folder_title(self, proposal): main_dossier = aq_parent(aq_inner(proposal)).get_main_dossier() repo_folder = aq_parent(aq_inner(main_dossier)) return repo_folder.Title(language=get_preferred_language_code(), prefix_with_reference_number=False)