Index: /waeup_product/trunk/Workflows/WAeUPWorkflow.py
===================================================================
--- /waeup_product/trunk/Workflows/WAeUPWorkflow.py	(revision 113)
+++ /waeup_product/trunk/Workflows/WAeUPWorkflow.py	(revision 114)
@@ -117,5 +117,5 @@
                     actbox_name='', actbox_category='workflow', actbox_url='',
                     props={'guard_permissions':'',
-                           'guard_roles':'StudentManager ; UniversityManager',
+                           'guard_roles':'Manager; StudentManager ; UniversityManager',
                            'guard_expr':''},)
 
@@ -135,5 +135,5 @@
                     actbox_url='',
                     props={'guard_permissions':'',
-                           'guard_roles':'StudentManager ; UniversityManager',
+                           'guard_roles':'Manager; StudentManager ; UniversityManager',
                            'guard_expr':''},)
 
@@ -154,5 +154,5 @@
                     actbox_url='',
                     props={'guard_permissions':'',
-                           'guard_roles':'StudentManager ; UniversityManager',
+                           'guard_roles':'Manager; StudentManager ; UniversityManager',
                            'guard_expr':''},)
 
Index: /waeup_product/trunk/skins/waeup_faculty/academics_view.py
===================================================================
--- /waeup_product/trunk/skins/waeup_faculty/academics_view.py	(revision 114)
+++ /waeup_product/trunk/skins/waeup_faculty/academics_view.py	(revision 114)
@@ -0,0 +1,17 @@
+##parameters=REQUEST=None,psm=None,groups=None
+# $Id$
+
+"""Default view for the forum. If post_id is not None, post with id = <post_id>
+will be displayed, otherwise first post will be displayed."""
+
+member = context.portal_membership.getAuthenticatedMember()
+
+if not context.portal_membership.isAnonymousUser():
+    if 'Manager' in member.getRoles():
+        return context.folder_view()
+index = getattr(context,'documents',None)
+if index:
+    fp = getattr(index,'academicsfrontpage',None)
+    if fp:
+        return fp() 
+return context.academics.academics_view_all(psm=psm)
Index: /waeup_product/trunk/skins/waeup_faculty/academics_view_all.pt
===================================================================
--- /waeup_product/trunk/skins/waeup_faculty/academics_view_all.pt	(revision 114)
+++ /waeup_product/trunk/skins/waeup_faculty/academics_view_all.pt	(revision 114)
@@ -0,0 +1,37 @@
+<html metal:use-macro="here/content_lib_master/macros/master">
+
+  <metal:block fill-slot="head_slot">
+    <tal:block tal:define="student here/getContent">
+    </tal:block>
+  </metal:block>
+
+  <metal:block fill-slot="css_slot">
+    <link rel="Stylesheet" type="text/css" href=""
+          tal:attributes="href string:${base_url}student.css" />
+  </metal:block>
+  <metal:block fill-slot="header">
+  </metal:block>
+
+  <metal:block fill-slot="main"
+               tal:define="items here/contentValues">
+    <h2>The Faculties</h2>
+    <table cellspacing="0" cellpadding="0">
+      <tal:block condition="python: len(items)">
+        <span tal:repeat="item items">
+          <tr tal:condition="python:item.portal_type == 'Faculty'">
+            <td colspan="1">
+              <a href="faculty" tal:attributes="href item/absolute_url" tal:content="item/title_or_id"></a>
+            </td>
+          </tr>
+        </span>
+      </tal:block>
+      <tr tal:condition="python:not len(items)">
+        <td>
+          nothing yet !
+        </td>
+      </tr>
+    </table>
+  </metal:block>
+  <metal:block fill-slot="sub">
+  </metal:block>
+</html>
Index: /waeup_product/trunk/skins/waeup_student/book_accommodation.py
===================================================================
--- /waeup_product/trunk/skins/waeup_student/book_accommodation.py	(revision 114)
+++ /waeup_product/trunk/skins/waeup_student/book_accommodation.py	(revision 114)
@@ -0,0 +1,65 @@
+##parameters=REQUEST
+# $Id$
+"""
+book an accomodation
+"""
+type_name = 'Student'
+ti = context.portal_types[type_name]
+pm = context.portal_membership
+REQUEST.set('type_name',type_name)
+
+validate = REQUEST.has_key("cpsdocument_edit_button")
+
+
+lt = context.portal_layouts
+pr = context.portal_registration
+
+res,psm,ds = lt.renderLayout(layout_id= 'accobook',
+                      schema_id= 'student',
+                      context=context,
+                      mapping=validate and REQUEST,
+                      ob={},
+                      layout_mode='create',
+                      )
+if psm == 'invalid':
+    return context.check_admission_form(rendered = res,
+                                 psm = "Please correct your input",
+                                 ds = ds,
+                                 )
+elif psm == '':
+    return context.check_admission_form(rendered = res,
+                                 psm = None,
+                                 ds = ds,
+                                 )
+elif psm == 'valid':
+    sf = context.getContent()
+    halls = getattr(context,'Accommodation').contentValues()
+    beds = []
+    student = context.PERSONAL.getContent()
+    sf = context.getContent()
+    for hall in halls:
+        h = hall.getContent()
+        ba = getattr(h,'beds_assigned',0)
+        bal = getattr(h,'beds_assigned_list',[])
+        nr_of_beds = int(h.nr_of_blocks) * int(h.nr_of_floors) * int(h.rooms_per_floor) * int(h.beds_per_room)
+        if h.which_sex == student.sex and nr_of_beds > len(bal): 
+            break
+    dict = {'heading': h.heading,
+            'text': h.text,
+            'which_sex': h.which_sex,
+            'nr_of_blocks': h.nr_of_blocks,
+            'nr_of_floors': h.nr_of_floors,
+            'rooms_per_floor': h.rooms_per_floor,
+            'beds_per_room': h.beds_per_room,
+            'nr_of_free': nr_of_beds,
+            'beds_assigned': ba,
+             }
+    ba += 1
+    dict['beds_assigned'] = ba
+    bal.append(('%s:%d' % (pm.getAuthenticatedMember(),ba)))
+    dict['beds_assigned_list'] = bal
+    psm = "h:%(heading)s free:%(nr_of_free)s %(beds_assigned)s" % dict
+    sf.edit(mapping = ds)
+    h.edit(mapping = dict)
+    #psm = "Your not admitted"
+    return context.booked_accommodation(v=dict)
Index: /waeup_product/trunk/skins/waeup_student/booked_accommodation.pt
===================================================================
--- /waeup_product/trunk/skins/waeup_student/booked_accommodation.pt	(revision 114)
+++ /waeup_product/trunk/skins/waeup_student/booked_accommodation.pt	(revision 114)
@@ -0,0 +1,14 @@
+<html metal:use-macro="here/content_lib_master/macros/master">
+  <metal:block fill-slot="head_slot">
+  </metal:block>
+  <metal:block fill-slot="header">
+  </metal:block>
+  <metal:block fill-slot="main"
+               tal:define="acco options/v"
+               >
+    you have successfully booked bed nr <span tal:content="acco/beds_assigned" /> in <span tal:content="acco/heading" />
+    of <span tal:content="acco/nr_of_free" /> now <span tal:content="acco/beds_assigned" /> assigned.
+  </metal:block>
+  <metal:block fill-slot="sub">
+  </metal:block>
+</html>
