source: WAeUP_SRP/trunk/skins/waeup_fceoyo/getAccommodationInfo.py @ 4007

Last change on this file since 4007 was 4007, checked in by Henrik Bettermann, 16 years ago

ease disabling hostel booking (not yet tested)

FCE Okene remains unchanged.

File size: 3.4 KB
Line 
1## Script (Python) "getAccommodationInfo"
2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind subpath=traverse_subpath
7##parameters=student_id=None
8##title=
9##
10# $Id: getAccommodationInfo.py 1726 2007-05-02 06:21:50Z henrik $
11"""
12return Info about the current Student
13"""
14import logging
15logger = logging.getLogger('Skins.getAccommodationInfo')
16import DateTime
17
18booking_disabled = True
19
20request = context.REQUEST
21mtool = context.portal_membership
22wf = context.portal_workflow
23member = mtool.getAuthenticatedMember()
24member_id = str(member)
25path_info = request.get('PATH_INFO').split('/')
26
27if mtool.isAnonymousUser():
28    return None
29info = {}
30if student_id is None:
31    requested_id = context.getStudentId()
32    if requested_id and not context.isStaff() and member_id != requested_id:
33        logger.info('%s tried to access %s' % (member_id,requested_id))
34        return None
35    elif context.isStaff():
36        student_id = requested_id
37    else:
38        student_id = member_id
39student_record = context.students_catalog.getRecordByKey(student_id)
40if student_record is None:
41    logger.info('%s not found in students_catalog' % student_id)
42    return None
43
44info['error'] = None
45info['matric_no']=student_record.matric_no
46info['jamb_reg_no']=student_record.jamb_reg_no
47info['name']=student_record.name
48info['email']=student_record.email
49info['level']=student_record.level
50info['verdict']=getattr(student_record,'verdict','')
51review_state = info['review_state'] = student_record.review_state
52info['session'] = session = context.getSessionId()
53students_object = context.portal_url.getPortalObject().campus.students
54student = getattr(students_object, student_id)
55info['student_id'] = student_id
56info['student'] = student
57
58# do not change these settings!
59
60booking_allowed = False
61info['booking_disabled'] = False
62
63# customize from here
64
65try:
66    level = int(student_record.level)
67except:
68    logger.info('%s has invalid level %s' % (student_id,student_record.level))
69    info['acco'] = None
70    info['booking_allowed'] = False
71    info['student_status'] = ''
72    return info   
73   
74try:
75    arrived = int(student_record.session) == int(session[0])
76except:
77    arrived = False
78    logger.info('%s has invalid session %s' % (student_id,student_record.session))   
79
80if review_state in ('school_fee_paid','courses_registered', 'courses_validated',) and arrived:
81    info['booking_allowed'] = True
82    info['online_payment'] = True
83else:
84    info['acco'] = None
85    info['booking_allowed'] = False
86    info['student_status'] = ''
87    return info
88
89d = {}
90if level >= 300:
91   bt = 'fi'
92if level == 100:
93    bt = 'fr'
94elif level < 100:
95    bt = 'pr'   
96elif level < 300:
97    bt = 're'
98
99d['sex'] = 'male'
100if student_record.sex:
101    d['sex'] = 'female'
102
103
104info['sex']=d['sex']
105d['bt'] = bt
106student_status = "%(sex)s_%(bt)s" % d
107info['student_status'] = student_status
108
109# customize end
110
111acco_id = 'accommodation_' + session[0]
112acco = getattr(student,acco_id,None)
113info['acco'] = acco
114info['acco_id'] = acco_id
115info['maintenance_paid'] = False
116if acco is not None:
117    info['acco_doc'] = acco.getContent()
118    info['acco_review_state'] = wf.getInfoFor(acco,'review_state',None)
119    info['maintenance_paid'] = info['acco_review_state'] == "maintenance_fee_paid"
120elif booking_disabled:
121    info['booking_allowed'] = False
122    info['booking_disabled'] = True
123    logger.info('%s: %s eligible but booking disabled' % (student_id,student_status)) 
124
125return info
Note: See TracBrowser for help on using the repository browser.