source: WAeUP_SRP/trunk/skins/waeup_accommodation/getAccoFolderInfo.py @ 1426

Last change on this file since 1426 was 1301, checked in by joachim, 18 years ago

set total correct for reserved beds (in custom)

  • Property svn:keywords set to Id
File size: 1.9 KB
RevLine 
[845]1## Script (Python) "getAccoFolderInfo"
[622]2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind subpath=traverse_subpath
7##parameters=student=None
8##title=
9##
[805]10# $Id: getAccoFolderInfo.py 1301 2007-01-15 12:00:30Z joachim $
[622]11"""
12return Info about the Faculties
13"""
14request = context.REQUEST
15
16wf = context.portal_workflow
17mtool = context.portal_membership
18path_info = request.get('PATH_INFO').split('/')
19
20info = {}
[635]21info['action'] = "%s" % context.absolute_url()
[622]22info['choosen_ids'] = request.get('ids',[])
23items = []
24halls = context.portal_catalog(portal_type='AccoHall')
25for f in halls:
26    row = {}
27    fo = f.getObject()
28    fd = fo.getContent()
29    row['id'] = fo.getId()
30    row['title'] = fd.Title()
31    row['url'] = fo.absolute_url()
32    row['is_editable'] = mtool.checkPermission('Modify portal content', fo)
33    items.append(row)
34info['items'] = items
[626]35pa = context.portal_accommodation
36bed_types = pa.uniqueValuesFor('bed_type')
37bt_list = []
[627]38bt_names =  context.getBedTypeNames()
[1301]39res = pa.uniqueValuesFor('student')
40reserved = [st for st in res if st]
[1138]41sum_total = 0
[1301]42sum_occupied = 0
43#from Products.zdb import set_trace;set_trace()
[626]44for bt in bed_types:
[654]45    total = len(pa(bed_type=bt))
[1138]46    sum_total += total
[1301]47    occupied = len(pa.searchResults({'bed_type': bt,'student':reserved}))
48    sum_occupied += occupied
[654]49    bt_list.append({'name': bt_names[bt],
50                    'total': total,
[1301]51                    'reserved': occupied,
52                    'full': occupied == total,
[654]53                    })
[1298]54bt_list.append({'name': "All Categories",
[1138]55                'total': sum_total,
[1301]56                'reserved': sum_occupied,
[1138]57                })
[626]58info['bed_types'] = bt_list
59reserved = pa.uniqueValuesFor('student')
60res_list = []
61if reserved > 1:
62    for st in reserved:
63        if st:
64            res = pa(student=st)
[635]65            res_list.append({'student': st, 'bed': res[0].bed })
[626]66info['reserved'] = res_list
67
[622]68return info
Note: See TracBrowser for help on using the repository browser.