コード例 #1
0
def _items_cachekey(fun, self):
    # try to get modified time of taxonomy utility
    try:
        mtime = self.terms.terms.data._p_mtime
        key = '{0}-{1}'.format(self.field.__name__, mtime)
        return key
    except AttributeError:
        # XXX: this happens with newly created taxonomies
        # from profiles/xxx/taxonomies ... why are they not an utility?
        # do not cache this.
        raise ram.DontCache()
コード例 #2
0
def _render_cachekey(fun, self):
    if self.anonymous:
        raise ram.DontCache()

    key = StringIO()
    print >> key, self.request.URL.decode('ascii', 'replace')
    print >> key, get_language(aq_inner(self.context), self.request)
    if self.is_site_home:
        print >> key, self.portal.modified()
    else:
        print >> key, self.context.modified()
    return key.getvalue()
コード例 #3
0
def _render_cachekey(fun, self):
    context = aq_inner(self.context)
    if not self.updated:
        self.update()

    if self.calendar.getUseSession():
        raise ram.DontCache()
    else:
        portal_state = getMultiAdapter((context, self.request),
                                       name=u'plone_portal_state')
        key = StringIO()
        print >> key, [k.encode('utf-8') for k in self.data.kw]
        print >> key, self.data.review_state
        print >> key, self.data.name
        print >> key, portal_state.navigation_root_url()
        print >> key, cache.get_language(context, self.request)
        print >> key, self.calendar.getFirstWeekDay()

        year, month = self.getYearAndMonthToDisplay()
        print >> key, year
        print >> key, month
        navigation_root_path = self.root()
        start = DateTime('%s/%s/1' % (year, month))
        end = DateTime('%s/%s/1 23:59:59' % self.getNextMonth(year, month)) - 1

        catalog = getToolByName(context, 'portal_catalog')

        self.options = {}
        if navigation_root_path:
            root_content = self.context.restrictedTraverse(
                navigation_root_path)
            if IATTopic.providedBy(root_content):
                self.options = root_content.buildQuery()
            elif ICollection.providedBy(root_content):
                self.options = parseFormquery(
                    root_content,
                    root_content.getField('query').getRaw(root_content))
            print >> key, root_content.modified()

        self.options['start'] = {'query': end, 'range': 'max'}
        self.options['end'] = {'query': start, 'range': 'min'}

        _define_search_options(self, self.options)
        brains = catalog(**self.options)

        for brain in brains:
            add_cachekey(key, brain)

        return key.getvalue()
コード例 #4
0
def _render_cachekey(fun, self):
    if self.anonymous:
        raise ram.DontCache()

    context = aq_inner(self.context)

    def add(object):
        brain = object[1]
        path = brain.getPath().decode('ascii', 'replace')
        return "%s\n%s\n%s\n\n" % (path, object[0], brain.modified)

    fingerprint = "".join(map(add, self._data()))
    anonymous = getToolByName(context, 'portal_membership').isAnonymousUser()

    return "".join((getToolByName(aq_inner(self.context), 'portal_url')(),
                    get_language(aq_inner(self.context),
                                 self.request), str(anonymous),
                    self.manager.__name__, self.data.__name__, fingerprint))
コード例 #5
0
def _render_cachekey(fun, self):
    context = aq_inner(self.context)
    if not self.updated:
        self.update()

    if self.calendar.getUseSession():
        raise ram.DontCache()
    else:
        portal_state = getMultiAdapter(
            (context, self.request), name='plone_portal_state')
        key = StringIO()
        print >> key, portal_state.navigation_root_url()
        print >> key, cache.get_language(context, self.request)
        print >> key, self.calendar.getFirstWeekDay()

        year, month = self.getYearAndMonthToDisplay()
        print >> key, year
        print >> key, month

        navigation_root_path = portal_state.navigation_root_path()
        start = DateTime('%s/%s/1' % (year, month))
        end = DateTime('%s/%s/1 23:59:59' % self.getNextMonth(year, month)) - 1

        def add(brain):
            key.write(brain.getPath())
            key.write('\n')
            key.write(brain.modified)
            key.write('\n\n')

        catalog = getToolByName(context, 'portal_catalog')
        path = navigation_root_path
        brains = catalog(
            portal_type=self.calendar.getCalendarTypes(),
            review_state=self.calendar.getCalendarStates(),
            start={'query': end, 'range': 'max'},
            end={'query': start, 'range': 'min'},
            path=path)

        for brain in brains:
            add(brain)

        return key.getvalue()
コード例 #6
0
ファイル: activityportlet.py プロジェクト: collective/cyn.in
def _render_cachekey(fun, self):    
    if self.anonymous:
        raise ram.DontCache()
    
    context = aq_inner(self.context)
    
    def add(brain):    
        path = self.request.URL.decode('ascii','replace')
        return "%s\n%s\n\n" % (path,brain.has_key('lastchangedate') and brain['lastchangedate'])
    fingerprint = "".join(map(add, self._data()))

    anonymous = getToolByName(context, 'portal_membership').isAnonymousUser()

    return "".join((
        getToolByName(aq_inner(self.context), 'portal_url')(),
        get_language(aq_inner(self.context), self.request),
        str(anonymous),
        self.manager.__name__,
        self.data.__name__,
        fingerprint))
コード例 #7
0
def _render_cachekey(fun, self):
    if self.anonymous:
        raise ram.DontCache()

    context = aq_inner(self.context)

    def add(brain):
        path = brain.getPath().decode('ascii', 'replace')
        return "%s\n%s\n\n" % (path, brain.modified)

    objdata = self._data()
    objalldata = [objdata.extend(self._data(k)) for k in self.typesToShow]

    fingerprint = "".join(map(add, objdata)) + "\n" + "\n".join(
        [str(k) for k in self.data.resultscount.values()])

    anonymous = getToolByName(context, 'portal_membership').isAnonymousUser()

    return "".join((getToolByName(aq_inner(self.context), 'portal_url')(),
                    get_language(aq_inner(self.context),
                                 self.request), str(anonymous),
                    self.manager.__name__, self.data.__name__, fingerprint))
コード例 #8
0
def _render_cachekey(fun, self):    
    if self.anonymous:
        raise ram.DontCache()
    
    context = aq_inner(self.context)
    
    def add(object):
        name = object['id'].decode('ascii','replace')
        return "%s\n%s\n\n" % (name,object['count'])
    
    path = "/".join(self.context.getPhysicalPath()).decode('ascii', 'replace')
    if self.is_site_home:
        path = "/".join(self.portal.getPhysicalPath()).decode('ascii', 'replace')
    fingerprint = "".join(map(add,self._data())) + "\n" + path + "\n\n"
    
    anonymous = getToolByName(context, 'portal_membership').isAnonymousUser()

    return "".join((
        getToolByName(aq_inner(self.context), 'portal_url')(),
        get_language(aq_inner(self.context), self.request),
        str(anonymous),
        self.manager.__name__,
        self.data.__name__,
        fingerprint))
コード例 #9
0
def _render_cachekey(fun, self):
    raise ram.DontCache()
    if self.anonymous:
        raise ram.DontCache()
    return render_cachekey(fun, self)