Index: main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser_templates/containerpage.pt
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser_templates/containerpage.pt	(revision 9146)
+++ main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser_templates/containerpage.pt	(revision 9196)
@@ -21,12 +21,18 @@
       <th i18n:translate="">Id</th>
       <th i18n:translate="">Name</th>
+      <th i18n:translate="">Booked Beds</th>
     </tr>
   </thead>
   <tbody>
-    <tr tal:repeat="value context/values">
-      <td> <a tal:attributes="href value/__name__">
-          <span tal:content="value/hostel_id">ID</span></a></td>
-      <td tal:content="value/hostel_name">NAME</td>
-    </tr>
+    <tal:tbody repeat="value context/values">
+      <tr tal:define = "stats value/bed_statistics">
+        <td> <a tal:attributes="href value/__name__">
+            <span tal:content="value/hostel_id">ID</span></a></td>
+        <td tal:content="value/hostel_name">NAME</td>
+        <td>
+          <span tal:replace="stats/booked">10</span> of <span tal:replace="stats/total">100</span>
+        </td>
+      </tr>
+    </tal:tbody>
   </tbody>
 </table>
Index: main/waeup.kofa/trunk/src/waeup/kofa/hostels/hostel.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/hostels/hostel.py	(revision 9146)
+++ main/waeup.kofa/trunk/src/waeup/kofa/hostels/hostel.py	(revision 9196)
@@ -40,4 +40,27 @@
         target = self.__name__
         return grok.getSite()['hostels'].logger_info(ob_class,target,comment)
+
+    @property
+    def bed_statistics(self):
+        total = len(self.keys())
+        booked = 0
+        for value in self.values():
+            if value.owner != NOT_OCCUPIED:
+                booked += 1
+        return {'booked':booked, 'total':total}
+
+    def clearHostel(self):
+        """Remove all beds.
+
+        This methods is pretty fast and optimized. Use it instead of
+        removing all items manually yourself.
+        """
+        # This internal function is implemented in C and thus much
+        # faster as we could do it in pure Python.
+        self._SampleContainer__data.clear()
+        # The length attribute is 'lazy'. See `zope.container` for details.
+        # This way we make sure, the next time len() is called, it returns
+        # the real value and not a cached one.
+        del self.__dict__['_BTreeContainer__len']
 
     def addBed(self, bed):
Index: main/waeup.kofa/trunk/src/waeup/kofa/hostels/interfaces.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/hostels/interfaces.py	(revision 9146)
+++ main/waeup.kofa/trunk/src/waeup/kofa/hostels/interfaces.py	(revision 9196)
@@ -17,5 +17,5 @@
 ##
 from datetime import datetime
-from zope.interface import invariant, Invalid
+from zope.interface import invariant, Invalid, Attribute
 from zope import schema
 from waeup.kofa.interfaces import (
@@ -63,6 +63,12 @@
     """
 
+    bed_statistics = Attribute('Number of booked and total beds')
+
     def loggerInfo(ob_class, comment):
         """Adds an INFO message to the log file
+        """
+
+    def clearHostel():
+        """Remove all beds.
         """
 
Index: main/waeup.kofa/trunk/src/waeup/kofa/hostels/tests.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/hostels/tests.py	(revision 9146)
+++ main/waeup.kofa/trunk/src/waeup/kofa/hostels/tests.py	(revision 9196)
@@ -300,5 +300,5 @@
         self.assertMatches(
           '...No allocated bed selected...', self.browser.contents)
-        # Managers can manually allocate studenst after cancellation
+        # Managers can manually allocate students after cancellation
         self.browser.open(self.container_path + '/hall-1/hall-1_A_101_A')
         self.browser.getControl(name="form.owner").value = [self.student_id]
@@ -334,4 +334,7 @@
         # Also the number of the bed has changed.
         self.assertFalse(new_number == old_number)
+        # The number of occupied bed are displayed on container page.
+        self.browser.open(self.container_path)
+        self.assertTrue('1 of 8' in self.browser.contents)
         # Remove entire hostel
         self.browser.open(self.manage_container_path)
