Index: in/waeup.sirp/trunk/src/waeup/sirp/README.txt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/README.txt	(revision 6896)
+++ 	(revision )
@@ -1,130 +1,0 @@
-The waeup.sirp package
-**********************
-
-.. :doctest:
-.. :layer: waeup.sirp.testing.WAeUPSIRPUnitTestLayer
-
-A portal software for student registration.
-
-Universities
-============
-
-``University`` objects are the base of all functionality provided by
-this package.  They contain all facilities of a university.
-
-We can easily create universities::
-
-  >>> from waeup.sirp.app import University
-  >>> u = University()
-  >>> u
-  <waeup.sirp.app.University object at 0x...>
-
-Universities have a name.
-
-  >>> u.name
-  u'Sample University'
-
-Universities are basically also containers for faculties, students and
-hostels::
-
-  >>> u['faculties']
-  <waeup.sirp.university.facultycontainer.FacultyContainer object at 0x...>
-
-  >>> u['students']
-  <waeup.sirp.students.container.StudentsContainer object at 0x...>
-
-We can export universities. For this we lookup an appropriate exporter
-first::
-
-  >>> from waeup.sirp.interfaces import IWAeUPExporter
-  >>> exporter = IWAeUPExporter(u)
-  >>> exporter
-  <waeup.sirp.utils.importexport.Exporter object at 0x...>
-
-Now we can trigger the export::
-
-  >>> exporter.export()
-  <cStringIO.StringO object at 0x...>
-
-We can also get an XML representation as file. If we do not provide a
-filepath, we will get an instance of `cStringIO.StringIO`, i.e. a
-memory file::
-
-  >>> from waeup.sirp.interfaces import IWAeUPXMLExporter
-  >>> exporter = IWAeUPXMLExporter(u)
-  >>> f = exporter.export()
-  >>> f
-  <cStringIO.StringO object at 0x...>
-
-  >>> print f.read()
-  <?xml version="1.0" encoding="utf-8" ?>
-  <pickle>
-    <initialized_object id="...">
-  ...
-  </pickle>
-
-
-Faculties
-=========
-
-Faculties are containers for departments. They are intended to be
-managed by universities.
-
-We can create faculties easily::
-
-  >>> from waeup.sirp.university.faculty import Faculty
-  >>> f = Faculty()
-  >>> f
-  <waeup.sirp.university.faculty.Faculty object at 0x...>
-
-Also faculties want to be named::
-
-  >>> f.title
-  u'Unnamed Faculty'
-
-Departments
-===========
-
-
-WAeUP SIRP plugins
-==================
-
-waeup.sirp provides an API to 'plugin' components. Things that should
-be setup at creation time of a WAeUP SIRP application can indicate
-that by providing a utility providing IWAeUPSIRPPlugin.
-
-The plugins are looked up by an created app, which then will call the
-``setup()`` method of each plugin.
-
-   >>> from waeup.sirp.interfaces import IWAeUPSIRPPluggable
-   >>> from zope.component import getAdapters, getUtilitiesFor
-   >>> sorted(list(getUtilitiesFor(IWAeUPSIRPPluggable)))
-   [(u'accesscodes', <waeup.sirp.accesscodes...AccessCodePlugin ...)]
-
-
-We can provide a new plugin like this:
-
-   >>> import grok
-   >>> from waeup.sirp.interfaces import IWAeUPSIRPPluggable
-   >>> class MyPlugin(grok.GlobalUtility):
-   ...   grok.implements(IWAeUPSIRPPluggable)
-   ...   def setup(self, site, name, logger):
-   ...     print "Setup was called for"
-   ...     print site
-   ...   def update(self, site, name, logger):
-   ...     pass
-
-When we register the plugin
-
-   >>> grok.testing.grok_component('MyPlugin', MyPlugin)
-   True
-
-and setup a new WAeUP SIRP instance, we will get a message:
-
-   >>> from waeup.sirp.app import University
-   >>> site = University()
-   Setup was called for
-   <waeup.sirp.app.University object at 0x...>
-
-Apparently the plugin can do with the University object whatever it
-likes. That's what plugins are for.
Index: /main/waeup.sirp/trunk/src/waeup/sirp/app.txt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/app.txt	(revision 6896)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/app.txt	(revision 6897)
@@ -60,2 +60,84 @@
     >>> myuniversity['faculties']
     <waeup.sirp.university.facultycontainer.FacultyContainer object at 0x...>
+
+  >>> myuniversity['students']
+  <waeup.sirp.students.container.StudentsContainer object at 0x...>
+
+  >>> myuniversity['users']
+  <waeup.sirp.users.UserContainer object at 0x...>
+
+  >>> myuniversity['datacenter']
+  <waeup.sirp.datacenter.DataCenter object at 0x...>
+
+We can export universities. For this we lookup an appropriate exporter
+first::
+
+  >>> from waeup.sirp.interfaces import IWAeUPExporter
+  >>> exporter = IWAeUPExporter(myuniversity)
+  >>> exporter
+  <waeup.sirp.utils.importexport.Exporter object at 0x...>
+
+Now we can trigger the export::
+
+  >>> exporter.export()
+  <cStringIO.StringO object at 0x...>
+
+We can also get an XML representation as file. If we do not provide a
+filepath, we will get an instance of `cStringIO.StringIO`, i.e. a
+memory file::
+
+  >>> from waeup.sirp.interfaces import IWAeUPXMLExporter
+  >>> exporter = IWAeUPXMLExporter(myuniversity)
+  >>> f = exporter.export()
+  >>> f
+  <cStringIO.StringO object at 0x...>
+
+  >>> print f.read()
+  <?xml version="1.0" encoding="utf-8" ?>
+  <pickle>
+    <initialized_object id="...">
+  ...
+  </pickle>
+
+WAeUP SIRP plugins
+==================
+
+waeup.sirp provides an API to 'plugin' components. Things that should
+be setup at creation time of a WAeUP SIRP application can indicate
+that by providing a utility providing IWAeUPSIRPPlugin.
+
+The plugins are looked up by an created app, which then will call the
+``setup()`` method of each plugin.
+
+   >>> from waeup.sirp.interfaces import IWAeUPSIRPPluggable
+   >>> from zope.component import getAdapters, getUtilitiesFor
+   >>> sorted(list(getUtilitiesFor(IWAeUPSIRPPluggable)))
+   [(u'accesscodes', <waeup.sirp.accesscodes...AccessCodePlugin ...)]
+
+
+We can provide a new plugin like this:
+
+   >>> import grok
+   >>> from waeup.sirp.interfaces import IWAeUPSIRPPluggable
+   >>> class MyPlugin(grok.GlobalUtility):
+   ...   grok.implements(IWAeUPSIRPPluggable)
+   ...   def setup(self, site, name, logger):
+   ...     print "Setup was called for"
+   ...     print site
+   ...   def update(self, site, name, logger):
+   ...     pass
+
+When we register the plugin
+
+   >>> grok.testing.grok_component('MyPlugin', MyPlugin)
+   True
+
+and setup a new WAeUP SIRP instance, we will get a message:
+
+   >>> from waeup.sirp.app import University
+   >>> site = University()
+   Setup was called for
+   <waeup.sirp.app.University object at 0x...>
+
+Apparently the plugin can do with the University object whatever it
+likes. That's what plugins are for.
