Index: /main/waeup.sirp/trunk/src/waeup/sirp/hostels/browser_templates/hostelmanagepage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/hostels/browser_templates/hostelmanagepage.pt	(revision 6970)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/hostels/browser_templates/hostelmanagepage.pt	(revision 6971)
@@ -67,7 +67,7 @@
         <tr>
           <th>&nbsp;</th>
-          <th>Bed Id</th>
-          <th>Bed Type</th>
-          <th>Sort Id</th>
+          <th>Id</th>
+          <th>Type</th>
+          <th>Number</th>
           <th>Owner</th>
         </tr>
@@ -80,8 +80,8 @@
           </td>
           <td> <a tal:attributes="href value/__name__">
-          <span tal:content="value/bed_id">Bed Id</span>
+          <span tal:content="value/bed_id">Id</span>
           </a></td>
-          <td tal:content="value/bed_type">Bed Type</td>
-          <td tal:content="value/sort_id">Sort Id</td>
+          <td tal:content="value/bed_type">Type</td>
+          <td tal:content="value/bed_number">Number</td>
           <td tal:content="value/owner">Owner</td>
         </tr>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/hostels/hostel.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/hostels/hostel.py	(revision 6970)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/hostels/hostel.py	(revision 6971)
@@ -56,8 +56,9 @@
         beds_for_returning = getattr(self,'beds_for_returning',[])
         beds_for_final = getattr(self,'beds_for_final',[])
+        beds_for_all = getattr(self,'beds_for_all',[])
         beds_reserved = [] #temporarily empty
         all_blocks = blocks_for_female + blocks_for_male
         all_beds = (beds_for_pre + beds_for_fresh +
-            beds_for_returning + beds_for_final)
+            beds_for_returning + beds_for_final + beds_for_all)
         #import pdb;pdb.set_trace()
         for block in all_blocks:
@@ -72,9 +73,4 @@
                         if (block,room_nr) in beds_reserved:
                             bt = "reserved"
-                        # Hostels with special handling and
-                        # without bed categorisation
-                        elif (self.special_handling != 'none' and not
-                              self.special_handling.endswith("_withcat")):
-                            bt = self.special_handling[3:]
                         elif bed in beds_for_fresh:
                             bt = 'fr'
@@ -85,8 +81,6 @@
                         elif bed in beds_for_returning:
                             bt = 're'
-                        # Hostels with special handling and
-                        # with bed categorisation
-                        if (self.special_handling != 'none' and
-                            self.special_handling.endswith("_withcat")):
+                        # Hostels with special handling
+                        if self.special_handling != 'none':
                             bt += "_" + self.special_handling
                         bt = u'%(sex)s_%(bt)s' % vars()
@@ -96,5 +90,4 @@
                             if bed.bed_type != bt:
                                 bed.bed_type = bt
-                                bed.sort_id = getattr(self,'sort_id',0)
                                 #modified.append('"%(uid)s","%(bt)s","%(bed.owner)s"' % vars())
                                 modified_counter += 1
@@ -103,5 +96,5 @@
                             bed.bed_id = uid
                             bed.bed_type = bt
-                            bed.sort_id = getattr(self,'sort_id',0)
+                            bed.bed_number = len(self) + 1
                             bed.owner = NOT_OCCUPIED
                             self.addBed(bed)
Index: /main/waeup.sirp/trunk/src/waeup/sirp/hostels/interfaces.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/hostels/interfaces.py	(revision 6970)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/hostels/interfaces.py	(revision 6971)
@@ -45,5 +45,5 @@
         title = u'Floors per Block',
         required = True,
-        default = 3,
+        default = 1,
         )
 
@@ -51,12 +51,6 @@
         title = u'Rooms per Floor',
         required = True,
-        default = 20,
+        default = 2,
         )
-
-    #beds_per_room = schema.Int(
-    #    title = u'Beds per Room',
-    #    required = True,
-    #    default = 6,
-    #    )
 
     blocks_for_female = schema.List(
@@ -95,4 +89,11 @@
         )
 
+    beds_for_all = schema.List(
+        title = u'Beds without category',
+        value_type = schema.Choice(
+            vocabulary = bed_letters
+            ),
+        )
+
     special_handling = schema.Choice(
         title = u'Special Handling',
@@ -125,13 +126,4 @@
             raise Invalid('Bed categories overlap.')
 
-    #@invariant
-    #def numberOfBeds(hostel):
-    #    bfr = hostel.beds_for_fresh
-    #    bre = hostel.beds_for_returning
-    #    bfi = hostel.beds_for_final
-    #    if len(bfr + bre + bfi) != hostel.beds_per_room:
-    #        raise Invalid(
-    #            'Bed categories and number of beds per room do not match.')
-
 class IBed(IWAeUPObject):
     """A base representation of beds.
@@ -159,8 +151,7 @@
         )
 
-    sort_id = schema.Int(
-        title = u'Sort Id',
+    bed_number = schema.Int(
+        title = u'Bed Number',
         required = True,
-        default = 100,
         )
 
