## Script (Python) "getAccoFolderInfo" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters=student=None ##title= ## # $Id: getAccoFolderInfo.py 903 2006-11-20 08:08:10Z henrik $ """ return Info about the Faculties """ request = context.REQUEST wf = context.portal_workflow mtool = context.portal_membership path_info = request.get('PATH_INFO').split('/') info = {} info['is_manager'] = context.isSectionManager() info['is_student'] = context.isStudent() info['action'] = "%s" % context.absolute_url() info['choosen_ids'] = request.get('ids',[]) items = [] halls = context.portal_catalog(portal_type='AccoHall') for f in halls: row = {} fo = f.getObject() fd = fo.getContent() row['id'] = fo.getId() row['title'] = fd.Title() row['url'] = fo.absolute_url() row['is_editable'] = mtool.checkPermission('Modify portal content', fo) items.append(row) info['items'] = items pa = context.portal_accommodation bed_types = pa.uniqueValuesFor('bed_type') bt_list = [] bt_names = context.getBedTypeNames() reserved = pa.uniqueValuesFor('student') for bt in bed_types: total = len(pa(bed_type=bt)) free = len(pa.searchResults({'bed_type': bt,'student':reserved})) bt_list.append({'name': bt_names[bt], 'total': total, 'reserved': free, }) info['bed_types'] = bt_list reserved = pa.uniqueValuesFor('student') res_list = [] if reserved > 1: for st in reserved: if st: res = pa(student=st) res_list.append({'student': st, 'bed': res[0].bed }) info['reserved'] = res_list return info