Beispiel #1
0
    def __call__(self):
        colorsDict = self.calendar.queryColors
        criterias = interfaces.IListBaseQueryCriteria(self.context)()
        css = ''
        if not colorsDict:
            return css

        for fieldid, selectedItems in [(a['i'], a.get('v'))
                                       for a in criterias]:
            if not colorsDict.has_key(fieldid):
                continue

            for i in range(len(selectedItems)):
                cValName = str(
                    component.queryUtility(IURLNormalizer).normalize(
                        safe_unicode(selectedItems[i])))

                color = None
                for k, v in colorsDict.get(fieldid, {}).items():
                    k = safe_unicode(k)
                    if k == cValName or str(
                            component.queryUtility(IURLNormalizer).normalize(
                                k)) == cValName:
                        color = v
                        break
                if color:
                    css += 'label.%scolorIndex-%s {\n' % (fieldid, str(i))
                    css += '    color: %s;\n' % (str(color))
                    css += '}\n\n'

        return css
Beispiel #2
0
    def __call__(self):
        calendar = interfaces.ISolgemaFullcalendarProperties(aq_inner(self.context),
                                                             None)
        li = deepcopy(interfaces.IListBaseQueryCriteria(self.context)())
        for criteria in li:
            if criteria['i'] == 'portal_type' and len(criteria['v']) == 1:
                li.remove(criteria)

        if hasattr(calendar, 'availableCriterias') \
           and getattr(calendar, 'availableCriterias', None) != None:
            li = [a for a in li if a['i'] in calendar.availableCriterias]

        return dict([(a['i'], a['v']) for a in li])
def availableCriterias(context):
    criterias = interfaces.IListBaseQueryCriteria(context)()
    li = []
    portal_atct = getToolByName(context, 'portal_atct')
    for criteria in criterias:
        field = criteria['i']
        if (criteria['o'] == 'ATPortalTypeCriterion'
                or criteria['i'] == 'portal_type') and len(criteria['v']) > 0:
            index = portal_atct.getIndex(
                field).friendlyName or portal_atct.getIndex(field).index
            li.append({'id': field, 'title': context.translate(index)})
        elif criteria['o'] in [
                'ATSelectionCriterion', 'ATListCriterion',
                'plone.app.querystring.operation.selection.is',
                'plone.app.querystring.operation.list.contains'
        ] and len(criteria['v']) > 0:
            index = portal_atct.getIndex(
                field).friendlyName or portal_atct.getIndex(field).index
            li.append({'id': field, 'title': context.translate(index)})

    return TitledVocabulary.fromTitles([(crit['id'], crit['title'])
                                        for crit in li])