Index: WAeUP_SRP/trunk/Accommodation.py
===================================================================
--- WAeUP_SRP/trunk/Accommodation.py	(revision 925)
+++ WAeUP_SRP/trunk/Accommodation.py	(revision 926)
@@ -49,10 +49,11 @@
             hall_gen['name'] = hall.Title
             count = 0
-            reserved = [(int(r.split('/')[0]),int(r.split('/')[1])) for r in re.split(',|\.| ',h.reserved_rooms)
+            reserved = [(r.split('/')[0],int(r.split('/')[1])) for r in re.split(',|\.| ',h.reserved_rooms)
                                      if r]
             sex = 'male'
             if h.which_sex:
                 sex = 'female'
-            for block in range(1,int(h.nr_of_blocks)+1):
+            #for block in range(1,int(h.nr_of_blocks)+1):
+            for block in 'ABCDEFGHIJ'[:int(h.nr_of_blocks)]:
                 for floor in range(1,int(h.nr_of_floors)+1):
                     for room in range(1,int(h.rooms_per_floor)+1):
@@ -62,4 +63,6 @@
                             if (block,room_nr) in reserved:
                                 bt = "reserved"
+                            elif h.special_handling != "no":
+                                bt = h.special_handling
                             elif bed in h.beds_for_fresh:
                                 bt = 'fr'
@@ -69,5 +72,5 @@
                                 bt = 'fi'
                             bt = "%(sex)s_%(bt)s" % vars()
-                            uid = '%s_%d_%d_%s' % (hall.getId(),block,room_nr,bed)
+                            uid = '%s_%s_%d_%s' % (hall.getId(),block,room_nr,bed)
                             try:
                                 freelist.addRecord(bed = uid, bed_type = bt,hall = hall.getId())
Index: WAeUP_SRP/trunk/Widgets.py
===================================================================
--- WAeUP_SRP/trunk/Widgets.py	(revision 925)
+++ WAeUP_SRP/trunk/Widgets.py	(revision 926)
@@ -189,5 +189,5 @@
             err = 0
             try:
-                reserved = [(int(r.split('/')[0]),int(r.split('/')[1])) for r in re.split(',|\.| ',value)
+                reserved = [(r.split('/')[0],int(r.split('/')[1])) for r in re.split(',|\.| ',value)
                                      if r]
             except ValueError,msg:
Index: WAeUP_SRP/trunk/exportimport.py
===================================================================
--- WAeUP_SRP/trunk/exportimport.py	(revision 925)
+++ WAeUP_SRP/trunk/exportimport.py	(revision 926)
@@ -75,8 +75,10 @@
     pm = site.portal_membership
     campus = site.portal_url.getPortalObject().campus
+    campus.academics.manage_setLocalGroupRoles(groupid='Authenticated',
+                                         roles=('SectionReader',))
     pm.setLocalGroupRoles(campus.students,['group:ClearanceOfficers',
                                            'role:Student',],'SectionReader')
-    pm.setLocalGroupRoles(campus.academics,['role:Authenticated',
-                                           ],'SectionReader')
+##    pm.setLocalGroupRoles(campus.academics,['role:Authenticated',
+##                                           ],'SectionReader')
     importWAeUPTable(site.portal_accommodation, '', context,'accommodation')
     importWAeUPTable(site.portal_pins, '', context,'pins')
Index: WAeUP_SRP/trunk/profiles/default/layouts/acco_hall.xml
===================================================================
--- WAeUP_SRP/trunk/profiles/default/layouts/acco_hall.xml	(revision 925)
+++ WAeUP_SRP/trunk/profiles/default/layouts/acco_hall.xml	(revision 926)
@@ -124,4 +124,17 @@
   <property name="label_true">female</property>
  </widget>
+<widget name="special_handling" meta_type="Select Widget">
+ <property name="title">Maintenance Fee Prefix</property>
+ <property name="fields">
+  <element value="special_handling"/>
+ </property>
+ <property name="is_required">False</property>
+ <property name="label">Special Handling Code</property>
+ <property name="label_edit">Special Handling Code</property>
+ <property name="readonly_layout_modes"/>
+ <property name="hidden_layout_modes"/>
+ <property name="hidden_readonly_layout_modes"/>
+<property name="vocabulary">acco_special_handling</property>
+</widget>
 <widget name="maintenance_code" meta_type="Select Widget">
  <property name="title">Maintenance Fee Prefix</property>
@@ -143,4 +156,7 @@
   <row>
    <cell name="maintenance_code"/>
+  </row>
+  <row>
+   <cell name="special_handling"/>
   </row>
   <row>
Index: WAeUP_SRP/trunk/profiles/default/schemas/acco_hall.xml
===================================================================
--- WAeUP_SRP/trunk/profiles/default/schemas/acco_hall.xml	(revision 925)
+++ WAeUP_SRP/trunk/profiles/default/schemas/acco_hall.xml	(revision 926)
@@ -14,10 +14,10 @@
   </field>
  <field name="reserved_rooms" meta_type="CPS String List Field">
-    <property name="default_expr">string:1/101,2/102</property>
+    <property name="default_expr">string:A/101,C/102</property>
   </field>
   <field name="rooms_per_floor" meta_type="CPS Int Field">
     <property name="default_expr">python:20</property>
   </field>
- <field name="study_courses" meta_type="CPS String List Field"/>
+ <field name="special_handling" meta_type="CPS String Field"/>
  <field name="text" meta_type="CPS String Field">
   <property name="is_searchabletext">False</property>
Index: WAeUP_SRP/trunk/profiles/default/vocabularies.xml
===================================================================
--- WAeUP_SRP/trunk/profiles/default/vocabularies.xml	(revision 925)
+++ WAeUP_SRP/trunk/profiles/default/vocabularies.xml	(revision 926)
@@ -23,4 +23,5 @@
  <object name="searchable_student_states" meta_type="CPS Vocabulary"/>
  <object name="get_searchable_student_states" meta_type="CPS Method Vocabulary"/>
+ <object name="acco_special_handling" meta_type="CPS Vocabulary"/>
  <object name="academics_search_mode" meta_type="CPS Vocabulary"/>
  <object name="searchable_academics_states" meta_type="CPS Vocabulary"/>
Index: WAeUP_SRP/trunk/profiles/default/vocabularies/acco_special_handling.xml
===================================================================
--- WAeUP_SRP/trunk/profiles/default/vocabularies/acco_special_handling.xml	(revision 926)
+++ WAeUP_SRP/trunk/profiles/default/vocabularies/acco_special_handling.xml	(revision 926)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<object name="acco_special_handling" meta_type="CPS Vocabulary">
+ <property name="title"></property>
+ <property name="title_msgid"></property>
+ <property name="description"></property>
+ <property name="acl_write_roles">Manager</property>
+ <item key="no" msgid="">---</item>
+ <item key="pg" msgid="">Postgraduate</item>
+ <item key="med" msgid="">Medical (Level 500/600)</item>
+</object>
Index: WAeUP_SRP/trunk/skins/waeup_accommodation/getBedTypeNames.py
===================================================================
--- WAeUP_SRP/trunk/skins/waeup_accommodation/getBedTypeNames.py	(revision 925)
+++ WAeUP_SRP/trunk/skins/waeup_accommodation/getBedTypeNames.py	(revision 926)
@@ -10,13 +10,26 @@
 # $Id$
 
-return {'female_fr': 'Female New Student',
-             'female_fi': 'Female Final Student',
-             'female_re': 'Female Returning Student',
-             'female_reserved': 'Female Reserved',
-             'female_xx': 'Female Other',
-             'male_fr': 'Male New Student',
-             'male_fi': 'Male Final Student',
-             'male_re': 'Male Returning Student',
-             'male_reserved': 'Male Reserved',
-             'male_xx': 'Male Other'
-             }
+type_suffixes = [('fr','New Student'),
+                 ('fi','Final Student'),
+                 ('re','Returning Student'),
+                 ('reserved','Reserved'),
+                 ]
+special = [item for item in context.portal_vocabularies.acco_special_handling.items()
+                            if item[0] != 'no']
+type_suffixes.extend(special)
+dict = {}
+for gender in ('female','male'):
+    for suffix,desc in type_suffixes:
+        dict['%s_%s' % (gender,suffix)] = '%s %s' % (gender.capitalize(),desc) 
+return dict
+##return {'female_fr': 'Female New Student',
+##             'female_fi': 'Female Final Student',
+##             'female_re': 'Female Returning Student',
+##             'female_reserved': 'Female Reserved',
+##             'female_xx': 'Female Other',
+##             'male_fr': 'Male New Student',
+##             'male_fi': 'Male Final Student',
+##             'male_re': 'Male Returning Student',
+##             'male_reserved': 'Male Reserved',
+##             'male_xx': 'Male Other'
+##             }
