Ignore:
Timestamp:
3 Dec 2007, 21:14:20 (17 years ago)
Author:
joachim
Message:

add sort_id, additional fields in payment

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/base/Accommodation.py

    r2823 r2845  
    1010from Products.CPSDocument.CPSDocument import CPSDocument
    1111from Products.CPSCore.CPSBase import CPSBaseBTreeFolder as BaseBTreeFolder
    12 from Products.WAeUP_SRP.WAeUPTables import AccommodationTable
     12from Products.WAeUP_SRP.WAeUPTables import AccommodationTable,NOT_OCCUPIED
    1313import logging
    1414import csv,re,os
     
    1818p_home = Globals.package_home(globals())
    1919i_home = Globals.INSTANCE_HOME
     20
    2021
    2122class AccoFolder(CPSDocument): ###(
     
    4748        for hall in halls:
    4849            #import pdb;pdb.set_trace()
    49             h = hall.getContent()
     50            hall_doc = hall.getContent()
    5051            hall_gen = {}
    5152            hall_gen['name'] = hall.Title
    5253            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)
    5455                                     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)):
    5859                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:
    6061                sex = 'male'
    61                 if block in h.blocks_for_female:
     62                if block in hall_doc.blocks_for_female:
    6263                    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)]:
    6667                            room_nr = floor*100 + room
    6768                            bt = 're'
    6869                            if (block,room_nr) in reserved:
    6970                                bt = "reserved"
    70                             elif h.special_handling and not h.special_handling.startswith("no"):
    71                                 bt = h.special_handling
    72                             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:
    7374                                bt = 'fr'
    74                             elif bed in h.beds_for_pre:
     75                            elif bed in hall_doc.beds_for_pre:
    7576                                bt = 'pr'
    76                             elif bed in h.beds_for_final:
     77                            elif bed in hall_doc.beds_for_final:
    7778                                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:]
    8081                            bt = "%(sex)s_%(bt)s" % vars()
    8182                            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
    8289                            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)
    8492                                count +=1
    8593                                generated.append('"%(uid)s","%(bt)s"' % vars())
    8694                            except ValueError:
    8795                                #freelist.modifyRecord(bed = uid, bed_type = bt,hall =hall.getId())
     96                                #freelist.modifyRecord(**d)
    8897                                pass
    8998            hall_gen['count']= count
     
    239248###)
    240249
     250###)
     251
    241252class AccoHall(CPSDocument): ###(
    242253    """
    243     WAeUP AccoHall containing Departments
     254    WAeUP AccoHall
    244255    """
    245256    meta_type = 'AccoHall'
Note: See TracChangeset for help on using the changeset viewer.