Index: waeup/trunk/src/waeup/app.py
===================================================================
--- waeup/trunk/src/waeup/app.py	(revision 3529)
+++ waeup/trunk/src/waeup/app.py	(revision 3530)
@@ -1,6 +1,8 @@
 import grok
 from grok import index
+from zope.interface import Interface
 from interfaces import IUniversity
 from setup import app_setup
+from viewlets import MainArea
 
 class University(grok.Application, grok.Container):
@@ -12,10 +14,8 @@
         app_setup.setup(self)
 
-class Index(grok.View):
-    grok.context(University)
+class Content(grok.Viewlet):
+    grok.viewletmanager(MainArea)
+    grok.context(IUniversity)
 
-    def getFacList(self):
-        return [x for x in self.context.values()
-                if IFaculty.providedBy(x)]
 
 class Edit(grok.EditForm):
Index: waeup/trunk/src/waeup/app_templates/content.pt
===================================================================
--- waeup/trunk/src/waeup/app_templates/content.pt	(revision 3530)
+++ waeup/trunk/src/waeup/app_templates/content.pt	(revision 3530)
@@ -0,0 +1,15 @@
+  <h1>Congratulations!</h1>
+
+  <h2>Your faculties:</h2>
+
+  <ul>
+    <li tal:repeat="fac context/values">
+      <a href="." 
+	 tal:content="fac/name"
+	 tal:attributes="href python:view.url(fac)" />
+    </li>
+  </ul>
+
+  <div>
+    <a href="@@studentsearch">Search</a>
+  </div>
Index: waeup/trunk/src/waeup/app_templates/index.pt
===================================================================
--- waeup/trunk/src/waeup/app_templates/index.pt	(revision 3529)
+++ 	(revision )
@@ -1,24 +1,0 @@
-<html>
-<head>
-  <link rel="stylesheet" type="text/css"
-	tal:attributes="href static/simple.css" />
-</head>
-<body>
-  <h1>Congratulations!</h1>
-
-  <h2>Your faculties:</h2>
-
-  <ul tal:repeat="fac context/values">
-    <li>
-      <a href="." 
-	 tal:content="fac/name"
-	 tal:attributes="href python:view.url(fac)" />
-    </li>
-  </ul>
-
-  <div>
-    <a href="@@studentsearch">Search</a>
-  </div>
-
-</body>
-</html>
Index: waeup/trunk/src/waeup/app_templates/master.pt
===================================================================
--- waeup/trunk/src/waeup/app_templates/master.pt	(revision 3529)
+++ waeup/trunk/src/waeup/app_templates/master.pt	(revision 3530)
@@ -1,27 +1,30 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
-      lang="en">
-  <head>
-    <meta tal:attributes="http-equiv string:Content-Type;
-			  content string:text/html;;charset=utf-8" />
-    <-- tal:head content="structure provider:head" / -->
-  </head>
-  <body>
-
-    <!-- div id="header">
-      <tal:header content="structure provider:header" />
-    </div>
-    <div id="left">
-      <tal:left content="structure provider:left" />
-    </div -->
-    <div id="main">
-      <tal:main content="structure provider:main" />
-    </div>
-    <div style="clear:both" />
-    <!-- div id="footer">
-      <tal:footer content="structure provider:footer" />
-    </div -->
-
-  </body>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+		<meta name="robots" content="index, follow" />
+		<tal:head content="structure provider:head" />
+		<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.3.1/build/reset-fonts-grids/reset-fonts-grids.css" /> 
+		<!--  <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.3.1/build/base/base-min.css" /> -->
+		<link rel="shortcut icon" tal:attributes="href static/favicon.ico" type="image/x-icon" />
+	</head>
+	<body id="doc3" class="yui-t2">
+		<div id="hd">
+			<tal:header content="structure provider:header" />
+		</div>
+		<div id="bd">
+			<div id="yui-main">
+				<div class="yui-b">
+					<tal:main content="structure provider:main" />
+				</div>
+			</div>
+			<div id="left" class="yui-b">
+				<tal:left content="structure provider:left" />
+			</div>
+		</div>
+		<div id="ft">
+			<tal:footer content="structure provider:footer" />
+		</div>
+	</body>
 </html>
Index: waeup/trunk/src/waeup/basecontainer.py
===================================================================
--- waeup/trunk/src/waeup/basecontainer.py	(revision 3529)
+++ waeup/trunk/src/waeup/basecontainer.py	(revision 3530)
@@ -1,4 +1,5 @@
 import grok
 from baseitem import BaseItem
+from waeup.viewlets import MainArea
 
 class BaseContainer(BaseItem, grok.Container):
@@ -12,7 +13,8 @@
     specialActions = []
     
-class Index(grok.View):
+class Content(grok.Viewlet):
+    grok.viewletmanager(MainArea)
     """
-    Base view
+    Base viewlet
     """
     
