Ejemplo n.º 1
0
    def render(self):

        ptool = getToolByName(self, 'plone_utils')

        resolver = IDossierResolver(self.context)

        # check preconditions
        errors = resolver.is_resolve_possible()
        if errors:
            for msg in errors:
                ptool.addPortalMessage(msg, type="error")

            return self.request.RESPONSE.redirect(
                self.context.absolute_url())

        # validate enddates
        invalid_dates = resolver.are_enddates_valid()
        if invalid_dates:
            for title in invalid_dates:
                ptool.addPortalMessage(
                    _("The dossier ${dossier} has a invalid end_date",
                      mapping=dict(dossier=title,)),
                    type="error")

            return self.request.RESPONSE.redirect(
                self.context.absolute_url())

        if resolver.is_archive_form_needed():
            self.request.RESPONSE.redirect('transition-archive')
        else:
            resolver.resolve()
            if self.context.is_subdossier():
                ptool.addPortalMessage(
                    _('The subdossier has been succesfully resolved'),
                    type='info')
            else:
                ptool.addPortalMessage(
                    _('The dossier has been succesfully resolved'),
                    type='info')

            self.request.RESPONSE.redirect(self.context.absolute_url())