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
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])