Esempio n. 1
0
class FocusGroup(grok.GlobalUtility):
    grok.name('wcc.programmeplanner.focus_group')
    grok.implements(IVocabularyFactory)

    _terms = [{
        'value': 'inter-religious',
        'title': _('Inter-religious'),
    }, {
        'value': 'gender',
        'title': _('Gender'),
    }, {
        'value': 'indigenous-people',
        'title': _('Indigenous People'),
    }, {
        'value': 'youth',
        'title': _('Youth'),
    }, {
        'value': 'edan',
        'title': _('EDAN'),
    }]

    def __call__(self, context):
        terms = []
        for i in self._terms:
            terms.append(SimpleTerm(**i))
        return SimpleVocabulary(terms)
Esempio n. 2
0
class AddForm(base.AddForm):
    form_fields = form.Fields(IUpcomingProgrammes)
    form_fields['target_programmeplanner'].custom_widget = UberSelectionWidget

    label = _(u"Add Upcoming Programmes")
    description = _(u"")

    def create(self, data):
        return Assignment(**data)
Esempio n. 3
0
class IProgrammeHighlight(IPortletDataProvider):
    """
    Define your portlet schema here
    """
    target_programmeplanner = schema.Choice(
        title=_(u"Target programmeplanner"),
        description=_(
            u"Find the programmeplanner which provides the items to list"),
        required=True,
        source=SearchableTextSourceBinder(
            {'portal_type': ('wcc.programmeplanner.programmeplanner', )},
            default_query='path:'))
class IProgrammePlanner(form.Schema, IImageScaleTraversable):
    """
    
    """

    startDate = schema.Datetime(
        title=_(u"Start Date"),
        description=u'',
        required=True,
    )

    endDate = schema.Datetime(
        title=_(u"End Date"),
        description=u'',
        required=True,
    )
class EventType(grok.GlobalUtility):
    grok.name('wcc.programmeplanner.event_type')
    grok.implements(IVocabularyFactory)

    _terms = [{
        'value': 'madang-workshop',
        'title': _('Madang workshop'),
    },{
        'value': 'madang-performance',
        'title': _('Madang performance'),
    },{
        'value': 'bible-study',
        'title': _('Bible Study'),
    },{
        'value': 'ecumenical-conversation',
        'title': _('Ecumenical Conversation'),
    },{
        'value': 'prayer',
        'title': _('Prayer')
    },{
        'value': 'plenary',
        'title': _('Plenary')
    },{
        'value': 'other',
        'title': _('Other')
    }]

    def __call__(self, context):
        terms = []
        for i in self._terms:
            terms.append(SimpleTerm(**i))
        return SimpleVocabulary(terms)
Esempio n. 6
0
class IProgrammeFocusPortlet(IPortletDataProvider):
    """
    Define your portlet schema here
    """

    header = schema.TextLine(
        title=_(u'Heading'),
        default=u'Related activities in the assembly programme'
    )
    target_programmeplanner = schema.Choice(
        title=_(u"Target programmeplanner"),
        description=_(u"Find the programmeplanner which provides the items to list"),
        required=True,
        source=SearchableTextSourceBinder(
            {'portal_type': ('wcc.programmeplanner.programmeplanner',)},
            default_query='path:'))

    focus_group = schema.Choice(
        title=_(u"Focus group"),
        required=True,
        vocabulary="wcc.programmeplanner.focus_group"
    )
class IProgramme(form.Schema, IImageScaleTraversable,
                 IFeatureImageViewletDisabled):
    """
    
    """

    languageindependent('code')
    code = schema.TextLine(title=_(u'Code'), required=False)

    languageindependent('date')
    date = schema.Date(title=_(u'Date'))

    languageindependent('startTime')
    startTime = schema.Choice(
        title=_(u'Start Time'),
        vocabulary='wcc.programmeplanner.programme_times')

    languageindependent('endTime')
    endTime = schema.Choice(title=_(u'End Time'),
                            vocabulary='wcc.programmeplanner.programme_times')

    languageindependent('event_type')
    event_type = schema.Choice(title=_(u'Event Type'),
                               vocabulary='wcc.programmeplanner.event_type')

    languageindependent('focus_group')
    focus_group = schema.List(
        title=_(u'Focus Group'),
        value_type=schema.Choice(
            vocabulary='wcc.programmeplanner.focus_group'))

    dexteritytextindexer.searchable('text')
    form.widget(text="plone.app.z3cform.wysiwyg.WysiwygFieldWidget")
    text = schema.Text(
        title=_(u"Body Text"),
        description=u'',
        required=False,
    )
 def title(self):
     return _('Programme Focus : %s' % self.focus_group)
