[1289] | 1 | ## Script (Python) "getBedStatusFromHall"
|
---|
| 2 | ##bind container=container
|
---|
| 3 | ##bind context=context
|
---|
| 4 | ##bind namespace=
|
---|
| 5 | ##bind script=script
|
---|
| 6 | ##bind subpath=traverse_subpath
|
---|
| 7 | ##parameters=code=None
|
---|
| 8 | ##title=
|
---|
| 9 | ##
|
---|
| 10 | # $Id: change_bed.py 1206 2007-01-05 18:24:56Z joachim $
|
---|
| 11 | """
|
---|
| 12 | """
|
---|
| 13 | import logging
|
---|
| 14 | logger = logging.getLogger('Student.Accommodation.change_bed')
|
---|
| 15 | import re
|
---|
| 16 | request = context.REQUEST
|
---|
| 17 | redirect = request.RESPONSE.redirect
|
---|
| 18 | mtool = context.portal_membership
|
---|
| 19 | wf = context.portal_workflow
|
---|
| 20 | member = mtool.getAuthenticatedMember()
|
---|
| 21 | member_id = str(member)
|
---|
| 22 | path_info = request.get('PATH_INFO').split('/')
|
---|
| 23 |
|
---|
| 24 | hall,block,room,bed = code.split('_')
|
---|
| 25 | hres = context.portal_catalog(id = hall)
|
---|
| 26 | if not hres:
|
---|
| 27 | return None
|
---|
| 28 | h = hres[0].getObject().getContent()
|
---|
| 29 | sex = 'male'
|
---|
| 30 | if block in h.blocks_for_female:
|
---|
| 31 | sex = 'female'
|
---|
| 32 | room_nr = int(room)
|
---|
| 33 | bt = 're'
|
---|
| 34 | reserved = [(r.split('/')[0],int(r.split('/')[1])) for r in re.split(',|\.| ',h.reserved_rooms)
|
---|
| 35 | if r]
|
---|
| 36 | if (block,room_nr) in reserved:
|
---|
| 37 | bt = "reserved"
|
---|
| 38 | elif not h.special_handling.startswith("no"):
|
---|
| 39 | bt = h.special_handling
|
---|
| 40 | elif bed in h.beds_for_fresh:
|
---|
| 41 | bt = 'fr'
|
---|
| 42 | #elif bed in h.beds_for_returning:
|
---|
| 43 | # bt = 're'
|
---|
| 44 | elif bed in h.beds_for_final:
|
---|
| 45 | bt = 'fi'
|
---|
| 46 | if h.special_handling.startswith("no_"):
|
---|
| 47 | bt += "_" + h.special_handling[3:]
|
---|
| 48 | bt = "%s_%s" % (sex,bt)
|
---|
| 49 | uid = '%s_%s_%d_%s' % (hall,block,room_nr,bed)
|
---|
| 50 | return bt |
---|