## Script (Python) "reject_courses"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=REQUEST=None, student=None, action_after_reject=None, action_after_validate=None
##title=
##
# $Id: getStudyCourseInfo.py 1504 2007-02-26 21:20:40Z henrik $
"""
close the Students StudyLevel
"""
from Products.CMFCore.WorkflowCore import WorkflowException
try:
    from Products.zdb import set_trace
except:
    def set_trace():
        pass
from urllib import urlencode
request = context.REQUEST
mtool = context.portal_membership
member = mtool.getAuthenticatedMember()
member_id = str(member)
import logging
logger = logging.getLogger('Skins.reject_courses')

wftool = context.portal_workflow
try:
    wftool.doActionFor(context,'open')
except:
    pass
#wftool.doActionFor(context,'close_for_edit')
students_folder = context.portal_url.getPortalObject().campus.students
student_id = context.getStudentId()
student = getattr(students_folder,student_id)
try:
    wftool.doActionFor(student,'reject_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 rejected course list of %s' % (member_id,student_id))

args = {}

psm = "Student's course list has been rejected! Please fill and submit the form below!"
subject = "Course list rejected"
args['subject'] = subject
args['continue'] = action_after_validate
args['portal_status_message'] = psm
if action_after_reject:
    url = context.absolute_url() + '/' + action_after_reject + '?' + urlencode(args)
else:
    url = context.absolute_url() + '?' + urlencode(args)
return REQUEST.RESPONSE.redirect(url)