Index: waeup/trunk/src/waeup/basecontainer_templates/content.pt
===================================================================
--- waeup/trunk/src/waeup/basecontainer_templates/content.pt	(revision 3530)
+++ waeup/trunk/src/waeup/basecontainer_templates/content.pt	(revision 3530)
@@ -0,0 +1,16 @@
+    <h1 tal:content="context/name"></h1>
+    <a href="" tal:attributes="href python:view.url(context.__parent__)">Up</a>
+    <table>
+        <tr>
+            <th>Name</th>
+        </tr>
+        <tr tal:repeat="item context/values">
+            <td><a href="" tal:content="item/name"
+                           tal:attributes="href python:view.url(item)"></a></td>
+        </tr>
+    </table>
+    <a href="" tal:attributes="href python:view.url(context, 'add')">Add</a>
+    <a href=""
+        tal:repeat="action context/specialActions"
+        tal:attributes="href python:view.url(context, action)"
+        tal:content="action">Add</a>
Index: waeup/trunk/src/waeup/basecontainer_templates/index.pt
===================================================================
--- waeup/trunk/src/waeup/basecontainer_templates/index.pt	(revision 3529)
+++ 	(revision )
@@ -1,24 +1,0 @@
-<html>
-<head>
-  <link rel="stylesheet" type="text/css"
-	tal:attributes="href static/simple.css" />
-</head>
-<body>
-    <h1 tal:content="context/name"></h1>
-    <a href="" tal:attributes="href python:view.url(context.__parent__)">Up</a>
-    <table>
-        <tr>
-            <th>Name</th>
-        </tr>
-        <tr tal:repeat="item context/values">
-            <td><a href="" tal:content="item/name"
-                           tal:attributes="href python:view.url(item)"></a></td>
-        </tr>
-    </table>
-    <a href="" tal:attributes="href python:view.url(context, 'add')">Add</a>
-    <a href=""
-        tal:repeat="action context/specialActions"
-        tal:attributes="href python:view.url(context, action)"
-        tal:content="action">Add</a>
-</body>
-</html>
Index: waeup/trunk/src/waeup/baseitem.py
===================================================================
--- waeup/trunk/src/waeup/baseitem.py	(revision 3529)
+++ waeup/trunk/src/waeup/baseitem.py	(revision 3530)
@@ -1,3 +1,4 @@
 import grok
+from waeup.viewlets import MainArea
 
 class BaseItem(grok.Model):
@@ -12,7 +13,8 @@
         grok.EditForm.update(self)
 
