Changeset 2845 for WAeUP_SRP/base/Accommodation.py
- Timestamp:
- 3 Dec 2007, 21:14:20 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WAeUP_SRP/base/Accommodation.py
r2823 r2845 10 10 from Products.CPSDocument.CPSDocument import CPSDocument 11 11 from Products.CPSCore.CPSBase import CPSBaseBTreeFolder as BaseBTreeFolder 12 from Products.WAeUP_SRP.WAeUPTables import AccommodationTable 12 from Products.WAeUP_SRP.WAeUPTables import AccommodationTable,NOT_OCCUPIED 13 13 import logging 14 14 import csv,re,os … … 18 18 p_home = Globals.package_home(globals()) 19 19 i_home = Globals.INSTANCE_HOME 20 20 21 21 22 class AccoFolder(CPSDocument): ###( … … 47 48 for hall in halls: 48 49 #import pdb;pdb.set_trace() 49 h = hall.getContent()50 hall_doc = hall.getContent() 50 51 hall_gen = {} 51 52 hall_gen['name'] = hall.Title 52 53 count = 0 53 reserved = [(r.split('/')[0],int(r.split('/')[1])) for r in re.split(',|\.| ',h .reserved_rooms)54 reserved = [(r.split('/')[0],int(r.split('/')[1])) for r in re.split(',|\.| ',hall_doc.reserved_rooms) 54 55 if r] 55 #for block in range(1,int(h .nr_of_blocks)+1):56 # for block in 'ABCDEFGHIJ'[:int(h .nr_of_blocks)]:57 if set(h .blocks_for_female).intersection(set(h.blocks_for_male)):56 #for block in range(1,int(hall_doc.nr_of_blocks)+1): 57 # for block in 'ABCDEFGHIJ'[:int(hall_doc.nr_of_blocks)]: 58 if set(hall_doc.blocks_for_female).intersection(set(hall_doc.blocks_for_male)): 58 59 return self.accommodation.acco_folder_view(beds_generated=beds_generated) 59 for block in h .blocks_for_female + h.blocks_for_male:60 for block in hall_doc.blocks_for_female + hall_doc.blocks_for_male: 60 61 sex = 'male' 61 if block in h .blocks_for_female:62 if block in hall_doc.blocks_for_female: 62 63 sex = 'female' 63 for floor in range(1,int(h .nr_of_floors)+1):64 for room in range(1,int(h .rooms_per_floor)+1):65 for bed in 'ABCDEFGH'[:int(h .beds_per_room)]:64 for floor in range(1,int(hall_doc.nr_of_floors)+1): 65 for room in range(1,int(hall_doc.rooms_per_floor)+1): 66 for bed in 'ABCDEFGH'[:int(hall_doc.beds_per_room)]: 66 67 room_nr = floor*100 + room 67 68 bt = 're' 68 69 if (block,room_nr) in reserved: 69 70 bt = "reserved" 70 elif h .special_handling and not h.special_handling.startswith("no"):71 bt = h .special_handling72 elif bed in h .beds_for_fresh:71 elif hall_doc.special_handling and not hall_doc.special_handling.startswith("no"): 72 bt = hall_doc.special_handling 73 elif bed in hall_doc.beds_for_fresh: 73 74 bt = 'fr' 74 elif bed in h .beds_for_pre:75 elif bed in hall_doc.beds_for_pre: 75 76 bt = 'pr' 76 elif bed in h .beds_for_final:77 elif bed in hall_doc.beds_for_final: 77 78 bt = 'fi' 78 if h .special_handling.startswith("no_"):79 bt += "_" + h .special_handling[3:]79 if hall_doc.special_handling.startswith("no_"): 80 bt += "_" + hall_doc.special_handling[3:] 80 81 bt = "%(sex)s_%(bt)s" % vars() 81 82 uid = '%s_%s_%d_%s' % (hall.getId(),block,room_nr,bed) 83 d = {} 84 d['bed'] = uid 85 d['bed_type'] = bt 86 d['sort_id'] = getattr(hall_doc,'sort_id') 87 d['hall'] = hall.getId() 88 d['student'] = NOT_OCCUPIED 82 89 try: 83 freelist.addRecord(bed = uid, bed_type = bt,hall = hall.getId()) 90 #freelist.addRecord(bed = uid, bed_type = bt,hall = hall.getId()) 91 freelist.addRecord(**d) 84 92 count +=1 85 93 generated.append('"%(uid)s","%(bt)s"' % vars()) 86 94 except ValueError: 87 95 #freelist.modifyRecord(bed = uid, bed_type = bt,hall =hall.getId()) 96 #freelist.modifyRecord(**d) 88 97 pass 89 98 hall_gen['count']= count … … 239 248 ###) 240 249 250 ###) 251 241 252 class AccoHall(CPSDocument): ###( 242 253 """ 243 WAeUP AccoHall containing Departments254 WAeUP AccoHall 244 255 """ 245 256 meta_type = 'AccoHall'
Note: See TracChangeset for help on using the changeset viewer.