def render(self):
     claim = self.request.form.get('claim', None)
     if not claim:
         msg = _(u'No claim id specified.')
         api.portal.show_message(message=msg, request=self.request, type='error')
     else:
         results = self.context.listFolderContents({'portal_type': 'Claim'})
         results = dict((i.id, i) for i in results)
         if claim in results:
             self.request.response.redirect(results[claim].absolute_url())
             return
         else:
             msg = _(u'Claim id not found.')
             api.portal.show_message(message=msg, request=self.request, type='error')
     self.request.response.redirect(self.context.absolute_url())
    def render(self):
        transition = self.request.form.get('transition', None)
        text = self.request.form.get('text', None)
        if transition is None or not text:
            msg = _(u'There were some errors. Required input is missing.')
            api.portal.show_message(message=msg, request=self.request, type='error')
        else:
            review_state = api.content.get_state(self.context)
            # we use the current state as a marker to indicate
            # no review state change
            if transition != review_state:
                # we need to make the transition first
                api.content.transition(self.context, transition)
                review_state = api.content.get_state(self.context)
            responses = IResponseContainer(self.context)
            responses.add(Response(review_state, text))

            # notify the claim has a new response
            notify(ObjectModifiedEvent(self.context))
            msg = _(u'Item created.')
            api.portal.show_message(message=msg, request=self.request)

        self.request.response.redirect(self.context.absolute_url())
Example #3
0
class IOmbudsOffice(model.Schema):
    """Folder to store claims to the Ombudsman."""

    title = schema.TextLine(
        title=_(u'Ombuds Office'),
        description=_(u''),
        required=True,
    )

    description = schema.Text(
        title=_(u'Description'),
        description=_(u''),
        required=False,
    )

    form.widget(claim_types=DataGridFieldFactory)
    claim_types = schema.List(
        title=_(u'Claim Types'),
        description=_(u'Enter claim types.'),
        required=True,
        value_type=DictRow(title=u'claim_types_row', schema=IClaimTypeItem),
    )

    form.widget(areas=DataGridFieldFactory)
    areas = schema.List(
        title=_(u'Areas'),
        description=_(u'Enter areas, name and email of responsible persons.'),
        required=True,
        value_type=DictRow(title=u'areas_row', schema=IAreaItem),
    )

    managers = schema.List(
        title=_(u'Managers'),
        description=_(u'Enter areas, name and email of responsible persons.'),
        required=False,
        value_type=schema.Choice(vocabulary=u'plone.app.vocabularies.Users'),
    )

    form.widget('email_template', WysiwygFieldWidget)
    email_template = schema.Text(
        title=_(u'Template for fist email after claim created.'),
        description=_(u'Use vars {title}, {protocol}, {url}, {name}, {email}, \
{address}, {city}, {state}, {postalcode}, {status} to customize your template.'
                      ),
        required=True,
    )

    form.widget('email_template_states', WysiwygFieldWidget)
    email_template_states = schema.Text(
        title=_(u'Template for further email after alter state of claim.'),
        description=_(u'Use vars {title}, {protocol}, {url}, {name}, {email}, \
{address}, {city}, {state}, {postalcode}, {status} to customize your template.'
                      ),
        required=True,
    )

    display_claims = schema.Bool(
        title=_(u'Display claims for anonymous?'),
        description=_(u''),
        required=True,
    )