## Script (Python) "delete_course_result"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=ids=[], REQUEST=None, action_after_reject=None, action_after_validate=None
##title=
##
# $Id: delete_course_result.py 1557 2007-03-15 16:00:27Z joachim $
"""
FIXME: add docstring.
"""

from Products.CMFCore.utils import getToolByName
from AccessControl import Unauthorized

here = context
from urllib import urlencode
import logging
logger = logging.getLogger('Skins.delete_course_result')
mtool = context.portal_membership
member = mtool.getAuthenticatedMember()

ret_url = here.absolute_url()

message = ''
if ids:
    real_ids = []
    for id in ids:
        if context.hasObject(id):
            real_ids.append(id)
    if real_ids:
        try:
            context.manage_delObjects(real_ids)
            logger.info('%s deleted StudentCourseResult object %s for %s' % (member,id,context.getStudentId()))
            message = 'psm_item(s)_deleted'
        except Unauthorized:
            logger.info('%s has no permission to delete StudentCourseResult objects for %s' % (member,context.getStudentId()))
            message = 'no item(s) deleted'
else:
    message = 'psm_select_at_least_one_document'

args = {}
args['portal_status_message'] = message

if action_after_validate:
    url = context.absolute_url() + '/' + action_after_validate + '?' + urlencode(args)
else:
    url = context.absolute_url() + '?' + urlencode(args)
if REQUEST is not None:
    return REQUEST.RESPONSE.redirect(url)
