## $Id: workflow.py 10801 2013-11-28 13:44:18Z henrik $ ## ## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## """Customized workflow for applicants. """ import grok from hurry.workflow.workflow import Transition, WorkflowState, NullCondition from hurry.workflow.interfaces import IWorkflowState, IWorkflowTransitionEvent from waeup.kofa.applicants.interfaces import IApplicantBaseData from waeup.kofa.interfaces import IObjectHistory, IKofaWorkflowInfo, IKofaUtils from waeup.kofa.interfaces import MessageFactory as _ from waeup.kofa.workflow import KofaWorkflow, KofaWorkflowInfo from waeup.kofa.applicants.workflow import ( ApplicationWorkflowInfo, INITIALIZED, STARTED, SUBMITTED, ADMITTED, NOT_ADMITTED, CREATED) APPLICATION_TRANSITIONS = ( Transition( transition_id = 'init', title = _('Initialize subscription'), source = None, condition = NullCondition, msg = _('Subscription initialized'), destination = INITIALIZED), Transition( transition_id = 'start', title = _('Start subscription'), msg = _('Subscription started'), source = INITIALIZED, destination = STARTED), Transition( transition_id = 'submit', title = _('Submit subscription'), msg = _('Subscription submitted'), source = STARTED, destination = SUBMITTED), Transition( transition_id = 'admit', title = _('Approve subscription'), msg = _('Subscription approved'), source = SUBMITTED, destination = ADMITTED), Transition( transition_id = 'refuse1', title = _('Refuse subscription'), msg = _('Subscription refused'), source = SUBMITTED, destination = NOT_ADMITTED), Transition( transition_id = 'refuse2', title = _('Refuse subscription'), msg = _('Subscription refused'), source = ADMITTED, destination = NOT_ADMITTED), Transition( transition_id = 'create', title = _('Create student record'), msg = _('Customer record created'), source = ADMITTED, destination = CREATED), Transition( transition_id = 'reset1', title = _('Reset subscription to started'), msg = _('Subscription reset'), source = SUBMITTED, destination = STARTED), Transition( transition_id = 'reset2', title = _('Reset subscription to started'), msg = _('Subscription reset'), source = ADMITTED, destination = STARTED), Transition( transition_id = 'reset3', title = _('Reset subscription to started'), msg = _('Subscription reset'), source = NOT_ADMITTED, destination = STARTED), Transition( transition_id = 'reset4', title = _('Reset subscription to started'), msg = _('Subscription reset'), source = CREATED, destination = STARTED), Transition( transition_id = 'reset7', title = _('Reset subscription to admitted'), msg = _('Subscription reset to admitted'), source = CREATED, destination = ADMITTED), ) application_workflow = KofaWorkflow(APPLICATION_TRANSITIONS) class CustomApplicationWorkflowInfo(ApplicationWorkflowInfo): """Adapter to adapt Applicant objects to workflow info objects. """ def __init__(self, context): self.context = context self.wf = application_workflow