def __call__(self, brain): obj = brain.getObject() result = [] members = (obj.mission_members or []) if members: result.append( api.user.get(username=members[0]).getProperty('fullname')) country = resolve_value(self.context, obj.country, 'ploneun.vocabulary.country') result.append(country) return {'footnote': ', '.join(result)}
def __call__(self, brain): obj = brain.getObject() result = [] members = (obj.mission_members or []) if members: result.append(api.user.get(username=members[0]).getProperty('fullname')) country = resolve_value(self.context, obj.country, 'ploneun.vocabulary.country') result.append(country) return { 'footnote': ', '.join(result) }
def item_row(self, item): item_obj = item.getObject() location = [] if item_obj.mission_city: location.append(item_obj.mission_city) if item_obj.country: country = resolve_value(self.context, item_obj.country, 'ploneun.vocabulary.country') location.append(country) return [ '%s - %s' % (item.start.strftime('%d %b'), item.end.strftime('%d %b')), '<a href="%s">%s</a>' % (item.getURL(), item.Title), ', '.join(location), item_obj.contactName ]
def countries(self): data = {} now = datetime.now() month = int(self.request.get('month', now.month)) year = int(self.request.get('year', now.year)) for item in self.items(): obj = item.getObject() country = obj.country data.setdefault(country, {}) days = self._extract_days(item.start, item.end, year, month) days = [(day, obj)for day in days] members = obj.mission_members or [] for member in members: data[country].setdefault(member, {}) data[country][member].setdefault('days', []) data[country][member]['days'] += days data[country][member]['days'] = list( set(data[country][member]['days']) ) result = [] for country, people in sorted(data.items(), key=lambda x:x[0]): if not country.strip(): continue r = [] for person, info in sorted(people.items(), key=lambda x:x[0]): fullname = api.user.get(username=person).getProperty('fullname') o = {'name': fullname} o.update(info) r.append(o) result.append({ 'name': resolve_value( self.context, country, 'ploneun.vocabulary.country' ), 'people': r }) return result
def countries(self): data = {} now = datetime.now() month = int(self.request.get('month', now.month)) year = int(self.request.get('year', now.year)) for item in self.items(): obj = item.getObject() country = obj.country data.setdefault(country, {}) days = self._extract_days(item.start, item.end, year, month) days = [(day, obj) for day in days] members = obj.mission_members or [] for member in members: data[country].setdefault(member, {}) data[country][member].setdefault('days', []) data[country][member]['days'] += days data[country][member]['days'] = list( set(data[country][member]['days'])) result = [] for country, people in sorted(data.items(), key=lambda x: x[0]): if not country.strip(): continue r = [] for person, info in sorted(people.items(), key=lambda x: x[0]): fullname = api.user.get( username=person).getProperty('fullname') o = {'name': fullname} o.update(info) r.append(o) result.append({ 'name': resolve_value(self.context, country, 'ploneun.vocabulary.country'), 'people': r }) return result
def item_row(self, item): item_obj = item.getObject() location = [] if item_obj.mission_city: location.append(item_obj.mission_city) if item_obj.country: country = resolve_value( self.context, item_obj.country, 'ploneun.vocabulary.country' ) location.append(country) return [ '%s - %s' % (item.start.strftime('%d %b'), item.end.strftime('%d %b')), '<a href="%s">%s</a>' % (item.getURL(), item.Title), ', '.join(location), item_obj.contactName ]
def detail_fields(self): fields = [] members = [] mtool = self.context.portal_membership for member in self.context.mission_members: m = mtool.getMemberById(member) members.append(m.getProperty('fullname')) fields.append({ 'id': 'members', 'title': 'Mission Members', 'render': (''.join(['<div>%s</div>' % i for i in (members)])) if members else '' }) toLocalizedTime = self.context.restrictedTraverse( '@@plone').toLocalizedTime fields.append({ 'id': 'dates', 'title': 'When', 'render': '%s - %s' % (toLocalizedTime( self.context.startDate), toLocalizedTime(self.context.endDate)) }) location = [] if self.context.mission_city: location.append(self.context.mission_city) if self.context.country: country = resolve_value(self.context, self.context.country, 'ploneun.vocabulary.country') location.append(country) fields.append({ 'id': 'location', 'title': 'Location', 'render': ', '.join(location) }) regions = getattr(self.context, 'ilo_regions', []) if regions: fields.append({ 'id': 'regions', 'title': 'Regions', 'render': ''.join(['<div>%s</div>' % i for i in regions]) }) themes = getattr(self.context, 'ilo_themes', []) if themes: fields.append({ 'id': 'themes', 'title': 'Themes', 'render': ''.join(['<div>%s</div>' % i for i in themes]) }) contact = [self.context.contactName or ''] if self.context.contactEmail: if self.context.contactName: contact = ['"%s"' % self.context.contactName] contact.append('<%s>' % self.context.contactEmail) if self.context.contactPhone: contact.append('(%s)' % self.context.contactPhone) if (''.join(contact)).strip(): fields.append({ 'id': 'contact', 'title': 'Contact', 'render': ' '.join(contact) }) return fields
def detail_fields(self): fields = [] members = [] mtool = self.context.portal_membership for member in self.context.mission_members: m = mtool.getMemberById(member) members.append(m.getProperty('fullname')) fields.append({ 'id': 'members', 'title': 'Mission Members', 'render': (''.join(['<div>%s</div>' % i for i in ( members)])) if members else '' }) toLocalizedTime = self.context.restrictedTraverse('@@plone').toLocalizedTime fields.append({ 'id': 'dates', 'title': 'When', 'render': '%s - %s' % (toLocalizedTime(self.context.startDate), toLocalizedTime(self.context.endDate)) }) location = [] if self.context.mission_city: location.append(self.context.mission_city) if self.context.country: country = resolve_value(self.context, self.context.country, 'ploneun.vocabulary.country' ) location.append(country) fields.append({ 'id': 'location', 'title': 'Location', 'render': ', '.join(location) }) regions = getattr(self.context, 'ilo_regions', []) if regions: fields.append({ 'id': 'regions', 'title': 'Regions', 'render': ''.join([ '<div>%s</div>' % i for i in regions ]) }) themes = getattr(self.context, 'ilo_themes', []) if themes: fields.append({ 'id': 'themes', 'title': 'Themes', 'render': ''.join([ '<div>%s</div>' % i for i in themes ]) }) contact = [self.context.contactName or ''] if self.context.contactEmail: if self.context.contactName: contact = ['"%s"' % self.context.contactName] contact.append('<%s>' % self.context.contactEmail) if self.context.contactPhone: contact.append('(%s)' % self.context.contactPhone) if (''.join(contact)).strip(): fields.append({ 'id': 'contact', 'title': 'Contact', 'render': ' '.join(contact) }) return fields