-class Index(grok.DisplayForm):
-
-    def update(self):
-        self.form_fields = grok.AutoFields(self.context.__class__)
-        grok.DisplayForm.update(self)
+#class Content(grok.Viewlet, grok.DisplayForm):
+#    grok.viewletmanager(MainArea)
+#
+#    def update(self):
+#        self.form_fields = grok.AutoFields(self.context.__class__)
+#        grok.DisplayForm.update(self)
Index: waeup/trunk/src/waeup/static/app.css
===================================================================
--- waeup/trunk/src/waeup/static/app.css	(revision 3530)
+++ waeup/trunk/src/waeup/static/app.css	(revision 3530)
@@ -0,0 +1,121 @@
+html {
+	font-family: JansonText, Georgia, Times;
+	color: black;
+	padding: 0;
+	text-align: left;
+	line-height: 1.2;
+	background-color: #FFEEBB;
+}
+
+h1,h2,h3 {
+	color: #005500;
+	font-weight: normal;
+}
+
+a {
+	text-decoration: none;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+#hd,#bd,#ft {
+	text-align: left;
+	/* vertical-align: center; */
+}
+
+#hd {
+}
+
+#logo {
+	height: 80px;
+	clear: both;
+}
+
+#logo img {
+	align: left;
+	float: left;
+	padding-right: 2em;
+	padding-left: 0.5em;
+}
+
+#logo h1 {
+	font-size: 60px;
+	font-family: Georgia, Times, serif;
+}
+
+#bd {
+	border-top: 1px solid #ccc;
+	border-bottom: 1px solid #ccc;
+}
+
+#ft {
+	padding: 0.25em;
+	/*
+	border-top: 1px solid #ccc;
+	position:absolute;
+	bottom: 0;
+	left:0;
+	height: 2em;
+	width: 100%;
+	*/
+	font-size: x-small;
+}
+
+#left {
+	border-right: 1px solid #050;
+	border-left: 1px solid #050;
+	background-color: #ccc;
+}
+
+#yui-main {
+	padding-top: 1em;
+}
+
+#yui-main .yui-b {
+}
+
+#adminbar {
+/*	border-bottom: 1px solid #ccc; */
+}
+
+.menubar {
+	width: 100%;
+	text-align: right;
+}
+
+
+.menubar ul {
+	text-align: right;
+	overflow: hidden;
+}
+
+.menubar ul li {
+	list-style-type: none;
+	display: inline;
+	background-color: #eee;
+	padding: 0.25em;
+	border: 1px solid #005500;
+	border-bottom: none;
+}
+
+.menubar ul li:hover {
+	background-color: #ddd;
+}
+
+.menubar ul li a {
+	color: black;
+	text-decoration: none;
+}
+
+.portlet {
+	padding: 1em;
+	border-bottom: 1px dotted #050;
+}
+
+.portlet h3 {
+	font-family: Verdana, Helvetica, Arial, sans-serif;
+	font-weight: bold;
+	font-size: small;
+}
Index: waeup/trunk/src/waeup/viewlets.py
===================================================================
--- waeup/trunk/src/waeup/viewlets.py	(revision 3530)
+++ waeup/trunk/src/waeup/viewlets.py	(revision 3530)
@@ -0,0 +1,61 @@
+# -*- coding: utf-8 -*-
+import grok
+import zope.interface
+from interfaces import IUniversity 
+
+grok.context(zope.interface.Interface)
+
+class Index(grok.View):
+    """main structure for all pages"""
+    grok.template('master')
+    
+    def __init__(self, context, request):#
+        super(Index, self).__init__(context, request)
+
+class Head(grok.ViewletManager):
+    """additions to HTML head"""
+    grok.name('head')
+
+class Title(grok.Viewlet):
+    grok.viewletmanager(Head)
+
+class AppCSS(grok.Viewlet):
+    grok.viewletmanager(Head)
+
+class Header(grok.ViewletManager):
+    grok.name('header')
+
+class Logo(grok.Viewlet):
+    grok.viewletmanager(Header)
+    grok.order(1)
+
+class NavigationBar(grok.Viewlet):
+    grok.viewletmanager(Header)
+    grok.order(2)
+    
+    def getSite(self):
+        return grok.getSite()
+
+class LeftSidebar(grok.ViewletManager):
+    grok.name('left')
+
+class AuthUser(grok.Viewlet):
+    grok.viewletmanager(LeftSidebar)
+    grok.view(Index)
+    grok.order(1)
+
+class Login(grok.Viewlet):
+    grok.viewletmanager(LeftSidebar)
+    grok.context(IUniversity)
+    grok.view(Index)
+    grok.order(2)
+
+class MainArea(grok.ViewletManager):
+    grok.name('main')
+
+
+class Footer(grok.ViewletManager):
+    grok.name('footer')
+
+class Copyright(grok.Viewlet):
+    grok.viewletmanager(Footer)
Index: waeup/trunk/src/waeup/viewlets_templates/appcss.pt
===================================================================
--- waeup/trunk/src/waeup/viewlets_templates/appcss.pt	(revision 3530)
+++ waeup/trunk/src/waeup/viewlets_templates/appcss.pt	(revision 3530)
@@ -0,0 +1,2 @@
+<link rel="stylesheet" type="text/css"
+    tal:attributes="href static/app.css" />
Index: waeup/trunk/src/waeup/viewlets_templates/authuser.pt
===================================================================
--- waeup/trunk/src/waeup/viewlets_templates/authuser.pt	(revision 3530)
+++ waeup/trunk/src/waeup/viewlets_templates/authuser.pt	(revision 3530)
@@ -0,0 +1,3 @@
+<div class="portlet">
+	<h3 tal:content="request/principal/title" title="you are..."></h3>
+</div>
Index: waeup/trunk/src/waeup/viewlets_templates/copyright.pt
===================================================================
--- waeup/trunk/src/waeup/viewlets_templates/copyright.pt	(revision 3530)
+++ waeup/trunk/src/waeup/viewlets_templates/copyright.pt	(revision 3530)
@@ -0,0 +1,1 @@
+<p>powered by WestAfrican eUniversity Portal, copyright 2008 WAeUP Germany.</p>
Index: waeup/trunk/src/waeup/viewlets_templates/edit_form.pt
===================================================================
--- waeup/trunk/src/waeup/viewlets_templates/edit_form.pt	(revision 3530)
+++ waeup/trunk/src/waeup/viewlets_templates/edit_form.pt	(revision 3530)
@@ -0,0 +1,57 @@
+<form action="." tal:attributes="action request/URL" method="post"
+      class="edit-form" enctype="multipart/form-data">
+
+  <h2 i18n:translate=""
+    tal:condition="view/label"
+    tal:content="view/label">Label</h2>
+
+  <div class="form-status"
+    tal:define="status view/status"
+    tal:condition="status">
+
+    <div i18n:translate="" tal:content="view/status">
+      Form status summary
+    </div>
+
+    <ul class="errors" tal:condition="view/errors">
+      <li tal:repeat="error view/error_views">
+         <span tal:replace="structure error">Error Type</span>
+      </li>
+    </ul>
+  </div>
+
+  <div class="form-fields">
+      <tal:block repeat="widget view/widgets">
+          <div class="label" tal:define="hint widget/hint">
+            <label tal:condition="python:hint"
+                   tal:attributes="for widget/name">
+              <span class="required" tal:condition="widget/required"
+              >*</span><span i18n:translate=""
+                             tal:content="widget/label">label</span>
+            </label>
+            <label tal:condition="python:not hint"
+                   tal:attributes="for widget/name">
+              <span class="required" tal:condition="widget/required"
+              >*</span><span i18n:translate=""
+                             tal:content="widget/label">label</span>
+            </label>
+          </div>
+          <div class="field">
+            <div class="widget" tal:content="structure widget">
+              <input type="text" />
+            </div>
+            <div class="error" tal:condition="widget/error">
+              <span tal:replace="structure widget/error">error</span>
+            </div>
+          </div>
+      </tal:block>
+  </div>
+
+  <div id="actionsView">
+    <span class="actionButtons" tal:condition="view/availableActions">
+      <input tal:repeat="action view/actions"
+             tal:replace="structure action/render"
+             />
+    </span>
+  </div>
+</form>
Index: waeup/trunk/src/waeup/viewlets_templates/login.pt
===================================================================
--- waeup/trunk/src/waeup/viewlets_templates/login.pt	(revision 3530)
+++ waeup/trunk/src/waeup/viewlets_templates/login.pt	(revision 3530)
@@ -0,0 +1,5 @@
+<div class="portlet">
+    <h3>Login</h3>
+    User<br /><input type="text" size="20" /><br />
+    Password<br /><input type="text" size="20" />
+</div>
Index: waeup/trunk/src/waeup/viewlets_templates/logo.pt
===================================================================
--- waeup/trunk/src/waeup/viewlets_templates/logo.pt	(revision 3530)
+++ waeup/trunk/src/waeup/viewlets_templates/logo.pt	(revision 3530)
@@ -0,0 +1,4 @@
+<div id="logo">
+    <img tal:attributes="src static/logo_waeup.gif" alt="WAeUp logo" />
+    <h1>Sample University</h1>
+</div>
Index: waeup/trunk/src/waeup/viewlets_templates/master.pt
===================================================================
--- waeup/trunk/src/waeup/viewlets_templates/master.pt	(revision 3530)
+++ waeup/trunk/src/waeup/viewlets_templates/master.pt	(revision 3530)
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+		<meta name="robots" content="index, follow" />
+		<tal:head content="structure provider:head" />
+		<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.3.1/build/reset-fonts-grids/reset-fonts-grids.css" /> 
+		<!--  <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.3.1/build/base/base-min.css" /> -->
+		<link rel="shortcut icon" tal:attributes="href static/favicon.ico" type="image/x-icon" />
+	</head>
+	<body id="doc3" class="yui-t2">
+		<div id="hd">
+			<tal:header content="structure provider:header" />
+		</div>
+		<div id="bd">
+			<div id="yui-main">
+				<div class="yui-b">
+					<tal:main content="structure provider:main" />
+				</div>
+			</div>
+			<div id="left" class="yui-b">
+				<tal:left content="structure provider:left" />
+			</div>
+		</div>
+		<div id="ft">
+			<tal:footer content="structure provider:footer" />
+		</div>
+	</body>
+</html>
Index: waeup/trunk/src/waeup/viewlets_templates/navigationbar.pt
===================================================================
--- waeup/trunk/src/waeup/viewlets_templates/navigationbar.pt	(revision 3530)
+++ waeup/trunk/src/waeup/viewlets_templates/navigationbar.pt	(revision 3530)
@@ -0,0 +1,15 @@
+<div id="adminbar" class="menubar"
+    tal:define="app viewlet/getSite">
+<!--	<ul>
+		<tal:block  tal:repeat="menuitem view/menuitems">
+			<li><a tal:attributes="href menuitem/url;title menuitem/title" tal:content="menuitem/text">Menuitem</a></li>
+		</tal:block>
+	</ul>-->
+  <ul>
+    <li tal:repeat="fac app/values">
+      <a href="." 
+	 tal:content="fac/name"
+	 tal:attributes="href python:view.url(fac)" />
+    </li>
+  </ul>
+</div>
Index: waeup/trunk/src/waeup/viewlets_templates/title.pt
===================================================================
--- waeup/trunk/src/waeup/viewlets_templates/title.pt	(revision 3530)
+++ waeup/trunk/src/waeup/viewlets_templates/title.pt	(revision 3530)
@@ -0,0 +1,1 @@
+<title>WAeUP - your way up</title>
