## Script (Python) "disable_pins"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=REQUEST,ids=[]
##title=
##
# $Id: disable_pins.py 3398 2008-04-01 06:28:21Z henrik $
"""
disable pins
"""
import DateTime
current = DateTime.DateTime().strftime("%d-%m-%y_%H_%M_%S")
import logging
logger = logging.getLogger('Skins.disable_pins')

request = REQUEST
redirect = request.RESPONSE.redirect
wftool = context.portal_workflow
mtool = context.portal_membership
member = mtool.getAuthenticatedMember()
#from Products.zdb import set_trace
#set_trace()

if not ids:
    return

pincat = context.portal_pins
for pid in ids:
    serial,prefix = pid.split("_")
    res = pincat(prefix_batch=prefix,
                 serial=int(serial))
    if len(res) != 1:
        continue
    uid = res[0].pin
    student_id = res[0].student
    dict = {"pin": uid,
            "student": "disabled by %s on %s" % (member,current)
            }
    pincat.modifyRecord(**dict)
    logger.info('%s disabled pin %s (%s)' % (member,uid,student_id))
return redirect("%s/campus/pins/search_pins?portal_status_message=PIN %s has been successfully disabled!" % (context.portal_url(),uid))
