Ignore:
Timestamp:
5 Oct 2012, 05:42:19 (12 years ago)
Author:
Henrik Bettermann
Message:

Set validated_by when bypassing course validation. Declare validated_by and bypass_validation in IStudentVerdictUpdate.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/trunk/src/waeup/kofa/students/batching.py

    r9295 r9296  
    2828from time import time
    2929from datetime import datetime
     30from zope.i18n import translate
    3031from zope.interface import Interface
    3132from zope.schema import getFields
     
    3738    IBatchProcessor, FatalCSVError, IObjectConverter, IUserAccount,
    3839    IObjectHistory, VALIDATED, REGISTERED, IGNORE_MARKER)
     40from waeup.kofa.interfaces import IKofaUtils
    3941from waeup.kofa.interfaces import MessageFactory as _
    4042from waeup.kofa.students.interfaces import (
     
    721723        'current_session',
    722724        'current_level',
    723         'bypass_validation']
     725        'bypass_validation',
     726        'validated_by']
    724727
    725728    def checkUpdateRequirements(self, obj, row, site):
     
    741744            return 'Study level object is missing.'
    742745        # Check if student is in state REGISTERED or VALIDATED
    743         if row.get('bypass_validation') in ('1', 'True', 'TRUE', 'yes'):
     746        if row.get('bypass_validation'):
    744747            if obj.student.state not in (VALIDATED, REGISTERED):
    745748                return 'Student in wrong state.'
     
    760763        level_string = str(obj.current_level)
    761764        obj[level_string].level_verdict = row['current_verdict']
    762         # Fire transition depending on student's state
     765        # Fire transition and set studylevel attributes
     766        # depending on student's state
    763767        if obj.__parent__.state == REGISTERED:
     768            validated_by = row.get('validated_by', '')
     769            if validated_by in (IGNORE_MARKER, ''):
     770                portal_language = getUtility(IKofaUtils).PORTAL_LANGUAGE
     771                system = translate(_('System'),'waeup.kofa',
     772                                  target_language=portal_language)
     773                obj[level_string].validated_by = system
     774            else:
     775                obj[level_string].validated_by = validated_by
     776            obj[level_string].validation_date = datetime.utcnow()
    764777            IWorkflowInfo(obj.__parent__).fireTransition('bypass_validation')
    765             obj[level_string].validated_by = _('System')
    766             obj[level_string].validation_date = datetime.utcnow()
    767778        else:
    768779            IWorkflowInfo(obj.__parent__).fireTransition('return')
Note: See TracChangeset for help on using the changeset viewer.