"""Workflow for students. """ import grok from datetime import datetime from zope.component import getUtility from hurry.workflow.workflow import Transition, WorkflowState, NullCondition from hurry.workflow.interfaces import IWorkflowState, IWorkflowTransitionEvent from waeup.kofa.interfaces import ( IObjectHistory, IKofaWorkflowInfo, IKofaUtils, CREATED, ADMITTED, CLEARANCE, REQUESTED, CLEARED, PAID, RETURNING, REGISTERED, VALIDATED, GRADUATED, TRANSCRIPT) from waeup.kofa.interfaces import MessageFactory as _ from waeup.kofa.workflow import KofaWorkflow, KofaWorkflowInfo from waeup.kofa.students.interfaces import IStudent, IStudentsUtils from waeup.kofa.students.workflow import RegistrationWorkflowInfo REGISTRATION_TRANSITIONS = ( Transition( transition_id = 'create', title = _('Create customer'), source = None, condition = NullCondition, msg = _('Record created'), destination = CREATED), Transition( transition_id = 'admit', title = _('Approve subscription'), msg = _('Subscription approved'), source = CREATED, destination = CLEARED), Transition( transition_id = 'reset1', title = _('Reset customer to initial state'), msg = _('Reset to initial state'), source = CLEARED, destination = CREATED), Transition( transition_id = 'pay_first_school_fee', title = _('Pay first meter fee'), msg = _('First meter fee payment made'), source = CLEARED, destination = PAID), Transition( transition_id = 'approve_first_school_fee', title = _('Approve first meter payment'), msg = _('First meter fee payment approved'), source = CLEARED, destination = PAID), # The pg fee payment has proper handlers which suit # customer payments. Transition( transition_id = 'pay_pg_fee', title = _('Pay meter fee'), msg = _('Meter fee paid'), source = PAID, destination = PAID), Transition( transition_id = 'approve_pg_fee', title = _('Approve meter fee payment'), msg = _('Meter fee payment approved'), source = PAID, destination = PAID), Transition( transition_id = 'reset2', title = _("Reset customer to state 'subscription approved'"), msg = _("Reset to state 'subscription approved'"), source = PAID, destination = CLEARED), ) registration_workflow = KofaWorkflow(REGISTRATION_TRANSITIONS) class CustomRegistrationWorkflowInfo(RegistrationWorkflowInfo): """Adapter to adapt Student objects to workflow info objects. """ def __init__(self, context): self.context = context self.wf = registration_workflow