def do(action, state_change):
    '''What must I do when a transition is triggered on a meeting ?'''
    actionsAdapter = state_change.object.wfActions()
    # Execute first some actions defined in the corresponding adapter
    actionMethod = getattr(actionsAdapter, action)
    actionMethod(state_change)
    # Add recurring items to the meeting if relevant
    addRecurringItemsIfRelevant(state_change.object, state_change.transition.id)
    # Send mail if relevant
    sendMailIfRelevant(state_change.object, state_change.transition.id, 'View')
    podTransition = 'pod_meeting_%s' % state_change.transition.id
    freezePodDocumentsIfRelevant(state_change.object, podTransition)
def do(action, state_change):
    '''What must I do when a transition is triggered on a Meeting item?'''
    actionsAdapter = state_change.object.wfActions()
    # 1. Execute some actions defined in the corresponding adapter
    actionMethod = getattr(actionsAdapter, action)
    actionMethod(state_change)
    # 2. Update the security of all annexes linked to this meeting item.
    #    Indeed, annexes but have exactly the same "permissions/roles" mapping
    #    as their linked item. Calling "doUpdateAnnexesSecurity" ensures that.
    actionsAdapter.doUpdateAnnexesSecurity(state_change)
    podTransition = 'pod_item_%s' % state_change.transition.id
    freezePodDocumentsIfRelevant(state_change.object, podTransition)