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
        ]
示例#4
0
    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
示例#5
0
    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
        ]
示例#7
0
    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('&lt;%s&gt;' % 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
示例#8
0
    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('&lt;%s&gt;' % 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