コード例 #1
0
    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
コード例 #2
0
ファイル: summary.py プロジェクト: lukasgraf/opengever.core
    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
コード例 #3
0
    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
コード例 #4
0
ファイル: to4632.py プロジェクト: 4teamwork/opengever.core
    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))
コード例 #5
0
ファイル: brain.py プロジェクト: robertmuehsig/opengever.core
        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
コード例 #6
0
ファイル: brain.py プロジェクト: 4teamwork/opengever.core
        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
コード例 #7
0
    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
コード例 #8
0
    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
コード例 #9
0
    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))
コード例 #10
0
    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
コード例 #11
0
    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
コード例 #12
0
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()
コード例 #13
0
ファイル: to4633.py プロジェクト: 4teamwork/opengever.core
 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)
コード例 #14
0
 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)
コード例 #15
0
ファイル: listing.py プロジェクト: 4teamwork/opengever.core
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()