## Script (Python) "validate_courses"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=student=None, action_after_reject=None, action_after_validate=''
##title=
##
# $Id: getStudyCourseInfo.py 1504 2007-02-26 21:20:40Z henrik $
"""
close the Students StudyLevel
"""
from Products.CMFCore.WorkflowCore import WorkflowException
import DateTime
current = DateTime.DateTime()
try:
    from Products.zdb import set_trace
except:
    def set_trace():
        pass

request = context.REQUEST
mtool = context.portal_membership
member = mtool.getAuthenticatedMember()
member_id = str(member)
import logging
logger = logging.getLogger('Skins.validate_courses')

wftool = context.portal_workflow
students_folder = context.portal_url.getPortalObject().campus.students
student_id = context.getStudentId()
student = getattr(students_folder,student_id)
level_doc = context.getContent()
if level_doc.portal_type == 'StudentStudyLevel':
    level_doc.edit(mapping={'validated_by': member_id,
                            'validation_date': current,})
try:
    wftool.doActionFor(student,'validate_courses')
except WorkflowException,E:
    logger.info('%s WorkflowException %s for %s' % (member_id,E,student_id))
    return request.RESPONSE.redirect("%s" % context.absolute_url())
logger.info('%s validated course list of %s' % (member_id,student_id))

psm = 'portal_status_message=Course list validated!'
url = context.absolute_url() + '/' + action_after_validate +  '?' + psm
return request.RESPONSE.redirect(url)