Esempio n. 9
0
class EditForm(base.EditForm):
    form_fields = form.Fields(IUpcomingProgrammes)
    form_fields['target_programmeplanner'].custom_widget = UberSelectionWidget

    label = _(u"Edit Upcoming Programmes")
    description = _(u"")
class UploadForm(form.SchemaForm):

    name = _("Import Programmes from CSV")
    schema = IUploadFormSchema
    ignoreContext = True
    grok.layer(IProductSpecific)
    grok.context(IProgrammePlanner)
    grok.name('import_programmes')
    grok.require('cmf.AddPortalContent')

    @z3c.form.button.buttonAndHandler(_("Import"), name='import')
    def import_content(self, action):
        formdata, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return

        f = formdata['import_file'].data.decode('utf-8')
        for l in unicode_csv_reader(StringIO(f)):
            if l[0].lower().strip() == 'title':
                continue
            if len(l) > 8:
                code = l[8]
            else:
                code = ''
            self.create(title=l[0].strip(),
                        description=l[1].strip(),
                        text=l[2].strip(),
                        startTime=l[3].strip(),
                        endTime=l[4].strip(),
                        date=parse_date(l[5]).date(),
                        event_type=l[6],
                        focus_group=l[7],
                        code=code)

    def create(self, **params):
        dest = self.context
        match = re.match(r'.*\((.*?)\)$',
                         params['title'].strip().replace('\n', ' '))
        if match:
            code = match.groups()[0].upper().strip()
        else:
            if params['code'].strip().upper():
                code = params['code'].strip().upper()
            else:
                code = None

        item = createContentInContainer(dest,
                                        'wcc.programmeplanner.programme',
                                        title=params['title'])

        item.code = code
        item.setTitle(params['title'])
        item.setDescription(params['description'])
        item.text = params['text'].replace('\n', '<br/>')
        item.startTime = params['startTime']
        item.endTime = params['endTime']
        item.date = params['date']
        item.event_type = self.parse_event_type(params['event_type'])
        item.focus_group = self.parse_focus_group(params['focus_group'])
        item.reindexObject()

    def parse_event_type(self, event_type_title):
        mapping = {
            'ecumenical conversation': 'ecumenical-conversation',
            'madang workshop': 'madang-workshop',
            'madang performance': 'madang-performance',
            'bible study': 'bible-study',
            'prayer': 'prayer',
            'plenary': 'plenary',
            'other': 'other'
        }

        if not event_type_title.lower().strip():
            return None

        val = mapping[event_type_title.lower().strip()]
        return val

    def parse_focus_group(self, focus_groups):
        mapping = {
            'inter-religious': 'inter-religious',
            'gender': 'gender',
            'indigenous people': 'indigenous-people',
            'indigenous peoples': 'indigenous-people',
            'edan': 'edan',
            'youth': 'youth'
        }
        items = [i.strip() for i in focus_groups.split(',')]

        result = []
        for i in items:
            if not i.lower().strip():
                continue
            val = mapping[i.lower().strip()]
            result.append(val)
        return result
class IUploadFormSchema(form.Schema):

    import_file = NamedFile(title=_('Upload CSV'))
Esempio n. 12
0
 def title(self):
     return _('Programme Highlight')
Esempio n. 13
0
class EditForm(base.EditForm):
    form_fields = form.Fields(IProgrammeHighlight)
    form_fields['target_programmeplanner'].custom_widget = UberSelectionWidget

    label = _(u"Edit Programme Highlight")
    description = _(u"")
from collective.grok import gs
from wcc.programmeplanner import MessageFactory as _

@gs.importstep(
    name=u'wcc.programmeplanner', 
    title=_('wcc.programmeplanner import handler'),
    description=_(''))
def setupVarious(context):
    if context.readDataFile('wcc.programmeplanner.marker.txt') is None:
        return
    portal = context.getSite()
    portal.portal_catalog.reindexIndex('event_type', portal.REQUEST)
    portal.portal_catalog.reindexIndex('focus_group', portal.REQUEST)
    # do anything here
Esempio n. 15
0
 def title(self):
     return _('Programme Focus : %s' % self.focus_group)