def getTypologies(self, theme): p_catalog = getToolByName(self.context, 'portal_catalog') typologies = {} if theme: value = theme.value brains = p_catalog(ThemeNews=value) for brain in brains: if not brain.tipo or brain.portal_type == 'Image': if brain.portal_type == 'Image': if typologies.get(brain.tipo): typologies[brain.tipo].append(brain.getObject()) else: typologies[brain.tipo] = [brain.getObject()] continue if typologies.get(brain.tipo): typologies[brain.tipo].append(brain.getObject()) else: typologies[brain.tipo] = [brain.getObject()] od = OrderedDict(sorted(typologies.items(), key=lambda t: t[0])) typologies = od.items() typologies = OrderedDict(typologies) for typology in typologies.keys(): data = TagContent().store.find(TagContent, TagContent.type==u'typology', TagContent.value==typology.decode('utf-8'), TagContent.deleted==False) if data.count(): data = data[0] if data.sort_on == 'sortable_title': typologies[typology] = sorted(typologies.get(typology), key=lambda x: x.title.lower()) elif data.sort_on == 'created': typologies[typology] = sorted(typologies.get(typology), key=lambda x: x.created()) if data.order == 'desc': typologies.get(typology).reverse() else: continue return typologies
def getThemes(self): rs_themes = TagContent.getAllTagsByType('themesNews') themes = [] if rs_themes and rs_themes.count(): if self.context.getQtdThemesGlobal() and self.context.getQtdThemesGlobal() > 0: rs_themes = rs_themes[:self.context.getQtdThemesGlobal()] for theme in rs_themes: themes.append(theme) return themes
def update(self): if self.request.form.get('theme'): self.theme = TagContent.getTagById(self.request.form.get('theme'))