Index: /main/waeup.kofa/trunk/src/waeup/kofa/__init__.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/__init__.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/__init__.py	(revision 7811)
@@ -1,13 +1,13 @@
 import grok
-from waeup.sirp.interfaces import ISIRPObject
+from waeup.kofa.interfaces import IKOFAObject
 from zope.annotation.attribute import AttributeAnnotations
 from zope.annotation.interfaces import IAnnotations
 
-class SIRPAttributeAnnotations(AttributeAnnotations, grok.Adapter):
-    """An adapter to IAnnotations for any SIRPObject.
+class KOFAAttributeAnnotations(AttributeAnnotations, grok.Adapter):
+    """An adapter to IAnnotations for any KOFAObject.
 
-    Providing this adapter, each SIRP object becomes (attribute)
+    Providing this adapter, each KOFA object becomes (attribute)
     annotatable.
     """
     grok.provides(IAnnotations)
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/__init__.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/__init__.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/__init__.py	(revision 7811)
@@ -4,5 +4,5 @@
 
 Main content components are defined in
-:mod:`waeup.sirp.accesscodes.accesscode`. This subpackage also
+:mod:`waeup.kofa.accesscodes.accesscode`. This subpackage also
 provides a _catalog_ to lookup any access code quickly and a
 _workflow_ to guarantee consistent states and transitions when dealing
@@ -11,10 +11,10 @@
 We also provide UI components to generate, archive, import and
 reimport access codes or batches thereof. These parts are defined in
-:mod:`waeup.sirp.accesscodes.browser`.
+:mod:`waeup.kofa.accesscodes.browser`.
 
 The interfaces of this subpackage are defined in
-:mod:`waeup.sirp.accesscodes.interfaces`.
+:mod:`waeup.kofa.accesscodes.interfaces`.
 """
-from waeup.sirp.accesscodes.accesscode import (
+from waeup.kofa.accesscodes.accesscode import (
     get_access_code, invalidate_accesscode, disable_accesscode,
     reenable_accesscode, create_accesscode,
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/accesscode.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/accesscode.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/accesscode.py	(revision 7811)
@@ -31,10 +31,10 @@
 from hurry.workflow.interfaces import IWorkflowInfo, IWorkflowState
 from random import SystemRandom as random
-from waeup.sirp.interfaces import ISIRPPluggable, IObjectHistory
-from waeup.sirp.utils.logger import Logger
-from waeup.sirp.accesscodes.interfaces import (
+from waeup.kofa.interfaces import IKOFAPluggable, IObjectHistory
+from waeup.kofa.utils.logger import Logger
+from waeup.kofa.accesscodes.interfaces import (
     IAccessCode, IAccessCodeBatch, IAccessCodeBatchContainer
     )
-from waeup.sirp.accesscodes.workflow import DISABLED, USED, ac_states_dict
+from waeup.kofa.accesscodes.workflow import DISABLED, USED, ac_states_dict
 
 class AccessCode(grok.Model):
@@ -42,5 +42,5 @@
 
     Implements
-    :class:`waeup.sirp.accesscodes.interfaces.IAccessCode`. :class:`AccessCode`
+    :class:`waeup.kofa.accesscodes.interfaces.IAccessCode`. :class:`AccessCode`
     instances are normally part of an :class:`AccessCodeBatch` so
     their representation (or code) is built with the containing batch
@@ -68,10 +68,10 @@
     The state of an access code is something like 'used', 'disabled',
     etc. and determined by the workflow defined in
-    :mod:`waeup.sirp.accesscodes.workflow`. This also means that
+    :mod:`waeup.kofa.accesscodes.workflow`. This also means that
     instead of setting the status of an access code directly (you
     can't do that easily, and yes, that's intentionally), you have to
     trigger a transition (that might fail, if the transition is not
     allowed in terms of logic or permissions). See
-    :mod:`waeup.sirp.accesscodes.workflow` for details.
+    :mod:`waeup.kofa.accesscodes.workflow` for details.
 
     """
@@ -139,5 +139,5 @@
     @property
     def history(self):
-        """A :class:`waeup.sirp.objecthistory.ObjectHistory` instance.
+        """A :class:`waeup.kofa.objecthistory.ObjectHistory` instance.
         """
         history = IObjectHistory(self)
@@ -285,5 +285,5 @@
         If the path does not exist yet, it is created. The path is
         normally ``accesscodes/imports`` below the datacenter storage
-        path (see :data:`waeup.sirp.accesscodes.Datacenter.storage`).
+        path (see :data:`waeup.kofa.accesscodes.Datacenter.storage`).
         """
         site = grok.getSite()
@@ -403,5 +403,5 @@
         return
 
-    logger_name = 'waeup.sirp.${sitename}.accesscodes'
+    logger_name = 'waeup.kofa.${sitename}.accesscodes'
     logger_filename = 'accesscodes.log'
 
@@ -415,5 +415,5 @@
 class AccessCodePlugin(grok.GlobalUtility):
     grok.name('accesscodes')
-    grok.implements(ISIRPPluggable)
+    grok.implements(IKOFAPluggable)
 
     def setup(self, site, name, logger):
@@ -481,5 +481,5 @@
     `arg` tells what kind of transition to trigger. This will be a
     transition id like ``'use'`` or ``'init'``, or some transition
-    target like :data:`waeup.sirp.accesscodes.workflow.INITIALIZED`.
+    target like :data:`waeup.kofa.accesscodes.workflow.INITIALIZED`.
 
     If `toward` is ``False`` (the default) you have to pass a
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/accesscode.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/accesscode.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/accesscode.txt	(revision 7811)
@@ -1,11 +1,11 @@
-:mod:`waeup.sirp.accesscodes.accesscode` -- access codes (aka PINs)
+:mod:`waeup.kofa.accesscodes.accesscode` -- access codes (aka PINs)
 *******************************************************************
 
-.. module:: waeup.sirp.accesscodes.accesscode
+.. module:: waeup.kofa.accesscodes.accesscode
 
 Components that represent access codes and related.
 
 .. :NOdoctest:
-.. :NOlayer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :NOlayer: waeup.kofa.testing.KOFAUnitTestLayer
 
 About access-codes
@@ -28,5 +28,5 @@
 unique random number of 10 digits.
 
-For the generation of the random number :mod:`waeup.sirp` requires a
+For the generation of the random number :mod:`waeup.kofa` requires a
 'urandom' entropy provider which is available with most standard
 Unix/Linux systems. This makes the generated numbers relatively
@@ -57,8 +57,8 @@
 
    The class implements
-   :mod:`waeup.sirp.accesscodes.interfaces.IAccessCode`:
-
-    >>> from waeup.sirp.accesscodes.interfaces import IAccessCode
-    >>> from waeup.sirp.accesscodes.accesscodes import AccessCode
+   :mod:`waeup.kofa.accesscodes.interfaces.IAccessCode`:
+
+    >>> from waeup.kofa.accesscodes.interfaces import IAccessCode
+    >>> from waeup.kofa.accesscodes.accesscodes import AccessCode
     >>> from zope.interface.verify import verifyClass
     >>> verifyClass(IAccessCode, AccessCode)
@@ -150,5 +150,5 @@
 
    A persistent :class:`grok.Model`. It implements
-   :class:`waeup.sirp.accesscodes.interfaces.IAccessCodeBatch`.
+   :class:`waeup.kofa.accesscodes.interfaces.IAccessCodeBatch`.
 
    When creating a batch, all entries (access-codes) are generated as
@@ -306,6 +306,6 @@
 :class:`AccessCodeBatch` implements :class:`IAccessCodeBatch`:
 
-    >>> from waeup.sirp.accesscodes.interfaces import IAccessCodeBatch
-    >>> from waeup.sirp.accesscodes.accesscodes import AccessCodeBatch
+    >>> from waeup.kofa.accesscodes.interfaces import IAccessCodeBatch
+    >>> from waeup.kofa.accesscodes.accesscodes import AccessCodeBatch
     >>> from zope.interface.verify import verifyClass
     >>> verifyClass(IAccessCodeBatch, AccessCodeBatch)
@@ -317,5 +317,5 @@
 
     >>> import datetime
-    >>> from waeup.sirp.accesscodes.accesscodes import AccessCodeBatch
+    >>> from waeup.kofa.accesscodes.accesscodes import AccessCodeBatch
     >>> batch = AccessCodeBatch(
     ...   datetime.datetime(2009, 12, 23), 'Fred','APP', 12.12, 3, num=10)
@@ -331,5 +331,5 @@
 
     >>> [x for x in batch.entries()]
-    [<waeup.sirp...AccessCode object at 0x...>, ...]
+    [<waeup.kofa...AccessCode object at 0x...>, ...]
 
 Getting a single entry from the batch:
@@ -338,5 +338,5 @@
     >>> ac = batch.getAccessCode(ac_id)
     >>> ac
-    <waeup.sirp...AccessCode object at 0x...>
+    <waeup.kofa...AccessCode object at 0x...>
 
     >>> ac is list(batch.entries())[0]
@@ -374,5 +374,5 @@
 #
 #    >>> batch.getAccessCodeForStudentId('some_user_id')
-#    <waeup.sirp...AccessCode object at 0x...>
+#    <waeup.kofa...AccessCode object at 0x...>
 #
 #Non-existent values will cause a :exc:`KeyError`:
@@ -440,5 +440,5 @@
     >>> result = batch.search(0, 'serial')
     >>> result
-    [<waeup.sirp...AccessCode object at 0x...>]
+    [<waeup.kofa...AccessCode object at 0x...>]
 
     >>> result[0].batch_serial
@@ -545,5 +545,5 @@
 Creating a batch container:
 
-    >>> from waeup.sirp.accesscodes.accesscodes import (
+    >>> from waeup.kofa.accesscodes.accesscodes import (
     ...   AccessCodeBatchContainer)
     >>> container = AccessCodeBatchContainer()
@@ -561,6 +561,6 @@
 
     >>> container.search(1, 'serial')
-    [<waeup.sirp...AccessCode object at 0x...>,
-     <waeup.sirp...AccessCode object at 0x...>]
+    [<waeup.kofa...AccessCode object at 0x...>,
+     <waeup.kofa...AccessCode object at 0x...>]
 
     >>> container.search('not-a-number', 'serial')
@@ -569,6 +569,6 @@
     >>> result = container.search('1', 'serial')
     >>> result
-    [<waeup.sirp...AccessCode object at 0x...>,
-     <waeup.sirp...AccessCode object at 0x...>]
+    [<waeup.kofa...AccessCode object at 0x...>,
+     <waeup.kofa...AccessCode object at 0x...>]
 
 Searching for ACs:
@@ -576,5 +576,5 @@
     >>> ac = result[0]
     >>> container.search(ac.representation, 'pin')
-    [<waeup.sirp...AccessCode object at 0x...>]
+    [<waeup.kofa...AccessCode object at 0x...>]
 
 Searching for student IDs:
@@ -583,5 +583,5 @@
 #    ...   ac.representation, 'some_user')
 #    >>> container.search('some_user', 'stud_id')
-#    [<waeup.sirp...AccessCode object at 0x...>]
+#    [<waeup.kofa...AccessCode object at 0x...>]
 
 
@@ -591,8 +591,8 @@
 .. class:: AccessCodePlugin
 
-  A `waeup.sirp` plugin that updates existing SIRP university
+  A `waeup.kofa` plugin that updates existing KOFA university
   instances so that they provide support for access-codes.
 
-  .. attribute:: grok.implements(ISIRPPluggable)
+  .. attribute:: grok.implements(IKOFAPluggable)
   .. attribute:: grok.name('accesscodes')
 
@@ -608,5 +608,5 @@
 
   The AccessCodePlugin is available as a global named utility for the
-  ISIRPPluggable interface named ``accesscodes``.
+  IKOFAPluggable interface named ``accesscodes``.
 
   It is looked up by a university instance when created, so that this
@@ -615,8 +615,8 @@
 
     >>> from zope.component import getUtility
-    >>> from waeup.sirp.interfaces import ISIRPPluggable
-    >>> plugin = getUtility(ISIRPPluggable, name='accesscodes')
+    >>> from waeup.kofa.interfaces import IKOFAPluggable
+    >>> plugin = getUtility(IKOFAPluggable, name='accesscodes')
     >>> plugin
-    <waeup.sirp.accesscodes.accesscodes.AccessCodePlugin object at 0x...>
+    <waeup.kofa.accesscodes.accesscodes.AccessCodePlugin object at 0x...>
 
   It provides a `setup()` and an `update()` method. Both have to be
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/api.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/api.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/api.txt	(revision 7811)
@@ -1,6 +1,6 @@
-:mod:`waeup.sirp.accesscodes` -- Access Codes
+:mod:`waeup.kofa.accesscodes` -- Access Codes
 *********************************************
 
-.. module:: waeup.sirp.accesscodes
+.. module:: waeup.kofa.accesscodes
 
 Components that represent access codes and related components.
@@ -9,5 +9,5 @@
 ==========
 
-The :mod:`waeup.sirp.accesscodes` module provides the following submodules:
+The :mod:`waeup.kofa.accesscodes` module provides the following submodules:
 
 .. toctree::
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser.py	(revision 7811)
@@ -21,20 +21,20 @@
 from datetime import datetime
 from hurry.workflow.interfaces import InvalidTransitionError
-from waeup.sirp.browser.resources import datatable
-from waeup.sirp.browser import SIRPPage, SIRPAddFormPage, NullValidator
-from waeup.sirp.browser.breadcrumbs import Breadcrumb
-from waeup.sirp.browser.viewlets import (
+from waeup.kofa.browser.resources import datatable
+from waeup.kofa.browser import KOFAPage, KOFAAddFormPage, NullValidator
+from waeup.kofa.browser.breadcrumbs import Breadcrumb
+from waeup.kofa.browser.viewlets import (
     AdminTask, AddActionButton, SearchActionButton, BatchOpButton, ManageLink)
-from waeup.sirp.interfaces import ISIRPObject
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.accesscodes.interfaces import (
+from waeup.kofa.interfaces import IKOFAObject
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.accesscodes.interfaces import (
     IAccessCodeBatchContainer, IAccessCodeBatch,
     )
-from waeup.sirp.accesscodes.catalog import search
-from waeup.sirp.browser.layout import action
-
-grok.context(ISIRPObject)
-
-class BatchContainerPage(SIRPPage):
+from waeup.kofa.accesscodes.catalog import search
+from waeup.kofa.browser.layout import action
+
+grok.context(IKOFAObject)
+
+class BatchContainerPage(KOFAPage):
     grok.name('index')
     grok.context(IAccessCodeBatchContainer)
@@ -55,5 +55,5 @@
         if isinstance(batches, basestring):
             batches = [batches]
-        ob_class = self.__implemented__.__name__.replace('waeup.sirp.','')
+        ob_class = self.__implemented__.__name__.replace('waeup.kofa.','')
         for name in batches:
             batch = self.context[name]
@@ -70,5 +70,5 @@
             self.context.logger_info(ob_class, message)
 
-class AddBatchPage(SIRPAddFormPage):
+class AddBatchPage(KOFAAddFormPage):
     grok.name('add')
     grok.context(IAccessCodeBatchContainer)
@@ -92,5 +92,5 @@
             mapping = {'a':data['entry_num']}))
         self.flash(_('Data written to ${a}', mapping = {'a':csv_file}))
-        ob_class = self.__implemented__.__name__.replace('waeup.sirp.','')
+        ob_class = self.__implemented__.__name__.replace('waeup.kofa.','')
         message = 'created: %s (%d, %f)' % (
             csv_file, data['entry_num'], data['cost'])
@@ -103,5 +103,5 @@
         self.redirect(self.url(self.context))
 
-class ReimportBatchPage(SIRPPage):
+class ReimportBatchPage(KOFAPage):
     """Screen for reimporting AC batches.
     """
@@ -139,10 +139,10 @@
             self.flash(_('Successfully reimported: ${a}',
                 mapping = {'a':filename}))
-            ob_class = self.__implemented__.__name__.replace('waeup.sirp.','')
+            ob_class = self.__implemented__.__name__.replace('waeup.kofa.','')
             message = 'reimported: %s' % filename
             self.context.logger_info(ob_class, message)
         self.redirect(self.url(self.context))
 
-class BatchContainerSearchPage(SIRPPage):
+class BatchContainerSearchPage(KOFAPage):
     grok.name('search')
     grok.context(IAccessCodeBatchContainer)
@@ -174,5 +174,5 @@
         if isinstance(entries, basestring):
             entries = [entries]
-        ob_class = self.__implemented__.__name__.replace('waeup.sirp.','')
+        ob_class = self.__implemented__.__name__.replace('waeup.kofa.','')
         for entry in entries:
             if 'disable' in form:
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser.txt	(revision 7811)
@@ -1,8 +1,8 @@
-:mod:`waeup.sirp.accesscodes.browser` -- UI components for access-codes
+:mod:`waeup.kofa.accesscodes.browser` -- UI components for access-codes
 ***********************************************************************
 
-.. module:: waeup.sirp.accesscodes.browser
-
-Here we visit the access-code related parts of a SIRP site using
+.. module:: waeup.kofa.accesscodes.browser
+
+Here we visit the access-code related parts of a KOFA site using
 a virtual browser.
 
@@ -20,5 +20,5 @@
     >>> root = getRootFolder()
 
-    >>> from waeup.sirp.app import University
+    >>> from waeup.kofa.app import University
     >>> u = University()
     >>> root['myuniversity'] = u
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser_templates/batchcontainer.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser_templates/batchcontainer.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser_templates/batchcontainer.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<form i18n:domain="waeup.sirp" method="POST">
+<form i18n:domain="waeup.kofa" method="POST">
   <p i18n:translate="">
     The following batches are available:
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser_templates/reimportbatchpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser_templates/reimportbatchpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser_templates/reimportbatchpage.pt	(revision 7811)
@@ -1,7 +1,7 @@
-<p i18n:domain="waeup.sirp">
+<p i18n:domain="waeup.kofa">
 Please select the files to reimport. Please note, that batches with
 same name have to be deleted before.
 </p>
-<form method="POST" i18n:domain="waeup.sirp">
+<form method="POST" i18n:domain="waeup.kofa">
   <table>
     <thead>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser_templates/searchpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser_templates/searchpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser_templates/searchpage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<form method="POST" i18n:domain="waeup.sirp">
+<form method="POST" i18n:domain="waeup.kofa">
 <br />
   <input type="submit" class="btn primary" name="search"
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/catalog.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/catalog.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/catalog.py	(revision 7811)
@@ -23,6 +23,6 @@
 from hurry.query.query import Query
 from zope.index.text.parsetree import ParseError
-from waeup.sirp.interfaces import IUniversity, IQueryResultItem
-from waeup.sirp.accesscodes.interfaces import IAccessCode
+from waeup.kofa.interfaces import IUniversity, IQueryResultItem
+from waeup.kofa.accesscodes.interfaces import IAccessCode
 
 class AccessCodeIndexes(grok.Indexes):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/interfaces.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/interfaces.py	(revision 7811)
@@ -20,8 +20,8 @@
 from zope import schema
 from zope.interface import Interface
-from waeup.sirp.interfaces import ISIRPObject
-from waeup.sirp.interfaces import MessageFactory as _
+from waeup.kofa.interfaces import IKOFAObject
+from waeup.kofa.interfaces import MessageFactory as _
 
-class IAccessCode(ISIRPObject):
+class IAccessCode(IKOFAObject):
     """An access code.
     """
@@ -92,5 +92,5 @@
         )
 
-class IAccessCodeBatchContainer(ISIRPObject):
+class IAccessCodeBatchContainer(IKOFAObject):
     """A container for access code batches.
     """
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/tests/test_accesscode.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/tests/test_accesscode.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/tests/test_accesscode.py	(revision 7811)
@@ -28,15 +28,15 @@
 from zope.interface.verify import verifyObject, verifyClass
 from zope.testing import renormalizing
-from waeup.sirp.app import University
-from waeup.sirp.interfaces import IObjectHistory, ISIRPPluggable
-from waeup.sirp.testing import (
+from waeup.kofa.app import University
+from waeup.kofa.interfaces import IObjectHistory, IKOFAPluggable
+from waeup.kofa.testing import (
     FunctionalLayer, FunctionalTestCase, setUp, tearDown, getRootFolder)
-from waeup.sirp.accesscodes.accesscode import (
+from waeup.kofa.accesscodes.accesscode import (
     AccessCodeBatch, get_access_code, invalidate_accesscode, AccessCode,
     disable_accesscode, reenable_accesscode, fire_transition,
     AccessCodeBatchContainer, AccessCodePlugin)
-from waeup.sirp.accesscodes.interfaces import (
+from waeup.kofa.accesscodes.interfaces import (
     IAccessCode, IAccessCodeBatch,  IAccessCodeBatchContainer,)
-from waeup.sirp.accesscodes.workflow import INITIALIZED, USED, DISABLED
+from waeup.kofa.accesscodes.workflow import INITIALIZED, USED, DISABLED
 
 
@@ -412,6 +412,6 @@
     def test_iface(self):
         plugin = AccessCodePlugin()
-        assert verifyObject(ISIRPPluggable, plugin)
-        assert verifyClass(ISIRPPluggable, AccessCodePlugin)
+        assert verifyObject(IKOFAPluggable, plugin)
+        assert verifyClass(IKOFAPluggable, AccessCodePlugin)
 
     def test_update_w_ac_container(self):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/tests/test_catalog.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/tests/test_catalog.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/tests/test_catalog.py	(revision 7811)
@@ -22,11 +22,11 @@
 from zope.component.hooks import setSite
 from zope.interface.verify import verifyClass, verifyObject
-from waeup.sirp.app import University
-from waeup.sirp.interfaces import IQueryResultItem
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.accesscodes.accesscode import (
+from waeup.kofa.app import University
+from waeup.kofa.interfaces import IQueryResultItem
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.accesscodes.accesscode import (
     AccessCodeBatch, invalidate_accesscode, disable_accesscode)
-from waeup.sirp.accesscodes.workflow import INITIALIZED, USED, DISABLED
-from waeup.sirp.accesscodes.catalog import AccessCodeQueryResultItem, search
+from waeup.kofa.accesscodes.workflow import INITIALIZED, USED, DISABLED
+from waeup.kofa.accesscodes.catalog import AccessCodeQueryResultItem, search
 
 class CatalogTestSetup(FunctionalTestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/tests/test_workflow.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/tests/test_workflow.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/tests/test_workflow.py	(revision 7811)
@@ -18,6 +18,6 @@
 import shutil
 import tempfile
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.accesscodes.workflow import (
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.accesscodes.workflow import (
     invalidate_action, disable_used_action, disable_unused_action,
     reenable_action,
Index: /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/workflow.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/workflow.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/workflow.py	(revision 7811)
@@ -25,8 +25,8 @@
 from hurry.workflow.workflow import Transition, WorkflowState, NullCondition
 from hurry.workflow.interfaces import IWorkflowState, IWorkflowTransitionEvent
-from waeup.sirp.accesscodes.interfaces import IAccessCode
-from waeup.sirp.interfaces import IObjectHistory, ISIRPWorkflowInfo
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.workflow import SIRPWorkflow, SIRPWorkflowInfo
+from waeup.kofa.accesscodes.interfaces import IAccessCode
+from waeup.kofa.interfaces import IObjectHistory, IKOFAWorkflowInfo
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.workflow import KOFAWorkflow, KOFAWorkflowInfo
 
 INITIALIZED = 'initialized'
@@ -113,5 +113,5 @@
     )
 
-accesscode_workflow = SIRPWorkflow(ACCESSCODE_TRANSITIONS)
+accesscode_workflow = KOFAWorkflow(ACCESSCODE_TRANSITIONS)
 
 class AccessCodeWorkflowState(WorkflowState, grok.Adapter):
@@ -122,7 +122,7 @@
     state_id = 'wf.accesscode.id'
 
-class AccessCodeWorkflowInfo(SIRPWorkflowInfo, grok.Adapter):
+class AccessCodeWorkflowInfo(KOFAWorkflowInfo, grok.Adapter):
     grok.context(IAccessCode)
-    grok.provides(ISIRPWorkflowInfo)
+    grok.provides(IKOFAWorkflowInfo)
 
     def __init__(self, context):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/app.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/app.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/app.py	(revision 7811)
@@ -21,14 +21,14 @@
 from zope.component.interfaces import ObjectEvent
 from zope.pluggableauth import PluggableAuthentication
-from waeup.sirp.authentication import setup_authentication
-from waeup.sirp.datacenter import DataCenter
-from waeup.sirp.students.container import StudentsContainer
-from waeup.sirp.hostels.container import HostelsContainer
-from waeup.sirp.interfaces import (
-    IUniversity, ISIRPPluggable, IObjectUpgradeEvent, )
-from waeup.sirp.userscontainer import UsersContainer
-from waeup.sirp.utils.logger import Logger
-from waeup.sirp.utils.helpers import attrs_to_fields
-from waeup.sirp.configuration import ConfigurationContainer
+from waeup.kofa.authentication import setup_authentication
+from waeup.kofa.datacenter import DataCenter
+from waeup.kofa.students.container import StudentsContainer
+from waeup.kofa.hostels.container import HostelsContainer
+from waeup.kofa.interfaces import (
+    IUniversity, IKOFAPluggable, IObjectUpgradeEvent, )
+from waeup.kofa.userscontainer import UsersContainer
+from waeup.kofa.utils.logger import Logger
+from waeup.kofa.utils.helpers import attrs_to_fields
+from waeup.kofa.configuration import ConfigurationContainer
 
 class University(grok.Application, grok.Container, Logger):
@@ -64,5 +64,5 @@
         """Create instances of all plugins defined somewhere.
         """
-        for name, plugin in getUtilitiesFor(ISIRPPluggable):
+        for name, plugin in getUtilitiesFor(IKOFAPluggable):
             plugin.setup(self, name, self.logger)
         return
@@ -76,5 +76,5 @@
         self.logger.info('Done.')
         self.logger.info('Now upgrading any plugins.')
-        for name, plugin in getUtilitiesFor(ISIRPPluggable):
+        for name, plugin in getUtilitiesFor(IKOFAPluggable):
             plugin.update(self, name, self.logger)
         self.logger.info('Plugin update finished.')
Index: /main/waeup.kofa/trunk/src/waeup/kofa/app.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/app.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/app.txt	(revision 7811)
@@ -1,13 +1,13 @@
-:mod:`waeup.sirp.app` -- central components for SIRP
+:mod:`waeup.kofa.app` -- central components for KOFA
 ****************************************************
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
-.. module:: waeup.sirp.app
+.. module:: waeup.kofa.app
 
 .. class:: University
 
-  The main SIRP application object is given with
+  The main KOFA application object is given with
   :class:`University`. It provides the main containers as faculties,
   hostels, etc.
@@ -21,5 +21,5 @@
      An arbitrary object containing "faculties". In the case of
      `University` it is a container of type
-     `waeup.sirp.interfaces.IFacultiesContainer`.
+     `waeup.kofa.interfaces.IFacultiesContainer`.
 
 
@@ -37,14 +37,14 @@
 instance:
 
-    >>> from waeup.sirp.app import University
+    >>> from waeup.kofa.app import University
     >>> myuniversity = University()
     >>> myuniversity
-    <waeup.sirp.app.University object at 0x...>
+    <waeup.kofa.app.University object at 0x...>
 
 Instances of `University` comply with the interface
-`waeup.sirp.interfaces.IUniversity`:
+`waeup.kofa.interfaces.IUniversity`:
 
     >>> from zope.interface.verify import verifyClass
-    >>> from waeup.sirp.interfaces import IUniversity
+    >>> from waeup.kofa.interfaces import IUniversity
     >>> verifyClass(IUniversity, University)
     True
@@ -53,5 +53,5 @@
 interface:
 
-    >>> from waeup.sirp.app import University
+    >>> from waeup.kofa.app import University
     >>> myuniversity = University()
     >>> myuniversity['configuration'].name
@@ -59,25 +59,25 @@
 
     >>> myuniversity['faculties']
-    <waeup.sirp.university.facultiescontainer.FacultiesContainer object at 0x...>
+    <waeup.kofa.university.facultiescontainer.FacultiesContainer object at 0x...>
 
   >>> myuniversity['students']
-  <waeup.sirp.students.container.StudentsContainer object at 0x...>
+  <waeup.kofa.students.container.StudentsContainer object at 0x...>
 
   >>> myuniversity['users']
-  <waeup.sirp.userscontainer.UsersContainer object at 0x...>
+  <waeup.kofa.userscontainer.UsersContainer object at 0x...>
 
   >>> myuniversity['datacenter']
-  <waeup.sirp.datacenter.DataCenter object at 0x...>
+  <waeup.kofa.datacenter.DataCenter object at 0x...>
 
   >>> myuniversity['configuration']
-  <waeup.sirp.configuration.ConfigurationContainer object at 0x...>
+  <waeup.kofa.configuration.ConfigurationContainer object at 0x...>
 
 We can export universities. For this we lookup an appropriate exporter
 first::
 
-  >>> from waeup.sirp.interfaces import ISIRPExporter
-  >>> exporter = ISIRPExporter(myuniversity)
+  >>> from waeup.kofa.interfaces import IKOFAExporter
+  >>> exporter = IKOFAExporter(myuniversity)
   >>> exporter
-  <waeup.sirp.utils.importexport.Exporter object at 0x...>
+  <waeup.kofa.utils.importexport.Exporter object at 0x...>
 
 Now we can trigger the export::
@@ -90,6 +90,6 @@
 memory file::
 
-  >>> from waeup.sirp.interfaces import ISIRPXMLExporter
-  >>> exporter = ISIRPXMLExporter(myuniversity)
+  >>> from waeup.kofa.interfaces import IKOFAXMLExporter
+  >>> exporter = IKOFAXMLExporter(myuniversity)
   >>> f = exporter.export()
   >>> f
@@ -103,18 +103,18 @@
   </pickle>
 
-SIRP plugins
+KOFA plugins
 ============
 
-waeup.sirp provides an API to 'plugin' components. Things that should
-be setup at creation time of a SIRP application can indicate
-that by providing a utility providing ISIRPPlugin.
+waeup.kofa provides an API to 'plugin' components. Things that should
+be setup at creation time of a KOFA application can indicate
+that by providing a utility providing IKOFAPlugin.
 
 The plugins are looked up by an created app, which then will call the
 ``setup()`` method of each plugin.
 
-   >>> from waeup.sirp.interfaces import ISIRPPluggable
+   >>> from waeup.kofa.interfaces import IKOFAPluggable
    >>> from zope.component import getAdapters, getUtilitiesFor
-   >>> sorted(list(getUtilitiesFor(ISIRPPluggable)))
-   [(u'accesscodes', <waeup.sirp.accesscodes...AccessCodePlugin ...)]
+   >>> sorted(list(getUtilitiesFor(IKOFAPluggable)))
+   [(u'accesscodes', <waeup.kofa.accesscodes...AccessCodePlugin ...)]
 
 
@@ -122,7 +122,7 @@
 
    >>> import grok
-   >>> from waeup.sirp.interfaces import ISIRPPluggable
+   >>> from waeup.kofa.interfaces import IKOFAPluggable
    >>> class MyPlugin(grok.GlobalUtility):
-   ...   grok.implements(ISIRPPluggable)
+   ...   grok.implements(IKOFAPluggable)
    ...   def setup(self, site, name, logger):
    ...     print "Setup was called for"
@@ -136,10 +136,10 @@
    True
 
-and setup a new SIRP instance, we will get a message:
+and setup a new KOFA instance, we will get a message:
 
-   >>> from waeup.sirp.app import University
+   >>> from waeup.kofa.app import University
    >>> site = University()
    Setup was called for
-   <waeup.sirp.app.University object at 0x...>
+   <waeup.kofa.app.University object at 0x...>
 
 Apparently the plugin can do with the University object whatever it
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/__init__.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/__init__.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/__init__.py	(revision 7811)
@@ -2,11 +2,11 @@
 """
 # Make this a package.
-from waeup.sirp.applicants.applicant import (
+from waeup.kofa.applicants.applicant import (
     Applicant, ApplicantFactory, ApplicantImageStoreHandler,
     ApplicantImageNameChooser,
     )
-from waeup.sirp.applicants.container import ApplicantsContainer
-from waeup.sirp.applicants.root import ApplicantsRoot
-from waeup.sirp.applicants.dynamicroles import (
+from waeup.kofa.applicants.container import ApplicantsContainer
+from waeup.kofa.applicants.root import ApplicantsRoot
+from waeup.kofa.applicants.dynamicroles import (
     ApplicantPrincipalRoleManager,)
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/applicant.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/applicant.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/applicant.py	(revision 7811)
@@ -26,14 +26,14 @@
 from zope.interface import implementedBy
 from hurry.workflow.interfaces import IWorkflowInfo, IWorkflowState
-from waeup.sirp.app import University
-from waeup.sirp.image import SIRPImageFile
-from waeup.sirp.imagestorage import DefaultFileStoreHandler
-from waeup.sirp.interfaces import (
-    IObjectHistory, IFileStoreHandler, IFileStoreNameChooser, ISIRPUtils,
+from waeup.kofa.app import University
+from waeup.kofa.image import KOFAImageFile
+from waeup.kofa.imagestorage import DefaultFileStoreHandler
+from waeup.kofa.interfaces import (
+    IObjectHistory, IFileStoreHandler, IFileStoreNameChooser, IKOFAUtils,
     IExtFileStore, IPDF, IUserAccount)
-from waeup.sirp.students.vocabularies import RegNumNotInSource
-from waeup.sirp.utils.helpers import attrs_to_fields
-from waeup.sirp.applicants.interfaces import IApplicant, IApplicantEdit
-from waeup.sirp.applicants.workflow import application_states_dict
+from waeup.kofa.students.vocabularies import RegNumNotInSource
+from waeup.kofa.utils.helpers import attrs_to_fields
+from waeup.kofa.applicants.interfaces import IApplicant, IApplicantEdit
+from waeup.kofa.applicants.workflow import application_states_dict
 
 class Applicant(grok.Container):
@@ -76,6 +76,6 @@
     def display_fullname(self):
         middlename = getattr(self, 'middlename', None)
-        sirp_utils = getUtility(ISIRPUtils)
-        return sirp_utils.fullname(self.firstname, self.lastname, middlename)
+        kofa_utils = getUtility(IKOFAUtils)
+        return kofa_utils.fullname(self.firstname, self.lastname, middlename)
 
     def createStudent(self, view=None):
@@ -196,5 +196,5 @@
 
     This chooser is registered as an adapter providing
-    :class:`waeup.sirp.interfaces.IFileStoreNameChooser`.
+    :class:`waeup.kofa.interfaces.IFileStoreNameChooser`.
 
     File store name choosers like this one are only convenience
@@ -203,5 +203,5 @@
     manually setting up filenames for applicants.
 
-    .. seealso:: :mod:`waeup.sirp.imagestorage`
+    .. seealso:: :mod:`waeup.kofa.imagestorage`
 
     """
@@ -291,5 +291,5 @@
             ApplicantImageStoreHandler, self).createFile(
             store, root,  filename, file_id, file)
-        return file, path, SIRPImageFile(
+        return file, path, KOFAImageFile(
             file_obj.filename, file_obj.data)
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/authentication.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/authentication.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/authentication.py	(revision 7811)
@@ -21,7 +21,7 @@
 import grok
 from zope.pluggableauth.interfaces import IAuthenticatorPlugin
-from waeup.sirp.interfaces import IAuthPluginUtility, IUserAccount
-from waeup.sirp.applicants.interfaces import IApplicant
-from waeup.sirp.students.authentication import (
+from waeup.kofa.interfaces import IAuthPluginUtility, IUserAccount
+from waeup.kofa.applicants.interfaces import IApplicant
+from waeup.kofa.students.authentication import (
     StudentAccount, StudentsAuthenticatorPlugin)
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/batching.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/batching.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/batching.py	(revision 7811)
@@ -24,8 +24,8 @@
 from zope.component import queryUtility
 from zope.catalog.interfaces import ICatalog
-from waeup.sirp.interfaces import (
+from waeup.kofa.interfaces import (
     IBatchProcessor, IObjectConverter, FatalCSVError)
-from waeup.sirp.utils.batching import BatchProcessor
-from waeup.sirp.applicants.interfaces import (
+from waeup.kofa.utils.batching import BatchProcessor
+from waeup.kofa.applicants.interfaces import (
     IApplicantsContainer, IApplicant, IApplicantUpdateByRegNo)
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser.py	(revision 7811)
@@ -28,35 +28,35 @@
 from hurry.workflow.interfaces import (
     IWorkflowInfo, IWorkflowState, InvalidTransitionError)
-from waeup.sirp.applicants.interfaces import (
+from waeup.kofa.applicants.interfaces import (
     IApplicant, IApplicantEdit, IApplicantsRoot,
     IApplicantsContainer, IApplicantsContainerAdd,
     MAX_UPLOAD_SIZE, IApplicantOnlinePayment, IApplicantsUtils
     )
-from waeup.sirp.applicants.workflow import INITIALIZED, STARTED, PAID, SUBMITTED
-from waeup.sirp.browser import (
-    SIRPPage, SIRPEditFormPage, SIRPAddFormPage, SIRPDisplayFormPage,
+from waeup.kofa.applicants.workflow import INITIALIZED, STARTED, PAID, SUBMITTED
+from waeup.kofa.browser import (
+    KOFAPage, KOFAEditFormPage, KOFAAddFormPage, KOFADisplayFormPage,
     DEFAULT_PASSPORT_IMAGE_PATH)
-from waeup.sirp.browser.interfaces import ICaptchaManager
-from waeup.sirp.browser.breadcrumbs import Breadcrumb
-from waeup.sirp.browser.layout import (
+from waeup.kofa.browser.interfaces import ICaptchaManager
+from waeup.kofa.browser.breadcrumbs import Breadcrumb
+from waeup.kofa.browser.layout import (
     NullValidator, jsaction, action, UtilityView)
-from waeup.sirp.browser.pages import add_local_role, del_local_roles
-from waeup.sirp.browser.resources import datepicker, tabs, datatable, warning
-from waeup.sirp.interfaces import (
-    ISIRPObject, ILocalRolesAssignable, IExtFileStore, IPDF,
-    IFileStoreNameChooser, IPasswordValidator, IUserAccount, ISIRPUtils)
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.permissions import get_users_with_local_roles
-from waeup.sirp.students.interfaces import IStudentsUtils
-from waeup.sirp.utils.helpers import string_from_bytes, file_size
-from waeup.sirp.widgets.datewidget import (
+from waeup.kofa.browser.pages import add_local_role, del_local_roles
+from waeup.kofa.browser.resources import datepicker, tabs, datatable, warning
+from waeup.kofa.interfaces import (
+    IKOFAObject, ILocalRolesAssignable, IExtFileStore, IPDF,
+    IFileStoreNameChooser, IPasswordValidator, IUserAccount, IKOFAUtils)
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.permissions import get_users_with_local_roles
+from waeup.kofa.students.interfaces import IStudentsUtils
+from waeup.kofa.utils.helpers import string_from_bytes, file_size
+from waeup.kofa.widgets.datewidget import (
     FriendlyDateWidget, FriendlyDateDisplayWidget,
     FriendlyDatetimeDisplayWidget)
-from waeup.sirp.widgets.phonewidget import PhoneWidget
-from waeup.sirp.widgets.restwidget import ReSTDisplayWidget
-
-grok.context(ISIRPObject) # Make ISIRPObject the default context
-
-class ApplicantsRootPage(SIRPPage):
+from waeup.kofa.widgets.phonewidget import PhoneWidget
+from waeup.kofa.widgets.restwidget import ReSTDisplayWidget
+
+grok.context(IKOFAObject) # Make IKOFAObject the default context
+
+class ApplicantsRootPage(KOFAPage):
     grok.context(IApplicantsRoot)
     grok.name('index')
@@ -70,5 +70,5 @@
         return
 
-class ApplicantsRootManageFormPage(SIRPEditFormPage):
+class ApplicantsRootManageFormPage(KOFAEditFormPage):
     grok.context(IApplicantsRoot)
     grok.name('manage')
@@ -141,5 +141,5 @@
         return del_local_roles(self,3,**data)
 
-class ApplicantsContainerAddFormPage(SIRPAddFormPage):
+class ApplicantsContainerAddFormPage(KOFAAddFormPage):
     grok.context(IApplicantsRoot)
     grok.require('waeup.manageApplication')
@@ -215,5 +215,5 @@
         return self.context.p_id
 
-class ApplicantsContainerPage(SIRPDisplayFormPage):
+class ApplicantsContainerPage(KOFADisplayFormPage):
     """The standard view for regular applicant containers.
     """
@@ -232,6 +232,6 @@
     @property
     def introduction(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        lang = self.request.cookies.get('sirp.language', portal_language)
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        lang = self.request.cookies.get('kofa.language', portal_language)
         html = self.context.description_dict.get(lang,'')
         if html =='':
@@ -246,5 +246,5 @@
         return "%s" % self.context.title
 
-class ApplicantsContainerManageFormPage(SIRPEditFormPage):
+class ApplicantsContainerManageFormPage(KOFAEditFormPage):
     grok.context(IApplicantsContainer)
     grok.name('manage')
@@ -349,5 +349,5 @@
         return del_local_roles(self,3,**data)
 
-class ApplicantAddFormPage(SIRPAddFormPage):
+class ApplicantAddFormPage(KOFAAddFormPage):
     """Add-form to add an applicant.
     """
@@ -372,5 +372,5 @@
         return
 
-class ApplicantDisplayFormPage(SIRPDisplayFormPage):
+class ApplicantDisplayFormPage(KOFADisplayFormPage):
     grok.context(IApplicant)
     grok.name('index')
@@ -484,5 +484,5 @@
 
 
-class OnlinePaymentDisplayFormPage(SIRPDisplayFormPage):
+class OnlinePaymentDisplayFormPage(KOFADisplayFormPage):
     """ Page to view an online payment ticket
     """
@@ -524,5 +524,5 @@
         self.context.p_state = 'paid'
         self.context.payment_date = datetime.now()
-        ob_class = self.__implemented__.__name__.replace('waeup.sirp.','')
+        ob_class = self.__implemented__.__name__.replace('waeup.kofa.','')
         self.context.__parent__.loggerInfo(
             ob_class, 'valid callback: %s' % self.context.p_id)
@@ -547,13 +547,13 @@
     @property
     def title(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        return translate(_('Payment Data'), 'waeup.sirp',
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        return translate(_('Payment Data'), 'waeup.kofa',
             target_language=portal_language)
 
     @property
     def label(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         return translate(_('Online Payment Receipt'),
-            'waeup.sirp', target_language=portal_language) \
+            'waeup.kofa', target_language=portal_language) \
             + ' %s' % self.context.p_id
 
@@ -582,8 +582,8 @@
     #@property
     #def label(self):
-    #    portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+    #    portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
     #    container_title = self.context.__parent__.title
     #    label = translate('Application Record',
-    #        'waeup.sirp', target_language=portal_language)
+    #        'waeup.kofa', target_language=portal_language)
     #    return container_title +  label + self.context.application_number
 
@@ -638,5 +638,5 @@
     return True
 
-class ApplicantManageFormPage(SIRPEditFormPage):
+class ApplicantManageFormPage(KOFAEditFormPage):
     """A full edit view for applicant data.
     """
@@ -716,5 +716,5 @@
             self.wf_info.fireTransition(trans_id)
         self.flash(_('Form has been saved.'))
-        ob_class = self.__implemented__.__name__.replace('waeup.sirp.','')
+        ob_class = self.__implemented__.__name__.replace('waeup.kofa.','')
         if fields_string:
             self.context.loggerInfo(ob_class, 'saved: % s' % fields_string)
@@ -748,5 +748,5 @@
             self.flash(_('Successfully removed: ${a}',
                 mapping = {'a':', '.join(deleted)}))
-            ob_class = self.__implemented__.__name__.replace('waeup.sirp.','')
+            ob_class = self.__implemented__.__name__.replace('waeup.kofa.','')
             self.context.loggerInfo(
                 ob_class, 'removed: % s' % ', '.join(deleted))
@@ -883,5 +883,5 @@
         return image
 
-class ApplicantRegistrationPage(SIRPAddFormPage):
+class ApplicantRegistrationPage(KOFAAddFormPage):
     """Captcha'd registration page for applicants.
     """
@@ -926,11 +926,11 @@
         self.applyData(applicant, **data)
         self.context.addApplicant(applicant)
-        sirp_utils = getUtility(ISIRPUtils)
-        password = sirp_utils.genPassword()
+        kofa_utils = getUtility(IKOFAUtils)
+        password = kofa_utils.genPassword()
         IUserAccount(applicant).setPassword(password)
         # Send email with credentials
         login_url = self.url(grok.getSite(), 'login')
         msg = _('You have successfully been registered for the')
-        if sirp_utils.sendCredentials(IUserAccount(applicant),
+        if kofa_utils.sendCredentials(IUserAccount(applicant),
             password, login_url, msg):
             self.redirect(self.url(self.context, 'registration_complete',
@@ -941,5 +941,5 @@
         return
 
-class ApplicantRegistrationEmailSent(SIRPPage):
+class ApplicantRegistrationEmailSent(KOFAPage):
     """Landing page after successful registration.
     """
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantdisplaypage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantdisplaypage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantdisplaypage.pt	(revision 7811)
@@ -11,5 +11,5 @@
 <img src="" tal:attributes="src view/passport_url" />
 
-<table i18n:domain="waeup.sirp" class="form-table">
+<table i18n:domain="waeup.kofa" class="form-table">
   <tbody>
     <tal:block repeat="widget view/widgets">
@@ -41,8 +41,8 @@
   </tbody>
 </table>
-<h3  i18n:domain="waeup.sirp" i18n:translate="">
+<h3  i18n:domain="waeup.kofa" i18n:translate="">
     Acceptance Fee Payment Tickets
 </h3>
-<table i18n:domain="waeup.sirp">
+<table i18n:domain="waeup.kofa">
   <thead>
     <tr>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicanteditpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicanteditpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicanteditpage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="post"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <h2>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantregemailsent.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantregemailsent.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantregemailsent.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<div i18n:domain="waeup.sirp">
+<div i18n:domain="waeup.kofa">
   <p>
     <span i18n:translate=""> An email with your user name and password
@@ -10,5 +10,5 @@
   </p>
   <p  i18n:translate="">
-    Thanks for using SIRP!
+    Thanks for using Kofa!
   </p>
 </div>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantregister.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantregister.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantregister.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="post"
-    i18n:domain="waeup.sirp" enctype="multipart/form-data">
+    i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <table class="form-table">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantscontainermanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantscontainermanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantscontainermanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-  i18n:domain="waeup.sirp" class="edit-form" enctype="multipart/form-data">
+  i18n:domain="waeup.kofa" class="edit-form" enctype="multipart/form-data">
 
   <ul class="tabs" data-tabs="tabs">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantsrootmanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantsrootmanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantsrootmanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL"
-  i18n:domain="waeup.sirp" method="POST"  enctype="multipart/form-data">
+  i18n:domain="waeup.kofa" method="POST"  enctype="multipart/form-data">
   <ul class="tabs" data-tabs="tabs">
     <li class="active">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantsrootpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantsrootpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser_templates/applicantsrootpage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<table i18n:domain="waeup.sirp">
+<table i18n:domain="waeup.kofa">
   <thead>
     <tr>
@@ -11,5 +11,5 @@
     <tr tal:repeat="entry context/values" class="gradeC">
       <td tal:content="entry/year">Year
-      </td>	
+      </td>
       <td tal:content="entry/__name__">CODE
       </td>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/container.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/container.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/container.py	(revision 7811)
@@ -23,9 +23,9 @@
 from zope.component.factory import Factory
 from zope.component.interfaces import IFactory
-from waeup.sirp.applicants.interfaces import (
+from waeup.kofa.applicants.interfaces import (
     IApplicantsContainer, IApplicantsContainerAdd,
     IApplicantsContainerProvider, IApplicant
     )
-from waeup.sirp.utils.helpers import attrs_to_fields
+from waeup.kofa.utils.helpers import attrs_to_fields
 
 def generate_applicant_id(container=None):
@@ -111,5 +111,5 @@
     """
     grok.implements(IApplicantsContainerProvider)
-    grok.name('waeup.sirp.applicants.ApplicantsContainer')
+    grok.name('waeup.kofa.applicants.ApplicantsContainer')
 
     #: The applicants container type this provider provides:
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/dynamicroles.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/dynamicroles.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/dynamicroles.py	(revision 7811)
@@ -24,6 +24,6 @@
 import grok
 from zope.securitypolicy.interfaces import IPrincipalRoleManager
-from waeup.sirp.applicants.interfaces import IApplicant
-from waeup.sirp.students.dynamicroles import StudentPrincipalRoleManager
+from waeup.kofa.applicants.interfaces import IApplicant
+from waeup.kofa.students.dynamicroles import StudentPrincipalRoleManager
 
 # All components in here have the same context: Applicant instances
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/interfaces.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/interfaces.py	(revision 7811)
@@ -27,13 +27,13 @@
 from zope.schema.interfaces import (
     ValidationError, ISource, IContextSourceBinder)
-from waeup.sirp.schema import TextLineChoice
-from waeup.sirp.interfaces import (
-    ISIRPObject, year_range, validate_email, academic_sessions_vocab)
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.payments.interfaces import IOnlinePayment
-from waeup.sirp.schoolgrades import ResultEntryField
-from waeup.sirp.students.vocabularies import (
+from waeup.kofa.schema import TextLineChoice
+from waeup.kofa.interfaces import (
+    IKOFAObject, year_range, validate_email, academic_sessions_vocab)
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.payments.interfaces import IOnlinePayment
+from waeup.kofa.schoolgrades import ResultEntryField
+from waeup.kofa.students.vocabularies import (
     lgas_vocab, CertificateSource, GenderSource)
-from waeup.sirp.university.vocabularies import (
+from waeup.kofa.university.vocabularies import (
     course_levels, AppCatSource)
 
@@ -178,10 +178,10 @@
     pass
 
-class IApplicantsRoot(ISIRPObject, IContainer):
+class IApplicantsRoot(IKOFAObject, IContainer):
     """A container for university applicants containers.
     """
     pass
 
-class IApplicantsContainer(ISIRPObject):
+class IApplicantsContainer(IKOFAObject):
     """An applicants container contains university applicants.
 
@@ -352,5 +352,5 @@
     'provider'].order =  IApplicantsContainer['provider'].order
 
-class IApplicantBaseData(ISIRPObject):
+class IApplicantBaseData(IKOFAObject):
     """The data for an applicant.
 
@@ -361,5 +361,5 @@
 
     This base interface is also implemented by the
-    :class:`waeup.sirp.students.StudentApplication` class in the
+    :class:`waeup.kofa.students.StudentApplication` class in the
     students package. Thus, these are the data which are saved after
     admission.
@@ -589,5 +589,5 @@
 
       import grok
-      from waeup.sirp.applicants.interfaces import IApplicantsContainerProvider
+      from waeup.kofa.applicants.interfaces import IApplicantsContainerProvider
 
       class MyContainerProvider(grok.GlobalUtility):
@@ -601,5 +601,5 @@
 
       >>> from zope.component import getAllUtilitiesRegisteredFor
-      >>> from waeup.sirp.applicants.interfaces import (
+      >>> from waeup.kofa.applicants.interfaces import (
       ...     IApplicantsContainerProvider)
       >>> all_providers = getAllUtilitiesRegisteredFor(
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/payment.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/payment.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/payment.py	(revision 7811)
@@ -22,7 +22,7 @@
 from zope.component.interfaces import IFactory
 from zope.interface import implementedBy
-from waeup.sirp.payments import OnlinePayment
-from waeup.sirp.applicants.interfaces import IApplicantOnlinePayment
-from waeup.sirp.utils.helpers import attrs_to_fields
+from waeup.kofa.payments import OnlinePayment
+from waeup.kofa.applicants.interfaces import IApplicantOnlinePayment
+from waeup.kofa.utils.helpers import attrs_to_fields
 
 class ApplicantOnlinePayment(OnlinePayment):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/pdf.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/pdf.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/pdf.py	(revision 7811)
@@ -32,8 +32,8 @@
 from zope.formlib.form import setUpEditWidgets
 from zope.publisher.browser import TestRequest
-from waeup.sirp.applicants.interfaces import IApplicant
-from waeup.sirp.browser import DEFAULT_PASSPORT_IMAGE_PATH
-from waeup.sirp.interfaces import IExtFileStore, IPDF, ISIRPUtils
-from waeup.sirp.interfaces import MessageFactory as _
+from waeup.kofa.applicants.interfaces import IApplicant
+from waeup.kofa.browser import DEFAULT_PASSPORT_IMAGE_PATH
+from waeup.kofa.interfaces import IExtFileStore, IPDF, IKOFAUtils
+from waeup.kofa.interfaces import MessageFactory as _
 
 SLIP_STYLE = TableStyle(
@@ -54,7 +54,7 @@
     def title(self):
         container_title = self.context.__parent__.title
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         ar_translation = translate(_('Application Record'),
-            'waeup.sirp', target_language=portal_language)
+            'waeup.kofa', target_language=portal_language)
         return '%s - %s %s' % (container_title,
             ar_translation, self.context.application_number)
@@ -107,7 +107,7 @@
         if dept is None:
             return data
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         dp_translation = translate(_('Department:'),
-            'waeup.sirp', target_language=portal_language)
+            'waeup.kofa', target_language=portal_language)
         f_label = '<font size=12>%s</font>' % dp_translation
         f_text = '<font size=12>%s</font>' % dept.longtitle()
@@ -120,5 +120,5 @@
             return data
         fc_translation = translate(_('Faculty:'),
-            'waeup.sirp', target_language=portal_language)
+            'waeup.kofa', target_language=portal_language)
         f_label = '<font size=12>%s</font>' % fc_translation
         f_text = '<font size=12>%s</font>' % faculty.longtitle()
@@ -145,5 +145,5 @@
             pdf.setAuthor('%s (%s)' % (view.request.principal.title,
                 view.request.principal.id))
-        pdf.setCreator('SIRP')
+        pdf.setCreator('KOFA')
         width, height = A4
         style = getSampleStyleSheet()
@@ -171,8 +171,8 @@
         # Render widget fields
         widgets = self._setUpWidgets()
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         for widget in widgets: # self.widgets:
             f_label = '<font size=12>%s</font>:' % translate(
-                widget.label.strip(), 'waeup.sirp',
+                widget.label.strip(), 'waeup.kofa',
                 target_language=portal_language)
             f_label = Paragraph(f_label, style["Normal"])
@@ -184,5 +184,5 @@
             data.append([f_label,f_text])
         adm_translation = translate(_('Admitted Course of Study:'),
-                'waeup.sirp', target_language=portal_language)
+                'waeup.kofa', target_language=portal_language)
         f_label = '<font size=12>%s</font>' % adm_translation
         f_text = '<font size=12>%s</font>' % (
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/root.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/root.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/root.py	(revision 7811)
@@ -23,7 +23,7 @@
 from hurry.query.interfaces import IQuery
 from zope.component import getUtility
-from waeup.sirp.interfaces import ISIRPPluggable
-from waeup.sirp.applicants.interfaces import IApplicantsRoot
-from waeup.sirp.utils.logger import Logger
+from waeup.kofa.interfaces import IKOFAPluggable
+from waeup.kofa.applicants.interfaces import IApplicantsRoot
+from waeup.kofa.utils.logger import Logger
 
 class ApplicantsRoot(grok.Container, Logger):
@@ -35,5 +35,5 @@
     local_roles = []
 
-    logger_name = 'waeup.sirp.${sitename}.applicants'
+    logger_name = 'waeup.kofa.${sitename}.applicants'
     logger_filename = 'applicants.log'
 
@@ -46,15 +46,15 @@
 
 class ApplicantsPlugin(grok.GlobalUtility):
-    """A SIRPPlugin that creates an applicants root in portal.
+    """A KOFAPlugin that creates an applicants root in portal.
 
     This plugin should be called by a typical
-    `waeup.sirp.app.Universtiy` instance on creation time. The
+    `waeup.kofa.app.Universtiy` instance on creation time. The
     :meth:`update` method normally can also be triggered manually over
     the main site configuration.
 
-    Implements :class:`waeup.sirp.interfaces.ISIRPPluggable`
+    Implements :class:`waeup.kofa.interfaces.IKOFAPluggable`
     """
     grok.name('applicants')
-    grok.implements(ISIRPPluggable)
+    grok.implements(IKOFAPluggable)
     log_prefix = 'ApplicantsPlugin'
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/sample_container_data.csv
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/sample_container_data.csv	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/sample_container_data.csv	(revision 7811)
@@ -1,3 +1,3 @@
 code,ac_prefix,application_category,provider,prefix,year
-CODE1,APP,basic,waeup.sirp.applicants.ApplicantsContainer,app,2013
-CODE2,DPP,cest,waeup.sirp.applicants.ApplicantsContainer,app,2013
+CODE1,APP,basic,waeup.kofa.applicants.ApplicantsContainer,app,2013
+CODE2,DPP,cest,waeup.kofa.applicants.ApplicantsContainer,app,2013
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_applicant.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_applicant.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_applicant.py	(revision 7811)
@@ -26,17 +26,17 @@
 from zope.interface import verify, implements
 from zope.location.interfaces import ILocation
-from waeup.sirp.image.interfaces import ISIRPImageFile
-from waeup.sirp.imagestorage import DefaultStorage
-from waeup.sirp.interfaces import IFileStoreHandler, IFileStoreNameChooser
-from waeup.sirp.applicants import (
+from waeup.kofa.image.interfaces import IKOFAImageFile
+from waeup.kofa.imagestorage import DefaultStorage
+from waeup.kofa.interfaces import IFileStoreHandler, IFileStoreNameChooser
+from waeup.kofa.applicants import (
     Applicant, ApplicantFactory,
     ApplicantImageStoreHandler, ApplicantImageNameChooser,
     )
-from waeup.sirp.applicants.interfaces import IApplicant
-from waeup.sirp.testing import FunctionalTestCase, FunctionalLayer
+from waeup.kofa.applicants.interfaces import IApplicant
+from waeup.kofa.testing import FunctionalTestCase, FunctionalLayer
 
 class FakeImageLocation(object):
     implements(ILocation)
-    adapts(ISIRPImageFile)
+    adapts(IKOFAImageFile)
     def __init__(self, context):
         pass
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_applicantcopier.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_applicantcopier.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_applicantcopier.py	(revision 7811)
@@ -22,7 +22,7 @@
 from hurry.workflow.interfaces import IWorkflowInfo
 from zope.component import getUtility
-from waeup.sirp.testing import FunctionalLayer
-from waeup.sirp.interfaces import IExtFileStore, IFileStoreNameChooser
-from waeup.sirp.applicants.tests.test_browser import ApplicantsFullSetup
+from waeup.kofa.testing import FunctionalLayer
+from waeup.kofa.interfaces import IExtFileStore, IFileStoreNameChooser
+from waeup.kofa.applicants.tests.test_browser import ApplicantsFullSetup
 
 class ApplicantCopierFunctionalTests(ApplicantsFullSetup):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_authentication.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_authentication.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_authentication.py	(revision 7811)
@@ -25,10 +25,10 @@
 from zope.securitypolicy.role import Role
 from zope.securitypolicy.interfaces import IRole, Allow
-from waeup.sirp.authentication import get_principal_role_manager
-from waeup.sirp.interfaces import IAuthPluginUtility, IUserAccount
-from waeup.sirp.applicants.authentication import (
+from waeup.kofa.authentication import get_principal_role_manager
+from waeup.kofa.interfaces import IAuthPluginUtility, IUserAccount
+from waeup.kofa.applicants.authentication import (
     ApplicantsAuthenticatorSetup, ApplicantAccount)
-from waeup.sirp.applicants.tests.test_browser import ApplicantsFullSetup
-from waeup.sirp.testing import FunctionalLayer
+from waeup.kofa.applicants.tests.test_browser import ApplicantsFullSetup
+from waeup.kofa.testing import FunctionalLayer
 
 class ApplicantsAuthenticatorSetupTests(unittest.TestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_batching.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_batching.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_batching.py	(revision 7811)
@@ -27,13 +27,13 @@
 from zope.interface.verify import verifyClass, verifyObject
 
-from waeup.sirp.app import University
-from waeup.sirp.applicants.batching import (
+from waeup.kofa.app import University
+from waeup.kofa.applicants.batching import (
     ApplicantsContainerImporter, ApplicantImporter)
-from waeup.sirp.applicants.container import ApplicantsContainer
-from waeup.sirp.applicants.applicant import Applicant
-from waeup.sirp.university.faculty import Faculty
-from waeup.sirp.university.department import Department
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.interfaces import IBatchProcessor
+from waeup.kofa.applicants.container import ApplicantsContainer
+from waeup.kofa.applicants.applicant import Applicant
+from waeup.kofa.university.faculty import Faculty
+from waeup.kofa.university.department import Department
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.interfaces import IBatchProcessor
 
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_browser.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_browser.py	(revision 7811)
@@ -29,13 +29,13 @@
 from zope.testbrowser.testing import Browser
 from hurry.workflow.interfaces import IWorkflowInfo, IWorkflowState
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.app import University
-from waeup.sirp.configuration import SessionConfiguration
-from waeup.sirp.applicants.container import ApplicantsContainer
-from waeup.sirp.applicants.applicant import Applicant
-from waeup.sirp.interfaces import (
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.app import University
+from waeup.kofa.configuration import SessionConfiguration
+from waeup.kofa.applicants.container import ApplicantsContainer
+from waeup.kofa.applicants.applicant import Applicant
+from waeup.kofa.interfaces import (
     IExtFileStore, IFileStoreNameChooser, IUserAccount)
-from waeup.sirp.university.faculty import Faculty
-from waeup.sirp.university.department import Department
+from waeup.kofa.university.faculty import Faculty
+from waeup.kofa.university.department import Department
 
 PH_LEN = 2059  # Length of placeholder file
@@ -247,5 +247,5 @@
         self.browser.getControl(name="form.year").value = ['2010']
         self.browser.getControl(name="form.provider").value = [
-            'waeup.sirp.applicants.ApplicantsContainer']
+            'waeup.kofa.applicants.ApplicantsContainer']
         self.browser.getControl(
             name="form.application_category").value = ['basic']
@@ -262,5 +262,5 @@
         self.browser.getControl(name="form.year").value = ['2010']
         self.browser.getControl(name="form.provider").value = [
-            'waeup.sirp.applicants.ApplicantsContainer']
+            'waeup.kofa.applicants.ApplicantsContainer']
         self.browser.getControl(
             name="form.application_category").value = ['basic']
@@ -277,5 +277,5 @@
         self.browser.getControl(name="form.year").value = ['2010']
         self.browser.getControl(name="form.provider").value = [
-            'waeup.sirp.applicants.ApplicantsContainer']
+            'waeup.kofa.applicants.ApplicantsContainer']
         #self.browser.getControl(name="form.ac_prefix").value = ['APP']
         self.browser.getControl(
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_catalog.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_catalog.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_catalog.py	(revision 7811)
@@ -28,8 +28,8 @@
 from zope.component.interfaces import ComponentLookupError
 from zope.testbrowser.testing import Browser
-from waeup.sirp.app import University
-from waeup.sirp.applicants.container import ApplicantsContainer
-from waeup.sirp.applicants.applicant import Applicant
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.app import University
+from waeup.kofa.applicants.container import ApplicantsContainer
+from waeup.kofa.applicants.applicant import Applicant
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
 
 class CatalogTests(FunctionalTestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_container.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_container.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_container.py	(revision 7811)
@@ -21,6 +21,6 @@
 import unittest
 from zope.interface.verify import verifyClass, verifyObject
-from waeup.sirp.applicants import interfaces
-from waeup.sirp.applicants.container import (
+from waeup.kofa.applicants import interfaces
+from waeup.kofa.applicants.container import (
     ApplicantsContainer,
     )
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_dynamicroles.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_dynamicroles.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_dynamicroles.py	(revision 7811)
@@ -24,7 +24,7 @@
 from zope.securitypolicy.tests.test_annotationprincipalrolemanager import (
     Test as APRMTest, Manageable)
-from waeup.sirp.testing import FunctionalLayer
-from waeup.sirp.applicants.tests.test_browser import ApplicantsFullSetup
-from waeup.sirp.applicants import ApplicantPrincipalRoleManager
+from waeup.kofa.testing import FunctionalLayer
+from waeup.kofa.applicants.tests.test_browser import ApplicantsFullSetup
+from waeup.kofa.applicants import ApplicantPrincipalRoleManager
 
 class ApplicantPrincipalRoleManagerTests(APRMTest):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_interfaces.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_interfaces.py	(revision 7811)
@@ -22,6 +22,6 @@
 from zc.sourcefactory.browser.source import FactoredTerms
 from zope.publisher.browser import TestRequest
-from waeup.sirp.applicants.interfaces import ApplicationTypeSource
-from waeup.sirp.students.vocabularies import GenderSource
+from waeup.kofa.applicants.interfaces import ApplicationTypeSource
+from waeup.kofa.students.vocabularies import GenderSource
 
 class InterfacesTest(unittest.TestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_payment.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_payment.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_payment.py	(revision 7811)
@@ -20,8 +20,8 @@
 """
 
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.applicants.payment import (
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.applicants.payment import (
     ApplicantOnlinePayment, ApplicantOnlinePaymentFactory)
-from waeup.sirp.payments.interfaces import IOnlinePayment
+from waeup.kofa.payments.interfaces import IOnlinePayment
 
 class ApplicantOnlinePaymentFactoryTest(FunctionalTestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_pdf.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_pdf.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_pdf.py	(revision 7811)
@@ -22,8 +22,8 @@
 from zope.component import getAdapter
 from zope.interface import verify
-from waeup.sirp.applicants.pdf import IPDF, PDFApplicationSlip
-from waeup.sirp.applicants.tests.test_browser import ApplicantsFullSetup
-from waeup.sirp.interfaces import IPDF
-from waeup.sirp.testing import FunctionalTestCase, FunctionalLayer
+from waeup.kofa.applicants.pdf import IPDF, PDFApplicationSlip
+from waeup.kofa.applicants.tests.test_browser import ApplicantsFullSetup
+from waeup.kofa.interfaces import IPDF
+from waeup.kofa.testing import FunctionalTestCase, FunctionalLayer
 
 class PDFApplicationSlipTests(ApplicantsFullSetup):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_root.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_root.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_root.py	(revision 7811)
@@ -26,12 +26,12 @@
 from zope.component.hooks import setSite, clearSite
 from zope.interface.verify import verifyClass, verifyObject
-from waeup.sirp.app import University
-from waeup.sirp.applicants import (
+from waeup.kofa.app import University
+from waeup.kofa.applicants import (
     interfaces, Applicant, ApplicantsContainer,
     )
-from waeup.sirp.applicants.root import (
+from waeup.kofa.applicants.root import (
     ApplicantsRoot, ApplicantsPlugin,
     )
-from waeup.sirp.testing import (
+from waeup.kofa.testing import (
     FunctionalLayer, FunctionalTestCase, remove_logger)
 
@@ -45,5 +45,5 @@
 
     def setUp(self):
-        remove_logger('waeup.sirp.app.applicants')
+        remove_logger('waeup.kofa.app.applicants')
         super(ApplicantsRootTestCase, self).setUp()
         # Setup a sample site for each test
@@ -79,5 +79,5 @@
         logger = self.app['applicants'].logger
         assert logger is not None
-        assert logger.name == 'waeup.sirp.app.applicants'
+        assert logger.name == 'waeup.kofa.app.applicants'
         handlers = logger.handlers
         assert len(handlers) == 1
@@ -93,5 +93,5 @@
         logger = self.app['applicants'].logger
         assert logger is not None
-        assert logger.name == 'waeup.sirp.app.applicants'
+        assert logger.name == 'waeup.kofa.app.applicants'
         handlers = logger.handlers
         assert len(handlers) == 1
@@ -103,5 +103,5 @@
     def create_logger(self):
         # create a logger suitable for local tests.
-        test_logger = logging.getLogger('waeup.sirp.applicants.testlogger')
+        test_logger = logging.getLogger('waeup.kofa.applicants.testlogger')
         log = StringIO()
         handler = logging.StreamHandler(log)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/utils.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/utils.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/utils.py	(revision 7811)
@@ -20,5 +20,5 @@
 
 import grok
-from waeup.sirp.applicants.interfaces import IApplicantsUtils
+from waeup.kofa.applicants.interfaces import IApplicantsUtils
 
 class ApplicantsUtils(grok.GlobalUtility):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/viewlets.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/viewlets.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/viewlets.py	(revision 7811)
@@ -18,19 +18,19 @@
 import grok
 from hurry.workflow.interfaces import IWorkflowState
-from waeup.sirp.interfaces import ISIRPObject
-from waeup.sirp.students.viewlets import PrimaryStudentNavTab
-from waeup.sirp.browser.viewlets import ManageActionButton, PrimaryNavTab
-from waeup.sirp.applicants.interfaces import (
+from waeup.kofa.interfaces import IKOFAObject
+from waeup.kofa.students.viewlets import PrimaryStudentNavTab
+from waeup.kofa.browser.viewlets import ManageActionButton, PrimaryNavTab
+from waeup.kofa.applicants.interfaces import (
     IApplicant, IApplicantsRoot, IApplicantsContainer,
     IApplicantOnlinePayment,
     )
-from waeup.sirp.applicants.browser import (
+from waeup.kofa.applicants.browser import (
     ApplicantsRootPage, ApplicantsContainerPage, ApplicantManageFormPage,
     ApplicantDisplayFormPage, OnlinePaymentDisplayFormPage
     )
 
-from waeup.sirp.interfaces import MessageFactory as _
+from waeup.kofa.interfaces import MessageFactory as _
 
-grok.context(ISIRPObject) # Make ISIRPObject the default context
+grok.context(IKOFAObject) # Make IKOFAObject the default context
 grok.templatedir('browser_templates')
 
@@ -38,5 +38,5 @@
     """Applicants tab in primary navigation.
     """
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.order(3)
     grok.require('waeup.viewApplicantsTab')
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/workflow.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/workflow.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/workflow.py	(revision 7811)
@@ -21,8 +21,8 @@
 from hurry.workflow.workflow import Transition, WorkflowState, NullCondition
 from hurry.workflow.interfaces import IWorkflowState, IWorkflowTransitionEvent
-from waeup.sirp.applicants.interfaces import IApplicantBaseData
-from waeup.sirp.interfaces import IObjectHistory, ISIRPWorkflowInfo, ISIRPUtils
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.workflow import SIRPWorkflow, SIRPWorkflowInfo
+from waeup.kofa.applicants.interfaces import IApplicantBaseData
+from waeup.kofa.interfaces import IObjectHistory, IKOFAWorkflowInfo, IKOFAUtils
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.workflow import KOFAWorkflow, KOFAWorkflowInfo
 
 INITIALIZED = 'initialized'
@@ -137,5 +137,5 @@
     )
 
-application_workflow = SIRPWorkflow(APPLICATION_TRANSITIONS)
+application_workflow = KOFAWorkflow(APPLICATION_TRANSITIONS)
 
 class ApplicationWorkflowState(WorkflowState, grok.Adapter):
@@ -148,9 +148,9 @@
     state_id = 'wf.application.id'
 
-class ApplicationWorkflowInfo(SIRPWorkflowInfo, grok.Adapter):
+class ApplicationWorkflowInfo(KOFAWorkflowInfo, grok.Adapter):
     """Adapter to adapt Applicant objects to workflow info objects.
     """
     grok.context(IApplicantBaseData)
-    grok.provides(ISIRPWorkflowInfo)
+    grok.provides(IKOFAWorkflowInfo)
 
     def __init__(self, context):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/authentication.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/authentication.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/authentication.py	(revision 7811)
@@ -16,5 +16,5 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""Authentication for SIRP.
+"""Authentication for KOFA.
 """
 import grok
@@ -32,7 +32,7 @@
 from zope.password.interfaces import IPasswordManager
 from zope.securitypolicy.principalrole import principalRoleManager
-from waeup.sirp.interfaces import (ILocalRoleSetEvent,
+from waeup.kofa.interfaces import (ILocalRoleSetEvent,
     IUserAccount, IAuthPluginUtility, IPasswordValidator,
-    ISIRPPrincipal, ISIRPPrincipalInfo)
+    IKOFAPrincipal, IKOFAPrincipalInfo)
 
 def setup_authentication(pau):
@@ -63,5 +63,5 @@
     return principalRoleManager
 
-class SIRPSessionCredentialsPlugin(grok.GlobalUtility,
+class KOFASessionCredentialsPlugin(grok.GlobalUtility,
                                     SessionCredentialsPlugin):
     grok.provides(ICredentialsPlugin)
@@ -72,11 +72,11 @@
     passwordfield = 'form.password'
 
-class SIRPPrincipalInfo(object):
-    """An implementation of ISIRPPrincipalInfo.
-
-    A SIRP principal info is created with id, login, title, description,
+class KOFAPrincipalInfo(object):
+    """An implementation of IKOFAPrincipalInfo.
+
+    A KOFA principal info is created with id, login, title, description,
     phone, email and user_type.
     """
-    grok.implements(ISIRPPrincipalInfo)
+    grok.implements(IKOFAPrincipalInfo)
 
     def __init__(self, id, title, description, email, phone, user_type):
@@ -90,12 +90,12 @@
         self.authenticatorPlugin = None
 
-class SIRPPrincipal(Principal):
+class KOFAPrincipal(Principal):
     """A portal principal.
 
-    SIRP principals provide an extra `email`, `phone` and `user_type`
+    KOFA principals provide an extra `email`, `phone` and `user_type`
     attribute extending ordinary principals.
     """
 
-    grok.implements(ISIRPPrincipal)
+    grok.implements(IKOFAPrincipal)
 
     def __init__(self, id, title=u'', description=u'', email=u'',
@@ -112,15 +112,15 @@
 
     def __repr__(self):
-        return 'SIRPPrincipal(%r)' % self.id
-
-class AuthenticatedSIRPPrincipalFactory(grok.MultiAdapter):
-    """Creates 'authenticated' SIRP principals.
-
-    Adapts (principal info, request) to a SIRPPrincipal instance.
+        return 'KOFAPrincipal(%r)' % self.id
+
+class AuthenticatedKOFAPrincipalFactory(grok.MultiAdapter):
+    """Creates 'authenticated' KOFA principals.
+
+    Adapts (principal info, request) to a KOFAPrincipal instance.
 
     This adapter is used by the standard PAU to transform
-    SIRPPrincipalInfos into SIRPPrincipal instances.
-    """
-    grok.adapts(ISIRPPrincipalInfo, IRequest)
+    KOFAPrincipalInfos into KOFAPrincipal instances.
+    """
+    grok.adapts(IKOFAPrincipalInfo, IRequest)
     grok.implements(IAuthenticatedPrincipalFactory)
 
@@ -130,5 +130,5 @@
 
     def __call__(self, authentication):
-        principal = SIRPPrincipal(
+        principal = KOFAPrincipal(
             self.info.id,
             self.info.title,
@@ -224,5 +224,5 @@
         if not account.checkPassword(credentials['password']):
             return None
-        return SIRPPrincipalInfo(
+        return KOFAPrincipalInfo(
             id=account.name,
             title=account.title,
@@ -236,5 +236,5 @@
         if account is None:
             return None
-        return SIRPPrincipalInfo(
+        return KOFAPrincipalInfo(
             id=account.name,
             title=account.title,
Index: /main/waeup.kofa/trunk/src/waeup/kofa/authentication.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/authentication.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/authentication.txt	(revision 7811)
@@ -1,3 +1,3 @@
-SIRP authentication
+KOFA authentication
 *******************
 
@@ -11,5 +11,5 @@
 
   >>> from zope.component.hooks import setSite # only needed in tests
-  >>> from waeup.sirp.app import University
+  >>> from waeup.kofa.app import University
   >>> root = getRootFolder()
   >>> u = University()
@@ -36,5 +36,5 @@
 user credentials and some metadata persistently:
 
-  >>> from waeup.sirp.authentication import Account
+  >>> from waeup.kofa.authentication import Account
   >>> alice = Account('alice', 'alicesecret',roles=['waeup.ManageDataCenter'])
   >>> root['app']['users'].addAccount(alice)
@@ -49,5 +49,5 @@
 
   >>> alice.getLocalRoles()
-  {'waeup.local.Owner': [<waeup.sirp.authentication.Account object at 0x...>]}
+  {'waeup.local.Owner': [<waeup.kofa.authentication.Account object at 0x...>]}
 
 User  automatically get the global AcademicsOfficer role:
@@ -71,10 +71,10 @@
   >>> alice.notifyLocalRoleChanged(chalet, 'BigBoss', granted=False)
   >>> alice.getLocalRoles()
-  {'waeup.local.Owner': [<waeup.sirp.authentication.Account object at 0x...>]}
+  {'waeup.local.Owner': [<waeup.kofa.authentication.Account object at 0x...>]}
 
 We can also use events to trigger such actions. This is recommended
 because we do not neccessarily know where Alice lives:
 
-  >>> from waeup.sirp.authentication import LocalRoleSetEvent
+  >>> from waeup.kofa.authentication import LocalRoleSetEvent
   >>> from zope.event import notify
   >>> notify(LocalRoleSetEvent(chalet, 'BigBoss', 'alice',
@@ -92,5 +92,5 @@
 
    >>> from zope.securitypolicy.interfaces import IPrincipalRoleManager
-   >>> from waeup.sirp.university.faculty import Faculty
+   >>> from waeup.kofa.university.faculty import Faculty
    >>> faculty = Faculty()
    >>> root['app']['bobs_fac'] = faculty
@@ -105,5 +105,5 @@
    >>> bob = root['app']['users']['bob']
    >>> bob.getLocalRoles()
-   {'waeup.PortalManager': [<waeup.sirp...Faculty object at 0x...>]}
+   {'waeup.PortalManager': [<waeup.kofa...Faculty object at 0x...>]}
 
 When we delete the faculty from ZODB, also Bobs roles are modified:
@@ -111,5 +111,5 @@
    >>> del root['app']['bobs_fac']
    >>> bob.getLocalRoles()
-   {'waeup.local.Owner': [<waeup.sirp.authentication.Account object at 0x...>]}
+   {'waeup.local.Owner': [<waeup.kofa.authentication.Account object at 0x...>]}
 
 If one notifies the machinery of a local role removal for an object
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/__init__.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/__init__.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/__init__.py	(revision 7811)
@@ -1,8 +1,8 @@
 import os
 
-from waeup.sirp.browser.layout import (
-    SIRPPage, SIRPForm, SIRPLayout, SIRPDisplayFormPage, SIRPEditFormPage,
-    SIRPAddFormPage, NullValidator)
-from waeup.sirp.browser.pages import ContactAdminForm
+from waeup.kofa.browser.layout import (
+    KOFAPage, KOFAForm, KOFALayout, KOFADisplayFormPage, KOFAEditFormPage,
+    KOFAAddFormPage, NullValidator)
+from waeup.kofa.browser.pages import ContactAdminForm
 
 IMAGE_PATH = os.path.join(
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/batchprocessing.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/batchprocessing.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/batchprocessing.txt	(revision 7811)
@@ -21,5 +21,5 @@
 Create a site:
 
-    >>> from waeup.sirp.app import University
+    >>> from waeup.kofa.app import University
     >>> getRootFolder()['app'] = University()
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/breadcrumbs.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/breadcrumbs.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/breadcrumbs.py	(revision 7811)
@@ -23,16 +23,16 @@
 from zope.publisher.browser import TestRequest
 
-from waeup.sirp.interfaces import (
+from waeup.kofa.interfaces import (
     IConfigurationContainer, ISessionConfiguration)
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.browser import interfaces
-from waeup.sirp.browser.interfaces import (IBreadcrumb,
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.browser import interfaces
+from waeup.kofa.browser.interfaces import (IBreadcrumb,
     IBreadcrumbIgnorable, IBreadcrumbContainer)
-        
+
 class Breadcrumb(grok.Adapter):
     """A most general breadcrumb generator.
     """
     grok.provides(IBreadcrumb)
-    grok.context(interfaces.ISIRPObject)
+    grok.context(interfaces.IKOFAObject)
     grok.name('index')
 
@@ -42,5 +42,5 @@
     parent_viewname = 'index'
     viewname = 'index'
-    
+
     def __init__(self, context):
         """Turn a context into a breadcrumb.
@@ -57,5 +57,5 @@
             return self.context.title
         if hasattr(self.context, 'name'):
-            return self.context.name            
+            return self.context.name
         return None
 
@@ -151,5 +151,5 @@
 class DataCenterBreadcrumb(Breadcrumb):
     """A breadcrumb for data centers.
-    """ 
+    """
     grok.context(interfaces.IDataCenter)
     title = _(u'Data Center')
@@ -160,5 +160,5 @@
     """
     grok.context(interfaces.IFaculty)
-    
+
     @property
     def title(self):
@@ -169,14 +169,14 @@
     """
     grok.context(interfaces.IDepartment)
-    
+
 class CourseBreadcrumb(FacultyBreadcrumb):
     """A breadcrumb for courses.
     """
-    grok.context(interfaces.ICourse)   
-    
+    grok.context(interfaces.ICourse)
+
 class CertificateBreadcrumb(FacultyBreadcrumb):
     """A breadcrumb for certificates.
     """
-    grok.context(interfaces.ICertificate)        
+    grok.context(interfaces.ICertificate)
 
 class CoursesContainerBreadcrumb(Breadcrumb):
@@ -245,5 +245,5 @@
 
     _breadcrumbs = None
-    
+
     def __init__(self, context):
         self.context = context
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/breadcrumbs.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/breadcrumbs.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/breadcrumbs.txt	(revision 7811)
@@ -11,5 +11,5 @@
 We create a university to check the breadcrumb functionality.
 
-    >>> from waeup.sirp.app import University
+    >>> from waeup.kofa.app import University
     >>> root = getRootFolder()
     >>> root['app'] = University()
@@ -22,8 +22,8 @@
 viewname:
 
-    >>> from waeup.sirp.browser.breadcrumbs import getBreadcrumbList
+    >>> from waeup.kofa.browser.breadcrumbs import getBreadcrumbList
     >>> blist1 = getBreadcrumbList(app, 'index')
     >>> blist1
-    [<waeup.sirp.browser.breadcrumbs.UniversityBreadcrumb object at 0x...>]
+    [<waeup.kofa.browser.breadcrumbs.UniversityBreadcrumb object at 0x...>]
 
 A slightly more extensive list for the datacenter:
@@ -32,7 +32,7 @@
     >>> from pprint import pprint
     >>> pprint(blist2)
-    [<waeup.sirp.browser.breadcrumbs.UniversityBreadcrumb object at 0x...>,
-     <waeup.sirp.browser.breadcrumbs.AdministrationBreadcrumb object at 0x...>,
-     <waeup.sirp.browser.breadcrumbs.DataCenterBreadcrumb object at 0x...>]
+    [<waeup.kofa.browser.breadcrumbs.UniversityBreadcrumb object at 0x...>,
+     <waeup.kofa.browser.breadcrumbs.AdministrationBreadcrumb object at 0x...>,
+     <waeup.kofa.browser.breadcrumbs.DataCenterBreadcrumb object at 0x...>]
 
 We get a breadcrumb for university, administration area and data
@@ -47,7 +47,7 @@
 
      >>> pprint([(x.context, x.viewname) for x in blist2])
-     [(<waeup.sirp.app.University object at 0x...>, 'index'),
-      (<waeup.sirp.app.University object at 0x...>, 'administration'),
-      (<waeup.sirp.datacenter.DataCenter object at 0x...>, 'index')]
+     [(<waeup.kofa.app.University object at 0x...>, 'index'),
+      (<waeup.kofa.app.University object at 0x...>, 'administration'),
+      (<waeup.kofa.datacenter.DataCenter object at 0x...>, 'index')]
 
 The administration area breadcrumb might be a surprise, as there is no
@@ -89,5 +89,5 @@
 Now we can get the breadcrumbs for this view:
 
-    >>> from waeup.sirp.browser.breadcrumbs import getBreadcrumbListForView
+    >>> from waeup.kofa.browser.breadcrumbs import getBreadcrumbListForView
     >>> blist3 = getBreadcrumbListForView(page)
     >>> [x.title for x in blist3]
@@ -109,5 +109,5 @@
 The returned breadcrumb container supports iteration:
 
-    >>> from waeup.sirp.browser.interfaces import IBreadcrumbContainer
+    >>> from waeup.kofa.browser.interfaces import IBreadcrumbContainer
     >>> mybccontainer = IBreadcrumbContainer(page)
     >>> [x.title for x in mybccontainer]
@@ -131,8 +131,8 @@
 
     >>> from zope.component import getAdapter
-    >>> from waeup.sirp.browser.interfaces import IBreadcrumb
+    >>> from waeup.kofa.browser.interfaces import IBreadcrumb
     >>> b1 = getAdapter(app, IBreadcrumb, 'index')
     >>> b1
-    <waeup.sirp.browser.breadcrumbs.UniversityBreadcrumb object at 0x...>
+    <waeup.kofa.browser.breadcrumbs.UniversityBreadcrumb object at 0x...>
 
 Breadcrumb objects provide a title:
@@ -156,5 +156,5 @@
     >>> b2 = getAdapter(app['datacenter'], IBreadcrumb, 'index')
     >>> b2
-    <waeup.sirp.browser.breadcrumbs.DataCenterBreadcrumb object at 0x...>
+    <waeup.kofa.browser.breadcrumbs.DataCenterBreadcrumb object at 0x...>
 
     >>> b2.title
@@ -168,5 +168,5 @@
 
     >>> b2.parent
-    (<waeup.sirp.app.University object at 0x...>, 'administration')
+    (<waeup.kofa.app.University object at 0x...>, 'administration')
 
 This result denotes a new context object (the University instance we
@@ -184,5 +184,5 @@
     >>> b3 = getAdapter(context, IBreadcrumb, viewname)
     >>> b3
-    <waeup.sirp...breadcrumbs.AdministrationBreadcrumb object at 0x...>
+    <waeup.kofa...breadcrumbs.AdministrationBreadcrumb object at 0x...>
 
 As you can see, we get an AdministrationBreadcrumb, although the
@@ -197,5 +197,5 @@
     >>> context, viewname = b3.parent
     >>> context, viewname
-    (<waeup.sirp.app.University object at 0x...>, 'index')
+    (<waeup.kofa.app.University object at 0x...>, 'index')
 
 We create last breadcrumb:
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/browser.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/browser.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/browser.txt	(revision 7811)
@@ -1,6 +1,6 @@
-Browsing SIRP
+Browsing KOFA
 *************
 
-Here we visit all parts of a SIRP portal using a browser.
+Here we visit all parts of a KOFA portal using a browser.
 
 University
@@ -15,5 +15,5 @@
   []
 
-  >>> from waeup.sirp.app import University
+  >>> from waeup.kofa.app import University
   >>> u = University()
   >>> root['myuniversity'] = u
@@ -35,5 +35,5 @@
   >>> print browser.contents
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
-  ...Welcome to WAeUP.SIRP...
+  ...Welcome to WAeUP.KOFA...
   ...
 
@@ -566,5 +566,5 @@
 Courses are stored in :class:`ICoursesContainer` instances with their
 code as key. CoursesContainers are normally availabe as `course`
-attribute of :class:`waeup.sirp.university.department.Department`
+attribute of :class:`waeup.kofa.university.department.Department`
 instances.
 
@@ -769,5 +769,5 @@
 with their code as key. CertificatesContainers are normally availabe as
 `certificates` attribute of
-:class:`waeup.sirp.university.department.Department` instances.
+:class:`waeup.kofa.university.department.Department` instances.
 
 To ease the life of users we do not require to browse the
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/captcha.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/captcha.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/captcha.py	(revision 7811)
@@ -28,9 +28,9 @@
 from zope.interface import Interface
 from zope.publisher.interfaces.http import IHTTPRequest
-from waeup.sirp.browser import SIRPPage
-from waeup.sirp.browser.interfaces import (
+from waeup.kofa.browser import KOFAPage
+from waeup.kofa.browser.interfaces import (
     ICaptchaRequest, ICaptchaResponse, ICaptcha, ICaptchaConfig,
     ICaptchaManager)
-from waeup.sirp.interfaces import IUniversity
+from waeup.kofa.interfaces import IUniversity
 
 #
@@ -171,5 +171,5 @@
     """ReCaptcha - strong captchas with images, sound, etc.
 
-    This is the SIRP implementation to support captchas as provided by
+    This is the KOFA implementation to support captchas as provided by
     http://www.google.com/recaptcha.
 
@@ -266,5 +266,5 @@
             headers = {
                 "Content-type": "application/x-www-form-urlencoded",
-                "User-agent": "reCAPTCHA Python SIRP",
+                "User-agent": "reCAPTCHA Python KOFA",
                 }
             )
@@ -319,5 +319,5 @@
 
 
-class CaptchaTestPage(SIRPPage):
+class CaptchaTestPage(KOFAPage):
     # A test page to see a captcha in action
     grok.name('captcha')
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/exceptions.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/exceptions.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/exceptions.py	(revision 7811)
@@ -22,5 +22,5 @@
 from zope.publisher.interfaces import INotFound
 from zope.security.interfaces import IUnauthorized
-from waeup.sirp.browser.layout import SIRPPage
+from waeup.kofa.browser.layout import KOFAPage
 
 grok.templatedir('templates')
@@ -61,5 +61,5 @@
 
 
-class NotFoundPage(SIRPPage):
+class NotFoundPage(KOFAPage):
     """A page rendered when an object cannot be found.
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/interfaces.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/interfaces.py	(revision 7811)
@@ -20,7 +20,7 @@
 from zope import schema
 from zope.interface import Interface, Attribute
-from waeup.sirp.interfaces import (
-    ISIRPObject, IUniversity, IUsersContainer, IDataCenter)
-from waeup.sirp.university.interfaces import (
+from waeup.kofa.interfaces import (
+    IKOFAObject, IUniversity, IUsersContainer, IDataCenter)
+from waeup.kofa.university.interfaces import (
     IFacultiesContainer, IFaculty, IFacultyAdd, IDepartment, IDepartmentAdd,
     ICoursesContainer, ICourse, ICourseAdd, ICertificatesContainer,
@@ -63,5 +63,5 @@
     Themes are basically collections of CSS- and/or JavaScript files
     stored somewhere. In Grok-contexts these files can be registered
-    as 'resources' (see :mod:`waeup.sirp.browser.resources`).
+    as 'resources' (see :mod:`waeup.kofa.browser.resources`).
 
     Furthermore, to make themes selectable and distinctable from each
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/layout.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/layout.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/layout.py	(revision 7811)
@@ -33,10 +33,10 @@
 from zope.interface import Interface
 from zope.site.hooks import getSite
-from waeup.sirp.interfaces import ISIRPObject, IUserAccount
-from waeup.sirp.browser.interfaces import ITheme
-from waeup.sirp.browser.theming import get_all_themes, SIRPThemeBase
-from waeup.sirp.students.interfaces import IStudentNavigation
-from waeup.sirp.applicants.interfaces import IApplicant
-from waeup.sirp.authentication import get_principal_role_manager
+from waeup.kofa.interfaces import IKOFAObject, IUserAccount
+from waeup.kofa.browser.interfaces import ITheme
+from waeup.kofa.browser.theming import get_all_themes, KOFAThemeBase
+from waeup.kofa.students.interfaces import IStudentNavigation
+from waeup.kofa.applicants.interfaces import IApplicant
+from waeup.kofa.authentication import get_principal_role_manager
 
 grok.templatedir('templates')
@@ -56,12 +56,12 @@
 
     def __call__(self, success):
-        action = SIRPAction(self.label, success=success, **self.options)
+        action = KOFAAction(self.label, success=success, **self.options)
         self.actions.append(action)
         return action
 
-class SIRPAction(Action):
+class KOFAAction(Action):
 
     def __init__(self, label, style='', **options):
-        super(SIRPAction, self).__init__(label, **options)
+        super(KOFAAction, self).__init__(label, **options)
         self.style = style
 
@@ -150,10 +150,10 @@
         return True
 
-class SIRPLayout(UtilityView,Layout):
+class KOFALayout(UtilityView,Layout):
     """A megrok.layout.Layout with additional methods.
     """
     grok.baseclass()
 
-class SIRPForm(UtilityView,Form):
+class KOFAForm(UtilityView,Form):
     """A megrok.layout.Form with additional methods.
     """
@@ -161,5 +161,5 @@
 
     def setUpWidgets(self,ignore_request=False):
-        super(SIRPForm,self).setUpWidgets(ignore_request)
+        super(KOFAForm,self).setUpWidgets(ignore_request)
         # Width parameters will be overridden by Bootstrap
         # so we have to set the css class
@@ -171,10 +171,10 @@
             self.widgets['body'].cssClass = 'span9'
 
-class SIRPPage(UtilityView,Page):
+class KOFAPage(UtilityView,Page):
     """A megrok.layout page with additional methods.
     """
     grok.baseclass()
 
-class SIRPDisplayFormPage(UtilityView,DisplayForm):
+class KOFADisplayFormPage(UtilityView,DisplayForm):
     """A megrok.layout.DisplayForm with additional methods.
     """
@@ -182,5 +182,5 @@
     template = default_waeup_display_template
 
-class SIRPEditFormPage(UtilityView,EditForm):
+class KOFAEditFormPage(UtilityView,EditForm):
     """A megrok.layout.EditForm with additional methods.
     """
@@ -189,5 +189,5 @@
 
     def setUpWidgets(self,ignore_request=False):
-        super(SIRPEditFormPage,self).setUpWidgets(ignore_request)
+        super(KOFAEditFormPage,self).setUpWidgets(ignore_request)
         for widget in self.widgets:
             if widget.__class__.__name__ == 'TextWidget':
@@ -207,5 +207,5 @@
             self.widgets['perm_address'].height = 10
 
-class SIRPAddFormPage(UtilityView,AddForm):
+class KOFAAddFormPage(UtilityView,AddForm):
     """A megrok.layout.AddForm with additional methods.
     """
@@ -213,11 +213,11 @@
     template = default_waeup_edit_template
 
-class SiteLayout(SIRPLayout):
+class SiteLayout(KOFALayout):
     """ The general site layout.
     """
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
 
     #: An instance of the default theme to use for the site layout
-    default_theme = SIRPThemeBase()
+    default_theme = KOFAThemeBase()
     stafftemp = grok.PageTemplateFile('templates/staffsitelayout.pt')
     studenttemp = grok.PageTemplateFile('templates/studentsitelayout.pt')
@@ -297,7 +297,7 @@
         hold the internal name of a theme.
 
-        A theme in the waeup.sirp sense consists of a list of
+        A theme in the waeup.kofa sense consists of a list of
         CSS/JavaScript resources defined in the
-        :mod:`waeup.sirp.browser.resources` module.
+        :mod:`waeup.kofa.browser.resources` module.
 
         If the context University object has no such attribute or the
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py	(revision 7811)
@@ -16,5 +16,5 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-""" Viewing components for SIRP objects.
+""" Viewing components for KOFA objects.
 """
 import copy
@@ -37,30 +37,30 @@
 from zope.event import notify
 from zope.session.interfaces import ISession
-from waeup.sirp.browser import (
-    SIRPPage, SIRPForm, SIRPEditFormPage, SIRPAddFormPage,
-    SIRPDisplayFormPage, NullValidator)
-from waeup.sirp.browser.interfaces import (
+from waeup.kofa.browser import (
+    KOFAPage, KOFAForm, KOFAEditFormPage, KOFAAddFormPage,
+    KOFADisplayFormPage, NullValidator)
+from waeup.kofa.browser.interfaces import (
     IUniversity, IFacultiesContainer, IFaculty, IFacultyAdd,
     IDepartment, IDepartmentAdd, ICourse, ICourseAdd, ICertificate,
     ICertificateAdd, ICertificateCourse, ICertificateCourseAdd)
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.browser.resources import warning, datepicker, tabs, datatable
-from waeup.sirp.interfaces import(
-    ISIRPObject, IUsersContainer, IUserAccount, IDataCenter,
-    ISIRPXMLImporter, ISIRPXMLExporter, IBatchProcessor,
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.browser.resources import warning, datepicker, tabs, datatable
+from waeup.kofa.interfaces import(
+    IKOFAObject, IUsersContainer, IUserAccount, IDataCenter,
+    IKOFAXMLImporter, IKOFAXMLExporter, IBatchProcessor,
     ILocalRolesAssignable, DuplicationError, IConfigurationContainer,
     ISessionConfiguration, ISessionConfigurationAdd,
-    IPasswordValidator, IContactForm, ISIRPUtils)
-from waeup.sirp.permissions import get_users_with_local_roles, get_all_roles
-from waeup.sirp.students.catalog import search as searchstudents
-from waeup.sirp.university.catalog import search
-from waeup.sirp.university.vocabularies import course_levels
-from waeup.sirp.authentication import LocalRoleSetEvent
-from waeup.sirp.widgets.restwidget import ReSTDisplayWidget
-from waeup.sirp.authentication import get_principal_role_manager
-from waeup.sirp.utils.helpers import get_user_account
-from waeup.sirp.browser.layout import jsaction, action, UtilityView
-
-grok.context(ISIRPObject)
+    IPasswordValidator, IContactForm, IKOFAUtils)
+from waeup.kofa.permissions import get_users_with_local_roles, get_all_roles
+from waeup.kofa.students.catalog import search as searchstudents
+from waeup.kofa.university.catalog import search
+from waeup.kofa.university.vocabularies import course_levels
+from waeup.kofa.authentication import LocalRoleSetEvent
+from waeup.kofa.widgets.restwidget import ReSTDisplayWidget
+from waeup.kofa.authentication import get_principal_role_manager
+from waeup.kofa.utils.helpers import get_user_account
+from waeup.kofa.browser.layout import jsaction, action, UtilityView
+
+grok.context(IKOFAObject)
 grok.templatedir('templates')
 
@@ -144,9 +144,9 @@
 #
 
-class LoginPage(SIRPPage):
+class LoginPage(KOFAPage):
     """A login page, available for all objects.
     """
     grok.name('login')
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.require('waeup.Public')
     label = _(u'Login')
@@ -179,8 +179,8 @@
 
 
-class LogoutPage(SIRPPage):
+class LogoutPage(KOFAPage):
     """A logout page. Calling this page will log the current user out.
     """
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.require('waeup.Public')
     grok.name('logout')
@@ -190,17 +190,17 @@
             auth = getUtility(IAuthentication)
             ILogout(auth).logout(self.request)
-            self.flash(_("You have been logged out. Thanks for using WAeUP SIRP!"))
+            self.flash(_("You have been logged out. Thanks for using WAeUP KOFA!"))
         self.redirect(self.application_url())
 
 
-class LanguageChangePage(SIRPPage):
+class LanguageChangePage(KOFAPage):
     """ Language switch
     """
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.name('change_language')
     grok.require('waeup.Public')
 
     def update(self, lang='en', view_name='@@index'):
-        self.response.setCookie('sirp.language', lang, path='/')
+        self.response.setCookie('kofa.language', lang, path='/')
         self.redirect(self.url(self.context, view_name))
         return
@@ -213,5 +213,5 @@
 #
 
-class ContactAdminForm(SIRPForm):
+class ContactAdminForm(KOFAForm):
     grok.name('contactadmin')
     #grok.context(IUniversity)
@@ -242,6 +242,6 @@
         usertype = getattr(self.request.principal,
                            'user_type', 'system').title()
-        sirp_utils = getUtility(ISIRPUtils)
-        success = sirp_utils.sendContactForm(
+        kofa_utils = getUtility(IKOFAUtils)
+        success = kofa_utils.sendContactForm(
                 fullname,email,
                 self.config.name_admin,self.config.email_admin,
@@ -263,6 +263,6 @@
     @action(_('Send now'), style='primary')
     def send(self, *args, **data):
-        sirp_utils = getUtility(ISIRPUtils)
-        success = sirp_utils.sendContactForm(
+        kofa_utils = getUtility(IKOFAUtils)
+        success = kofa_utils.sendContactForm(
                 data['fullname'],data['email_from'],
                 self.config.name_admin,self.config.email_admin,
@@ -279,5 +279,5 @@
 #
 
-class UniversityPage(SIRPDisplayFormPage):
+class UniversityPage(KOFADisplayFormPage):
     """ The main university page.
     """
@@ -290,6 +290,6 @@
     @property
     def frontpage(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        lang = self.request.cookies.get('sirp.language', portal_language)
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        lang = self.request.cookies.get('kofa.language', portal_language)
         html = self.context['configuration'].frontpage_dict.get(lang,'')
         if html =='':
@@ -297,9 +297,9 @@
                 'configuration'].frontpage_dict.get(portal_language,'')
         if html =='':
-            return _(u'<h1>Welcome to WAeUP.SIRP</h1>')
+            return _(u'<h1>Welcome to WAeUP.KOFA</h1>')
         else:
             return html
 
-class AdministrationPage(SIRPPage):
+class AdministrationPage(KOFAPage):
     """ The administration overview page.
     """
@@ -319,5 +319,5 @@
 
     name = 'General news feed'
-    description = 'waeup.sirp now supports RSS 2.0 feeds :-)'
+    description = 'waeup.kofa now supports RSS 2.0 feeds :-)'
     language = None
     date = None
@@ -378,5 +378,5 @@
 #
 
-class UsersContainerPage(SIRPPage):
+class UsersContainerPage(KOFAPage):
     """Overview page for all local users.
     """
@@ -418,5 +418,5 @@
         return site_roles_string
 
-class AddUserFormPage(SIRPAddFormPage):
+class AddUserFormPage(KOFAAddFormPage):
     grok.require('waeup.manageUsers')
     grok.context(IUsersContainer)
@@ -456,5 +456,5 @@
         self.redirect(self.url(self.context))
 
-class UserManageFormPage(SIRPEditFormPage):
+class UserManageFormPage(KOFAEditFormPage):
     """Manage a user account.
     """
@@ -525,6 +525,6 @@
         usertype = getattr(self.request.principal,
                            'user_type', 'system').title()
-        sirp_utils = getUtility(ISIRPUtils)
-        success = sirp_utils.sendContactForm(
+        kofa_utils = getUtility(IKOFAUtils)
+        success = kofa_utils.sendContactForm(
                 self.request.principal.title,email,
                 self.context.title,self.context.email,
@@ -550,5 +550,5 @@
         self.widgets['title'].displayWidth = 30
 
-class MyRolesPage(SIRPPage):
+class MyRolesPage(KOFAPage):
     """Display site roles and local roles assigned to officers.
     """
@@ -581,5 +581,5 @@
 #
 
-class SearchPage(SIRPPage):
+class SearchPage(KOFAPage):
     """General search page for the academics section.
     """
@@ -608,5 +608,5 @@
 #
 
-class ConfigurationContainerDisplayFormPage(SIRPDisplayFormPage):
+class ConfigurationContainerDisplayFormPage(KOFADisplayFormPage):
     """View page of the configuration container.
     """
@@ -619,5 +619,5 @@
     form_fields['frontpage'].custom_widget = ReSTDisplayWidget
 
-class ConfigurationContainerManageFormPage(SIRPEditFormPage):
+class ConfigurationContainerManageFormPage(KOFAEditFormPage):
     """Manage page of the configuration container. We always use the
     manage page in the UI not the view page, thus we use the index name here.
@@ -684,5 +684,5 @@
         return
 
-class SessionConfigurationAddFormPage(SIRPAddFormPage):
+class SessionConfigurationAddFormPage(KOFAAddFormPage):
     """Add a session configuration object to configuration container.
     """
@@ -711,5 +711,5 @@
         return
 
-class SessionConfigurationManageFormPage(SIRPEditFormPage):
+class SessionConfigurationManageFormPage(KOFAEditFormPage):
     """Manage session configuration object.
     """
@@ -742,5 +742,5 @@
 #
 
-class DatacenterPage(SIRPPage):
+class DatacenterPage(KOFAPage):
     grok.context(IDataCenter)
     grok.name('index')
@@ -749,5 +749,5 @@
     pnav = 0
 
-class DatacenterUploadPage(SIRPPage):
+class DatacenterUploadPage(KOFAPage):
     grok.context(IDataCenter)
     grok.name('upload')
@@ -794,5 +794,5 @@
         return '%s_%s%s' % (base, filtered_username, ext.lower())
 
-class DatacenterImportStep1(SIRPPage):
+class DatacenterImportStep1(KOFAPage):
     """Manual import step 1: choose file
     """
@@ -820,9 +820,9 @@
         if select is not None:
             # A filename was selected
-            session = ISession(self.request)['waeup.sirp']
+            session = ISession(self.request)['waeup.kofa']
             session['import_filename'] = select
             self.redirect(self.url(self.context, '@@import2'))
 
-class DatacenterImportStep2(SIRPPage):
+class DatacenterImportStep2(KOFAPage):
     """Manual import step 2: choose importer
     """
@@ -909,5 +909,5 @@
     def update(self, mode=None, importer=None,
                back1=None, cancel=None, proceed=None):
-        session = ISession(self.request)['waeup.sirp']
+        session = ISession(self.request)['waeup.kofa']
         self.filename = session.get('import_filename', None)
 
@@ -944,5 +944,5 @@
             self.flash(warnings)
 
-class DatacenterImportStep3(SIRPPage):
+class DatacenterImportStep3(KOFAPage):
     """Manual import step 3: modify header
     """
@@ -1023,5 +1023,5 @@
 
     def update(self, headerfield=None, back2=None, cancel=None, proceed=None):
-        session = ISession(self.request)['waeup.sirp']
+        session = ISession(self.request)['waeup.kofa']
         self.filename = session.get('import_filename', None)
         self.mode = session.get('import_mode', None)
@@ -1052,5 +1052,5 @@
             self.flash(warnings)
 
-class DatacenterImportStep4(SIRPPage):
+class DatacenterImportStep4(KOFAPage):
     """Manual import step 4: do actual import
     """
@@ -1074,5 +1074,5 @@
             self.redirect(self.url(self.context))
             return
-        session = ISession(self.request)['waeup.sirp']
+        session = ISession(self.request)['waeup.kofa']
         self.filename = session.get('import_filename', None)
         self.mode = session.get('import_mode', None)
@@ -1111,5 +1111,5 @@
             mapping = {'a':linenum - self.warn_num}))
 
-class DatacenterLogsOverview(SIRPPage):
+class DatacenterLogsOverview(KOFAPage):
     grok.context(IDataCenter)
     grok.name('logs')
@@ -1122,5 +1122,5 @@
 
     def update(self, show=None, logname=None, back=None):
-        session = ISession(self.request)['waeup.sirp']
+        session = ISession(self.request)['waeup.kofa']
         if back is not None:
             self.redirect(self.url(self.context))
@@ -1133,5 +1133,5 @@
         self.files = self.context.getLogFiles()
 
-class DatacenterLogsFileview(SIRPPage):
+class DatacenterLogsFileview(KOFAPage):
     grok.context(IDataCenter)
     grok.name('show')
@@ -1153,5 +1153,5 @@
             self.redirect(self.url(self.context, '@@logs'))
             return
-        session = ISession(self.request)['waeup.sirp']
+        session = ISession(self.request)['waeup.kofa']
         logname = session.get('logname', None)
         if back is not None or logname is None:
@@ -1172,5 +1172,5 @@
         popen.close()
 
-class DatacenterSettings(SIRPPage):
+class DatacenterSettings(KOFAPage):
     grok.context(IDataCenter)
     grok.name('manage')
@@ -1215,5 +1215,5 @@
 
     def render(self):
-        exporter = ISIRPXMLExporter(self.context)
+        exporter = IKOFAXMLExporter(self.context)
         xml = exporter.export().read()
         self.response.setHeader(
@@ -1221,5 +1221,5 @@
         return xml
 
-class ImportXMLPage(SIRPPage):
+class ImportXMLPage(KOFAPage):
     """Replace the context object by an object created from an XML
        representation.
@@ -1237,5 +1237,5 @@
         if not xmlfile:
             return
-        importer = ISIRPXMLImporter(self.context)
+        importer = IKOFAXMLImporter(self.context)
         obj = importer.doImport(xmlfile)
         if type(obj) != type(self.context):
@@ -1257,5 +1257,5 @@
 #
 
-class FacultiesContainerPage(SIRPPage):
+class FacultiesContainerPage(KOFAPage):
     """ Index page for faculty containers.
     """
@@ -1267,5 +1267,5 @@
     grok.template('facultypage')
 
-class FacultiesContainerManageFormPage(SIRPEditFormPage):
+class FacultiesContainerManageFormPage(KOFAEditFormPage):
     """Manage the basic properties of a `Faculty` instance.
     """
@@ -1302,5 +1302,5 @@
 
 
-class FacultyAddFormPage(SIRPAddFormPage):
+class FacultyAddFormPage(KOFAAddFormPage):
     """ Page form to add a new faculty to a faculty container.
     """
@@ -1330,5 +1330,5 @@
 # Faculty pages
 #
-class FacultyPage(SIRPPage):
+class FacultyPage(KOFAPage):
     """Index page of faculties.
     """
@@ -1342,5 +1342,5 @@
         return _('Departments')
 
-class FacultyManageFormPage(SIRPEditFormPage):
+class FacultyManageFormPage(KOFAEditFormPage):
     """Manage the basic properties of a `Faculty` instance.
     """
@@ -1416,5 +1416,5 @@
         return del_local_roles(self,3,**data)
 
-class DepartmentAddFormPage(SIRPAddFormPage):
+class DepartmentAddFormPage(KOFAAddFormPage):
     """Add a department to a faculty.
     """
@@ -1446,5 +1446,5 @@
 # Department pages
 #
-class DepartmentPage(SIRPPage):
+class DepartmentPage(KOFAPage):
     """Department index page.
     """
@@ -1475,5 +1475,5 @@
             yield(dict(url=url, name=key, container=val))
 
-class ShowStudentsInDepartmentPage(SIRPPage):
+class ShowStudentsInDepartmentPage(KOFAPage):
     """Page that lists all students in the department.
     """
@@ -1510,5 +1510,5 @@
         return hitlist
 
-class DepartmentManageFormPage(SIRPEditFormPage):
+class DepartmentManageFormPage(KOFAEditFormPage):
     """Manage the basic properties of a `Department` instance.
     """
@@ -1612,5 +1612,5 @@
         return del_local_roles(self,4,**data)
 
-class CourseAddFormPage(SIRPAddFormPage):
+class CourseAddFormPage(KOFAAddFormPage):
     """Add-form to add course to a department.
     """
@@ -1649,5 +1649,5 @@
         return
 
-class CertificateAddFormPage(SIRPAddFormPage):
+class CertificateAddFormPage(KOFAAddFormPage):
     """Add-form to add certificate to a department.
     """
@@ -1690,5 +1690,5 @@
 # Courses pages
 #
-class CoursePage(SIRPDisplayFormPage):
+class CoursePage(KOFADisplayFormPage):
     """Course index page.
     """
@@ -1703,5 +1703,5 @@
         return '%s (%s)' % (self.context.title, self.context.code)
 
-class CourseManageFormPage(SIRPEditFormPage):
+class CourseManageFormPage(KOFAEditFormPage):
     """Edit form page for courses.
     """
@@ -1734,5 +1734,5 @@
 # Certificate pages
 #
-class CertificatePage(SIRPDisplayFormPage):
+class CertificatePage(KOFADisplayFormPage):
     """Index page for certificates.
     """
@@ -1752,5 +1752,5 @@
         return super(CertificatePage, self).update()
 
-class CertificateManageFormPage(SIRPEditFormPage):
+class CertificateManageFormPage(KOFAEditFormPage):
     """Manage the properties of a `Certificate` instance.
     """
@@ -1830,5 +1830,5 @@
 
 
-class CertificateCourseAddFormPage(SIRPAddFormPage):
+class CertificateCourseAddFormPage(KOFAAddFormPage):
     """Add-page to add a course ref to a certificate
     """
@@ -1862,5 +1862,5 @@
 # Certificate course pages...
 #
-class CertificateCoursePage(SIRPPage):
+class CertificateCoursePage(KOFAPage):
     """CertificateCourse index page.
     """
@@ -1879,5 +1879,5 @@
         return course_levels.getTerm(self.context.level).title
 
-class CertificateCourseManageFormPage(SIRPEditFormPage):
+class CertificateCourseManageFormPage(KOFAEditFormPage):
     """Manage the basic properties of a `CertificateCourse` instance.
     """
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/resources.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/resources.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/resources.py	(revision 7811)
@@ -16,5 +16,5 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""Special JavaScript and CSS resources provided by waeup.sirp.
+"""Special JavaScript and CSS resources provided by waeup.kofa.
 """
 #from hurry import yui
@@ -24,6 +24,6 @@
 
 
-#: All local resources are registered under the name ``waeup_sirp``.
-waeup_sirp = Library('waeup_sirp', 'static')
+#: All local resources are registered under the name ``waeup_kofa``.
+waeup_kofa = Library('waeup_kofa', 'static')
 
 #: A resource that binds a jQueryUI datepicker widget to each
@@ -36,5 +36,5 @@
 #:   require the JavaScript code to be rendered into the page::
 #:
-#:     from waeup.sirp.browser.resources import datepicker
+#:     from waeup.kofa.browser.resources import datepicker
 #:     # ...
 #:     class MyPage(...):
@@ -89,5 +89,5 @@
 #: ``"datepicker-us-year"``
 #:    same but also adds a select field for year
-datepicker = ResourceInclusion(waeup_sirp, 'datepicker.js',
+datepicker = ResourceInclusion(waeup_kofa, 'datepicker.js',
                                depends=[jqueryui])
 
@@ -99,5 +99,5 @@
 #:   require the JavaScript code to be rendered into the page::
 #:
-#:     from waeup.sirp.browser.resources import warning
+#:     from waeup.kofa.browser.resources import warning
 #:     # ...
 #:     class MyPage(...):
@@ -115,5 +115,5 @@
 #:        <input type="submit" name="xyz" value="abc">
 #:               onclick="return confirmPost('Are you sure?')"/>
-warning = ResourceInclusion(waeup_sirp, 'warning.js')
+warning = ResourceInclusion(waeup_kofa, 'warning.js')
 
 #: If you have many select boxes in a from which have to be selected at the same
@@ -123,5 +123,5 @@
 #:   require the JavaScript code to be rendered into the page::
 #:
-#:     from waeup.sirp.browser.resources import toggleall
+#:     from waeup.kofa.browser.resources import toggleall
 #:     # ...
 #:     class MyPage(...):
@@ -138,5 +138,5 @@
 #:
 #:    <input type="checkbox" onClick="toggle(this, 'entries')" />
-toggleall = ResourceInclusion(waeup_sirp, 'toggleall.js')
+toggleall = ResourceInclusion(waeup_kofa, 'toggleall.js')
 
 #: A resource that binds Bootstrap tabs to <div> tags with class
@@ -150,5 +150,5 @@
 #:   tab for redirection::
 #:
-#:     from waeup.sirp.browser.resources import tabs
+#:     from waeup.kofa.browser.resources import tabs
 #:
 #:     class MyPage(...):
@@ -188,5 +188,5 @@
 #: for details.
 #:
-tabs = ResourceInclusion(waeup_sirp, 'bootstrap-tabs-1.4.0.js',
+tabs = ResourceInclusion(waeup_kofa, 'bootstrap-tabs-1.4.0.js',
                           depends=[jquery])
 
@@ -197,10 +197,10 @@
 #: use of datatables you might want to add some specialized CSS like
 #: `datatable_css` below.
-datatables = ResourceInclusion(waeup_sirp, 'jquery.dataTables.js',
+datatables = ResourceInclusion(waeup_kofa, 'jquery.dataTables.js',
                                minified='jquery.dataTables.min.js',
                                depends=[jquery])
 
 #: A stylesheet for datatables
-datatables_css = ResourceInclusion(waeup_sirp, 'datatables.css')
+datatables_css = ResourceInclusion(waeup_kofa, 'datatables.css')
 
 #: A resource that turns HTML tables into sortable, searchable and :
@@ -214,5 +214,5 @@
 #:   require the JavaScript code to be rendered into the page::
 #:
-#:     from waeup.sirp.browser.resources import datatable
+#:     from waeup.kofa.browser.resources import datatable
 #:     # ...
 #:     class MyPage(...):
@@ -251,23 +251,23 @@
 #: for details.
 #:
-datatable = ResourceInclusion(waeup_sirp, 'datatable.js',
+datatable = ResourceInclusion(waeup_kofa, 'datatable.js',
                               depends=[datatables, datatables_css])
 
 #: Register Twitter's Bootsrap css including dropdown js as a resource.
 bootstrap_min = ResourceInclusion(
-    waeup_sirp, 'bootstrap-1.4.0.css')
+    waeup_kofa, 'bootstrap-1.4.0.css')
 
 dropdown = ResourceInclusion(
-    waeup_sirp, 'bootstrap-dropdown-1.4.0.js',
+    waeup_kofa, 'bootstrap-dropdown-1.4.0.js',
     depends=[jquery])
 
-#: Register basic SIRP CSS (which is based on ``bootstrap.min-1.4.0.css`` 
+#: Register basic KOFA CSS (which is based on ``bootstrap.min-1.4.0.css`` 
 #: and ``base`` as a resource.
 waeup_base_css = ResourceInclusion(
-    waeup_sirp, 'waeup-base.css',
+    waeup_kofa, 'waeup-base.css',
     depends=[dropdown,bootstrap_min, base])
 
 #: A basic theme based on jQuery only (crappy yet).
 waeuptheme_empty = ResourceInclusion(
-    waeup_sirp, 'empty.css',
+    waeup_kofa, 'empty.css',
     depends=[humanity])
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/static/datatable.js
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/static/datatable.js	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/static/datatable.js	(revision 7811)
@@ -4,5 +4,5 @@
 		"aaSorting": [[ 1, "asc" ]],
 		"aoColumnDefs":[{ "bSortable": false, "aTargets": [ 0 ] }]
-	} );    
+	} );
 });
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/static/datepicker.js
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/static/datepicker.js	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/static/datepicker.js	(revision 7811)
@@ -1,4 +1,4 @@
 $(function() {
-  $( ".datepicker" ).datepicker({ dateFormat: 'yy-mm-dd', 
+  $( ".datepicker" ).datepicker({ dateFormat: 'yy-mm-dd',
                                   duration: 'fast'
   });
@@ -24,5 +24,5 @@
 
 $(function() {
-  $( ".datepicker-year" ).datepicker({ dateFormat: 'yy-mm-dd', 
+  $( ".datepicker-year" ).datepicker({ dateFormat: 'yy-mm-dd',
 	duration: 'fast',
 	changeYear: true,
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/static/waeup-base.css
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/static/waeup-base.css	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/static/waeup-base.css	(revision 7811)
@@ -1,3 +1,3 @@
-/* This is the base stylesheet for SIRP. It defines base styles
+/* This is the base stylesheet for KOFA. It defines base styles
 additionally or modifying Bootstrap styles. For themes, please create
 a stylesheet overriding values set here in a file named
@@ -132,5 +132,5 @@
 }
 
- /* SIRP stuff */
+ /* KOFA stuff */
 
 div.actionbar {
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/certificatecoursepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/certificatecoursepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/certificatecoursepage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<table i18n:domain="waeup.sirp" class="form-table">
+<table i18n:domain="waeup.kofa" class="form-table">
   <thead>
   </thead>
@@ -6,9 +6,9 @@
       <td i18n:translate="">Code:</td>
       <td tal:content="context/__name__">CODE</td>
-    </tr>  
+    </tr>
     <tr>
       <td i18n:translate="">Course Code:</td>
       <td tal:content="context/getCourseCode">THE COURSE</td>
-    </tr>    
+    </tr>
     <tr>
       <td i18n:translate="">Course Title:</td>
@@ -17,10 +17,10 @@
     <tr>
       <td i18n:translate="">Provided by:</td>
-      <td> 
+      <td>
       <span tal:content="python: context.course.__parent__.__parent__.longtitle()">DEPARTMENT</span>
       <br />
       <span tal:content="python: context.course.__parent__.__parent__.__parent__.longtitle()">FACULTY</span>
       </td>
-    </tr>    
+    </tr>
     <tr>
       <td i18n:translate="">Level:</td>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/certificatemanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/certificatemanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/certificatemanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      enctype="multipart/form-data" i18n:domain="waeup.sirp">
+      enctype="multipart/form-data" i18n:domain="waeup.kofa">
 
   <ul class="tabs" data-tabs="tabs">
@@ -7,5 +7,5 @@
     <li tal:attributes="class view/tab3"><a href="#tab-3" i18n:translate="">Local Roles</a></li>
   </ul>
-   
+
   <div class="tab-content">
     <div id="tab-1" tal:attributes="class view/tab1">
@@ -136,5 +136,5 @@
     </div>
   </div>
-</form>  
+</form>
 
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/certificatepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/certificatepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/certificatepage.pt	(revision 7811)
@@ -1,5 +1,5 @@
 <table class="form-table">
 <thead>
-</thead>  
+</thead>
 <tbody>
   <tal:block repeat="widget view/widgets">
@@ -20,8 +20,8 @@
 <h3>
   <span tal:content="context/__name__">Code</span>
-  <span i18n:domain="waeup.sirp" i18n:translate="">Course Referrers</span>
+  <span i18n:domain="waeup.kofa" i18n:translate="">Course Referrers</span>
 </h3>
 <br />
-<table i18n:domain="waeup.sirp" class="display dataTable">
+<table i18n:domain="waeup.kofa" class="display dataTable">
 <thead>
   <tr>
@@ -49,5 +49,5 @@
 	     tal:content="cc/course/code">
     	COURSE CODE
-      </a>     
+      </a>
     <td>
       <span tal:content="cc/course/title">
@@ -59,5 +59,5 @@
 	   MANDATORY
       </span>
-    </td>                
+    </td>
   </tr>
 </tbody>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/configurationmanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/configurationmanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/configurationmanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-  enctype="multipart/form-data" i18n:domain="waeup.sirp">
+  enctype="multipart/form-data" i18n:domain="waeup.kofa">
     <ul class="tabs" data-tabs="tabs">
       <li tal:attributes="class view/tab1">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/contactform.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/contactform.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/contactform.pt	(revision 7811)
@@ -3,5 +3,5 @@
 
   <tal:block repeat="widget view/widgets">
-    
+
     <div tal:condition="python: widget.name != 'form.body'"
          tal:content="widget/label">Label
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport1page.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport1page.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport1page.pt	(revision 7811)
@@ -1,11 +1,11 @@
-<h3 i18n:domain="waeup.sirp" i18n:translate="">Step 1</h3>
-<p i18n:domain="waeup.sirp" i18n:translate="">
+<h3 i18n:domain="waeup.kofa" i18n:translate="">Step 1</h3>
+<p i18n:domain="waeup.kofa" i18n:translate="">
   Using batch processing you can mass-create, mass-update, or
   mass-remove datasets from the database using CSV files.
 </p>
-<p i18n:domain="waeup.sirp" i18n:translate="">
+<p i18n:domain="waeup.kofa" i18n:translate="">
   Please select a file for processing from the list below.
 </p>
-<form i18n:domain="waeup.sirp" method="POST">
+<form i18n:domain="waeup.kofa" method="POST">
   <table>
     <thead>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport2page.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport2page.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport2page.pt	(revision 7811)
@@ -1,4 +1,4 @@
-<h3 i18n:domain="waeup.sirp" i18n:translate="">Step 2</h3>
-<form i18n:domain="waeup.sirp" method="POST">
+<h3 i18n:domain="waeup.kofa" i18n:translate="">Step 2</h3>
+<form i18n:domain="waeup.kofa" method="POST">
   <p>
     <b i18n:translate="">File:</b>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport3page.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport3page.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport3page.pt	(revision 7811)
@@ -1,9 +1,9 @@
-<div i18n:domain="waeup.sirp" i18n:translate=""
+<div i18n:domain="waeup.kofa" i18n:translate=""
   class="alert-message success" tal:condition="not: view/getWarnings">
   Header fields OK
 </div>
 
-<h3 i18n:domain="waeup.sirp" i18n:translate="">Step 3</h3>
-<form i18n:domain="waeup.sirp">
+<h3 i18n:domain="waeup.kofa" i18n:translate="">Step 3</h3>
+<form i18n:domain="waeup.kofa">
   <p i18n:translate="">
     Eventually modify headerfields of import file below.
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport4page.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport4page.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterimport4page.pt	(revision 7811)
@@ -1,18 +1,18 @@
-<h3 i18n:domain="waeup.sirp" i18n:translate="">Step 4</h3>
-<p i18n:domain="waeup.sirp" i18n:translate="">
+<h3 i18n:domain="waeup.kofa" i18n:translate="">Step 4</h3>
+<p i18n:domain="waeup.kofa" i18n:translate="">
   Batch processing finished.
 </p>
-<p i18n:domain="waeup.sirp">
+<p i18n:domain="waeup.kofa">
   <b i18n:translate="">File:</b> <span tal:content="view/filename">Filename.csv</span>
 </p>
-<p i18n:domain="waeup.sirp">
+<p i18n:domain="waeup.kofa">
   <b i18n:translate="">Processor:</b>
   <span tal:content="view/importer/name">Importer Name</span>
 </p>
-<p i18n:domain="waeup.sirp">
+<p i18n:domain="waeup.kofa">
   <b i18n:translate="">Processing mode: </b>
   <span tal:content="view/mode">mode</span>
 </p>
-<form method="POST" i18n:domain="waeup.sirp">
+<form method="POST" i18n:domain="waeup.kofa">
   <input class="btn primary" type="submit" name="finish"
     tal:attributes="value view/back_button" />
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterlogspage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterlogspage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterlogspage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<div i18n:domain="waeup.sirp" tal:define="files view/files">
+<div i18n:domain="waeup.kofa" tal:define="files view/files">
   <p i18n:translate="" tal:condition="not: files">
   Currently no log files are available.
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacentermanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacentermanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacentermanagepage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<form  i18n:domain="waeup.sirp" method="POST">
+<form  i18n:domain="waeup.kofa" method="POST">
   <div>
     <span  i18n:translate="">Storage path:</span>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterpage.pt	(revision 7811)
@@ -1,13 +1,13 @@
-<p  i18n:domain="waeup.sirp" i18n:translate="">
+<p  i18n:domain="waeup.kofa" i18n:translate="">
 The data center helps you to manage portal data. You can upload CSV
 files here, which will be available for import afterwards.
 </p>
 
-<p i18n:domain="waeup.sirp">
+<p i18n:domain="waeup.kofa">
   <b i18n:translate="">Storage path:</b>
   <span tal:content="context/storage">/foo/bar</span>
 </p>
 
-<table i18n:domain="waeup.sirp">
+<table i18n:domain="waeup.kofa">
   <thead>
     <tr>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/departmentmanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/departmentmanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/departmentmanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-  i18n:domain="waeup.sirp" enctype="multipart/form-data">
+  i18n:domain="waeup.kofa" enctype="multipart/form-data">
   <ul class="tabs" data-tabs="tabs">
     <li tal:attributes="class view/tab1">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/departmentpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/departmentpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/departmentpage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<ul i18n:domain="waeup.sirp" class="tabs" data-tabs="tabs">
+<ul i18n:domain="waeup.kofa" class="tabs" data-tabs="tabs">
   <li class="active"><a href="#tab-1">
    <span i18n:translate="">Courses</span></a>
@@ -7,7 +7,7 @@
   </li>
 </ul>
-<div  i18n:domain="waeup.sirp" class="tab-content">
+<div  i18n:domain="waeup.kofa" class="tab-content">
     <div id="tab-1" class="active">
-    <br /> 
+    <br />
     <table class="display dataTable">
       <thead>
@@ -26,10 +26,10 @@
           <td tal:content="entry/container/title">
     	       Title
-          </td> 
+          </td>
         </tr>
       </tbody>
     </table>
     <br /><br />
-    </div> 
+    </div>
     <div id="tab-2">
     <br />
@@ -50,5 +50,5 @@
           <td tal:content="entry/container/title">
     	       Title
-          </td> 
+          </td>
         </tr>
       </tbody>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/facultymanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/facultymanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/facultymanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL"
-  i18n:domain="waeup.sirp" method="POST" enctype="multipart/form-data">
+  i18n:domain="waeup.kofa" method="POST" enctype="multipart/form-data">
   <ul class="tabs" data-tabs="tabs">
     <li tal:attributes="class view/tab1">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/facultypage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/facultypage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/facultypage.pt	(revision 7811)
@@ -1,7 +1,7 @@
-<div i18n:domain="waeup.sirp" i18n:translate="" tal:condition="python: not len(context.keys())">
+<div i18n:domain="waeup.kofa" i18n:translate="" tal:condition="python: not len(context.keys())">
 There no subobjects registered yet.
 </div>
 
-<table i18n:domain="waeup.sirp">
+<table i18n:domain="waeup.kofa">
   <thead>
     <tr>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/loginpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/loginpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/loginpage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<form i18n:domain="waeup.sirp" method="post">
+<form i18n:domain="waeup.kofa" method="post">
   <table id="login" class="form-table" summary="Table for entering login information">
     <tbody>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/myrolespage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/myrolespage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/myrolespage.pt	(revision 7811)
@@ -1,5 +1,5 @@
-<h3 i18n:domain="waeup.sirp"
+<h3 i18n:domain="waeup.kofa"
     i18n:translate="">My Portal Roles:</h3>
-<table i18n:domain="waeup.sirp" class="form-table">
+<table i18n:domain="waeup.kofa" class="form-table">
 <tr tal:repeat="role view/getSiteRoles">
     <td>
@@ -9,5 +9,5 @@
 </table>
 
-<h3 i18n:domain="waeup.sirp"
+<h3 i18n:domain="waeup.kofa"
     i18n:translate="">My Local Roles:</h3>
 <table class="form-table">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/notfound.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/notfound.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/notfound.pt	(revision 7811)
@@ -1,9 +1,9 @@
-<h2 i18n:domain="waeup.sirp" i18n:translate="">
+<h2 i18n:domain="waeup.kofa" i18n:translate="">
   The page you are trying to access is not available.
 </h2>
 
-<div i18n:domain="waeup.sirp">
+<div i18n:domain="waeup.kofa">
   <b i18n:translate="">Please note the following:</b></div>
-<div i18n:domain="waeup.sirp">
+<div i18n:domain="waeup.kofa">
   <ol class="list">
     <li i18n:translate="">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/searchpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/searchpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/searchpage.pt	(revision 7811)
@@ -6,5 +6,5 @@
 </form>
 <br />
-<span  i18n:domain="waeup.sirp" tal:condition="view/hitlist">
+<span  i18n:domain="waeup.kofa" tal:condition="view/hitlist">
     <h3 i18n:translate="">Search Results</h3>
     <table class="display dataTable">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/showstudentspage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/showstudentspage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/showstudentspage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<table i18n:domain="waeup.sirp" class="display dataTable">
+<table i18n:domain="waeup.kofa" class="display dataTable">
   <thead>
 	<tr>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/staffsitelayout.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/staffsitelayout.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/staffsitelayout.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <!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" i18n:domain="waeup.sirp">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" i18n:domain="waeup.kofa">
   <head>
     <title>WAeUP - your way up
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/studentsitelayout.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/studentsitelayout.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/studentsitelayout.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <!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" i18n:domain="waeup.sirp">
+<html xmlns="http://www.w3.org/1999/xhtml" i18n:domain="waeup.kofa">
   <head>
     <title>WAeUP - your way up
@@ -10,5 +10,5 @@
     <meta name="viewport" content="width=320, initial-scale=1, maximum-scale=1"/>
     <link rel="stylesheet" media="only screen and (max-device-width: 480px)"
-        tal:attributes="href python: view.url(layout.site, '@@/waeup.sirp.browser/mobile.css')"
+        tal:attributes="href python: view.url(layout.site, '@@/waeup.kofa.browser/mobile.css')"
         type="text/css" />
     <link rel="shortcut icon" tal:attributes="href static/favicon.ico" type="image/x-icon" />
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/universityrss20feed.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/universityrss20feed.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/universityrss20feed.pt	(revision 7811)
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<rss version="2.0" 
-     xmlns:tal="http://xml.zope.org/namespaces/tal" 
+<rss version="2.0"
+     xmlns:tal="http://xml.zope.org/namespaces/tal"
      xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
     <title>
       <tal:block tal:content="view/title"/>
-      <tal:block 
-	  tal:define="title view/contexttitle" 
+      <tal:block
+	  tal:define="title view/contexttitle"
 	  tal:condition="title"> - <tal:block content="title"/>
       </tal:block>
@@ -16,20 +16,20 @@
 	tal:content="view/description"></description>
     <language
-	tal:condition="view/language" 
+	tal:condition="view/language"
 	tal:content="view/language"></language>
     <pubDate
-	tal:condition="view/date" 
+	tal:condition="view/date"
 	tal:content="view/date"></pubDate>
     <lastBuildDate
-	tal:condition="view/buildDate" 
+	tal:condition="view/buildDate"
 	tal:content="view/buildDate"></lastBuildDate>
     <managingEditor
-	tal:condition="view/editor" 
+	tal:condition="view/editor"
 	tal:content="view/editor"></managingEditor>
     <webMaster
-	tal:condition="view/webmaster" 
+	tal:condition="view/webmaster"
 	tal:content="view/webmaster"></webMaster>
     <atom:link
-	tal:attributes="href string:${view/link}@@feeds/${view/name}" 
+	tal:attributes="href string:${view/link}@@feeds/${view/name}"
 	rel="self" type="application/rss+xml" />
     <item
@@ -40,18 +40,18 @@
 	  tal:content="item/description"></description>
       <guid
-	  tal:content="item/guid" 
+	  tal:content="item/guid"
 	  tal:define="isPermaLink item/isPermaLink|nothing"
 	  tal:attributes="isPermaLink python:isPermaLink and 'true' or 'false'"></guid>
       <link
-	  tal:condition="item/link|nothing" 
+	  tal:condition="item/link|nothing"
 	  tal:content="item/link"></link>
       <author
-	  tal:condition="item/author|nothing" 
+	  tal:condition="item/author|nothing"
 	  tal:content="item/author"></author>
       <category
-	  tal:condition="item/category|nothing" 
+	  tal:condition="item/category|nothing"
 	  tal:content="item/category"></category>
       <pubDate
-	  tal:condition="item/pubDate|nothing" 
+	  tal:condition="item/pubDate|nothing"
 	  tal:content="item/pubDate"></pubDate>
     </item>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/usereditformpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/usereditformpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/usereditformpage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="post"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <table class="form-table">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/userscontainerpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/userscontainerpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/userscontainerpage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<table i18n:domain="waeup.sirp">
+<table i18n:domain="waeup.kofa">
   <thead>
     <tr>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_captcha.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_captcha.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_captcha.py	(revision 7811)
@@ -21,9 +21,9 @@
 from zope.interface import verify
 from zope.publisher.browser import TestRequest
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.browser.captcha import (
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.browser.captcha import (
     CaptchaResponse, CaptchaRequest, NullCaptcha, StaticCaptcha, ReCaptcha,
     CaptchaManager)
-from waeup.sirp.browser.interfaces import (
+from waeup.kofa.browser.interfaces import (
     ICaptchaRequest, ICaptchaResponse, ICaptcha, ICaptchaConfig,
     ICaptchaManager)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_doctests.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_doctests.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_doctests.py	(revision 7811)
@@ -18,5 +18,5 @@
 """Setup doctests for browser module.
 """
-from waeup.sirp.testing import get_doctest_suite
+from waeup.kofa.testing import get_doctest_suite
 
 def test_suite():
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_permissions.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_permissions.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_permissions.py	(revision 7811)
@@ -31,6 +31,6 @@
 from zope.security.interfaces import Unauthorized
 from zope.testbrowser.testing import Browser
-from waeup.sirp.app import University
-from waeup.sirp.testing import (
+from waeup.kofa.app import University
+from waeup.kofa.testing import (
     FunctionalLayer, FunctionalTestCase, get_all_loggers, remove_new_loggers,
     remove_logger)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/theming.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/theming.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/theming.py	(revision 7811)
@@ -23,11 +23,11 @@
 from zope.interface import Interface
 from zope.schema.interfaces import IVocabularyFactory
-from waeup.sirp.interfaces import SimpleSIRPVocabulary
-from waeup.sirp.browser.interfaces import ITheme
-from waeup.sirp.browser.resources import (
+from waeup.kofa.interfaces import SimpleKOFAVocabulary
+from waeup.kofa.browser.interfaces import ITheme
+from waeup.kofa.browser.resources import (
     waeuptheme_empty, waeup_base_css,
     )
 
-class SIRPThemeBase(grok.GlobalUtility):
+class KOFAThemeBase(grok.GlobalUtility):
     grok.implements(ITheme)
     grok.name('base waeup theme')
@@ -38,5 +38,5 @@
         return [waeup_base_css]
 
-#class SIRPThemeRed1(grok.GlobalUtility):
+#class KOFAThemeRed1(grok.GlobalUtility):
 #    grok.implements(ITheme)
 #    grok.name('red waeup theme')
@@ -47,5 +47,5 @@
 #        return [waeuptheme_red1]
 
-#class SIRPThemeGray1(grok.GlobalUtility):
+#class KOFAThemeGray1(grok.GlobalUtility):
 #    grok.implements(ITheme)
 #    grok.name('gray waeup theme')
@@ -56,5 +56,5 @@
 #        return [waeuptheme_gray1]
 
-class SIRPThemeEmpty(grok.GlobalUtility):
+class KOFAThemeEmpty(grok.GlobalUtility):
     """A theme based on jQuery only.
 
@@ -87,10 +87,10 @@
     and registered under the name
 
-      'waeup.sirp.browser.theming.ThemesVocabulary'
+      'waeup.kofa.browser.theming.ThemesVocabulary'
 
     Interface fields that wish to provide a list of available themes
     can require a 'named vocabulary', i.e. set:
 
-      vocabulary = 'waeup.sirp.browser.theming.ThemesVocabulary'
+      vocabulary = 'waeup.kofa.browser.theming.ThemesVocabulary'
 
     and the vocabulary will deliver themes and their descriptive text
@@ -101,5 +101,5 @@
     """
     grok.implements(IVocabularyFactory)
-    grok.name('waeup.sirp.browser.theming.ThemesVocabulary')
+    grok.name('waeup.kofa.browser.theming.ThemesVocabulary')
 
     def __call__(self, context):
@@ -112,4 +112,4 @@
         terms = [(theme.description, name)
                  for name, theme in get_all_themes()]
-        vocab = SimpleSIRPVocabulary(*terms)
+        vocab = SimpleKOFAVocabulary(*terms)
         return vocab
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/viewlets.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/viewlets.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/viewlets.py	(revision 7811)
@@ -23,21 +23,21 @@
 from zope.location.interfaces import ISite
 from zope.traversing.browser import absoluteURL
-from waeup.sirp.browser.pages import (
+from waeup.kofa.browser.pages import (
     UniversityPage, FacultiesContainerPage, DatacenterPage, FacultyPage,
     DepartmentPage, CoursePage, CertificatePage, CertificateCoursePage,
     UsersContainerPage, UserManageFormPage)
-from waeup.sirp.browser.interfaces import (
+from waeup.kofa.browser.interfaces import (
     IFacultiesContainer, IFaculty, IDepartment, ICourse, ICertificate,
     ICertificateCourse, IBreadcrumbContainer, IUniversity, IUsersContainer)
-from waeup.sirp.interfaces import (
-    ISIRPUtils, ISIRPObject, ISIRPXMLExporter,
-    ISIRPXMLImporter, IDataCenter, IUserAccount)
-from waeup.sirp.browser.layout import SIRPPage, default_primary_nav_template
-from waeup.sirp.utils.helpers import get_user_account
-
-from waeup.sirp.interfaces import MessageFactory as _
+from waeup.kofa.interfaces import (
+    IKOFAUtils, IKOFAObject, IKOFAXMLExporter,
+    IKOFAXMLImporter, IDataCenter, IUserAccount)
+from waeup.kofa.browser.layout import KOFAPage, default_primary_nav_template
+from waeup.kofa.utils.helpers import get_user_account
+
+from waeup.kofa.interfaces import MessageFactory as _
 
 grok.templatedir('templates')
-grok.context(ISIRPObject) # Make ISIRPObject the default context
+grok.context(IKOFAObject) # Make IKOFAObject the default context
 
 class LeftSidebar(grok.ViewletManager):
@@ -85,5 +85,5 @@
     """
     grok.baseclass()
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.viewletmanager(ActionBar)
     icon = 'actionicon_modify.png' # File must exist in static/
@@ -126,5 +126,5 @@
             # local to the derived class' module. As we often like to
             # get the icons from here
-            # (i.e. waeup.sirp.browser/static), we set the directory
+            # (i.e. waeup.kofa.browser/static), we set the directory
             # resource appropiately.
             #
@@ -134,5 +134,5 @@
             # TODO: notes in here should go to general documentation.
             static = queryAdapter(
-                self.request, Interface, name='waeup.sirp.browser')
+                self.request, Interface, name='waeup.kofa.browser')
         return static[self.icon]()
 
@@ -196,5 +196,5 @@
 
 class BreadCrumbs(grok.Viewlet):
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.viewletmanager(BreadCrumbManager)
     grok.order(1)
@@ -216,10 +216,10 @@
     """
     grok.viewletmanager(LanguageManager)
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.require('waeup.Public')
     title = u'Languages'
 
     def render(self):
-        preferred_languages = getUtility(ISIRPUtils).PREFERRED_LANGUAGES_DICT
+        preferred_languages = getUtility(IKOFAUtils).PREFERRED_LANGUAGES_DICT
         html = u''
         for key, value in sorted(
@@ -257,5 +257,5 @@
     grok.baseclass()
     grok.viewletmanager(LeftSidebar)
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.order(5)
     grok.require('waeup.manageUniversity')
@@ -278,5 +278,5 @@
                 # local to the derived class' module. As we often like to
                 # get the icons from here
-                # (i.e. waeup.sirp.browser/static), we set the directory
+                # (i.e. waeup.kofa.browser/static), we set the directory
                 # resource appropiately.
                 #
@@ -286,5 +286,5 @@
                 # TODO: notes in here should go to general documentation.
                 static = queryAdapter(
-                    self.request, Interface, name='waeup.sirp.browser')
+                    self.request, Interface, name='waeup.kofa.browser')
             return static[self.icon]()
         return
@@ -310,5 +310,5 @@
 
 #
-# waeup.sirp.app.University viewlets...
+# waeup.kofa.app.University viewlets...
 #
 class Login(grok.Viewlet):
@@ -316,5 +316,5 @@
     """
     grok.viewletmanager(LeftSidebar)
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.view(Interface)
     grok.order(2)
@@ -350,5 +350,5 @@
     """
     grok.viewletmanager(LeftSidebar)
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.view(Interface)
     grok.order(5)
@@ -520,5 +520,5 @@
 class BrowseActionButton(ActionButton):
     grok.baseclass()
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.template('actionbutton')
     grok.viewletmanager(ActionBar)
@@ -686,5 +686,5 @@
     target_viewname = 'datacenter'
 
-# The SubobjectLister and its viewlets below are not used in SIRP.
+# The SubobjectLister and its viewlets below are not used in KOFA.
 
 class SubobjectLister(grok.ViewletManager):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/catalog.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/catalog.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/catalog.py	(revision 7811)
@@ -27,9 +27,9 @@
 from zope.intid.interfaces import IIntIds
 
-from waeup.sirp.app import University
-from waeup.sirp.interfaces import IQueryResultItem
+from waeup.kofa.app import University
+from waeup.kofa.interfaces import IQueryResultItem
 
 # not yet used
-class SIRPQuery(Query):
+class KOFAQuery(Query):
     """A hurry.query-like query that supports also ``apply``.
     """
@@ -50,5 +50,5 @@
         return results
 
-grok.global_utility(SIRPQuery)
+grok.global_utility(KOFAQuery)
 
 # not yet used
Index: /main/waeup.kofa/trunk/src/waeup/kofa/catalog.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/catalog.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/catalog.txt	(revision 7811)
@@ -1,12 +1,12 @@
-:mod:`waeup.sirp.catalog` -- Cataloging support SIRP
+:mod:`waeup.kofa.catalog` -- Cataloging support KOFA
 ****************************************************
 
-.. module:: waeup.sirp.catalog
+.. module:: waeup.kofa.catalog
 
 Components that support cataloging and searching objects inside a
-SIRP site.
+KOFA site.
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
 .. contents::
@@ -15,8 +15,8 @@
 =======
 
-:class:`SIRPQuery`
+:class:`KOFAQuery`
 ------------------
 
-.. class:: SIRPQuery()
+.. class:: KOFAQuery()
 
    .. attribute:: grok.implements(hurry.query.interfaces.IQuery)
@@ -25,5 +25,5 @@
    retrival of plain ``Bree`` result sets as used inside a catalog.
 
-   Like `hurry.query.query.Query` objects, `SIRPQuery` is some kind
+   Like `hurry.query.query.Query` objects, `KOFAQuery` is some kind
    of a meta query or 'compound query' that can give the cataloged
    objects (or their int ids) matching one or more 'subqueries'.
@@ -55,5 +55,5 @@
 ------------------------------
 
-We can get a SIRPQuery object by asking for an unnamed global utility
+We can get a KOFAQuery object by asking for an unnamed global utility
 implementing `hurry.query.interfaces.IQuery`:
 
@@ -62,5 +62,5 @@
     >>> q = getUtility(IQuery)
     >>> q
-    <waeup.sirp.catalog.SIRPQuery object at 0x...>
+    <waeup.kofa.catalog.KOFAQuery object at 0x...>
 
 This query can get 'subqueries' and delivers the objects found or
@@ -101,5 +101,5 @@
 
 We also setup a `zope.intid.interfaces.IIntIds` utility. This is not
-necessary for plain catalogs, but when we want to use SIRPQuery (or
+necessary for plain catalogs, but when we want to use KOFAQuery (or
 `hurry.query.query.Query` objects), as to get a unique mapping from
 objects (stored in ZODB) to integer numbers (stored in catalogs),
@@ -204,5 +204,5 @@
 
 This can be done by using the ``searchResults`` method of
-``SIRPQuery``:
+``KOFAQuery``:
 
     >>> r2 = q.searchResults(subquery1)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/configuration.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/configuration.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/configuration.py	(revision 7811)
@@ -22,8 +22,8 @@
 from zope.component.interfaces import IFactory
 from zope.interface import implementedBy
-from waeup.sirp.interfaces import (
+from waeup.kofa.interfaces import (
     ISessionConfiguration, IConfigurationContainer, ISessionConfigurationAdd,
     academic_sessions_vocab)
-from waeup.sirp.utils.helpers import attrs_to_fields
+from waeup.kofa.utils.helpers import attrs_to_fields
 
 class ConfigurationContainer(grok.Container):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/configure.zcml
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/configure.zcml	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/configure.zcml	(revision 7811)
@@ -3,9 +3,9 @@
            xmlns:i18n="http://namespaces.zope.org/i18n">
   <include package="grok" />
-  <include package="waeup.sirp" file="meta.zcml" />
+  <include package="waeup.kofa" file="meta.zcml" />
   <includeDependencies package="." />
   <grok:grok package="." />
   <i18n:registerTranslations directory="locales" />
 
-  <includeOverrides package="waeup.sirp.utils" file="overrides.zcml" />
+  <includeOverrides package="waeup.kofa.utils" file="overrides.zcml" />
 </configure>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/datacenter.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/datacenter.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/datacenter.py	(revision 7811)
@@ -16,5 +16,5 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""SIRP data center.
+"""KOFA data center.
 
 The waeup data center cares for management of upload data and provides
@@ -28,9 +28,9 @@
 from zope.component import getUtility
 from zope.component.interfaces import ObjectEvent
-from waeup.sirp.interfaces import (IDataCenter, IDataCenterFile,
+from waeup.kofa.interfaces import (IDataCenter, IDataCenterFile,
                                    IDataCenterStorageMovedEvent,
                                    IDataCenterConfig)
-from waeup.sirp.utils.helpers import copy_filesystem_tree
-from waeup.sirp.utils.logger import Logger
+from waeup.kofa.utils.helpers import copy_filesystem_tree
+from waeup.kofa.utils.logger import Logger
 
 class DataCenter(grok.Container, Logger):
@@ -39,5 +39,5 @@
     grok.implements(IDataCenter)
 
-    logger_name = 'waeup.sirp.${sitename}.datacenter'
+    logger_name = 'waeup.kofa.${sitename}.datacenter'
     logger_filename = 'datacenter.log'
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/datacenter.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/datacenter.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/datacenter.txt	(revision 7811)
@@ -1,9 +1,9 @@
-SIRP Data Center
+KOFA Data Center
 ****************
 
-The SIRP data center cares for managing CSV files and importing then.
+The KOFA data center cares for managing CSV files and importing then.
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
 Creating a data center
@@ -12,8 +12,8 @@
 A data center can be created easily:
 
-    >>> from waeup.sirp.datacenter import DataCenter
+    >>> from waeup.kofa.datacenter import DataCenter
     >>> mydatacenter = DataCenter()
     >>> mydatacenter
-    <waeup.sirp.datacenter.DataCenter object at 0x...>
+    <waeup.kofa.datacenter.DataCenter object at 0x...>
 
 Each data center has a location in file system where files are stored:
@@ -78,5 +78,5 @@
 
     >>> mydatacenter.getFiles()
-    [<waeup.sirp.datacenter.DataCenterFile object at 0x...>]
+    [<waeup.kofa.datacenter.DataCenterFile object at 0x...>]
 
 As we can see, the actual file is wrapped by a convenience wrapper,
Index: /main/waeup.kofa/trunk/src/waeup/kofa/ftesting.zcml
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/ftesting.zcml	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/ftesting.zcml	(revision 7811)
@@ -1,15 +1,15 @@
 <configure
    xmlns="http://namespaces.zope.org/zope"
-   xmlns:sirp="http://namespaces.waeup.org/sirp"
-   i18n_domain="waeup.sirp"
-   package="waeup.sirp"
+   xmlns:kofa="http://namespaces.waeup.org/kofa"
+   i18n_domain="waeup.kofa"
+   package="waeup.kofa"
    >
 
   <include package="grok" />
-  <includeOverrides package="waeup.sirp" />
-  <include package="waeup.sirp" file="mail.zcml" />
+  <includeOverrides package="waeup.kofa" />
+  <include package="waeup.kofa" file="mail.zcml" />
 
   <!-- Where should the datacenter reside by default? -->
-  <sirp:datacenter
+  <kofa:datacenter
       path="../../../parts/test/datacenter" />
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/hostels/__init__.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/hostels/__init__.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/hostels/__init__.py	(revision 7811)
@@ -2,6 +2,6 @@
 """
 # Make this a package.
-from waeup.sirp.hostels.container import HostelsContainer
-from waeup.sirp.hostels.hostel import Hostel, Bed
+from waeup.kofa.hostels.container import HostelsContainer
+from waeup.kofa.hostels.hostel import Hostel, Bed
 
 __all__ = [
Index: /main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser.py	(revision 7811)
@@ -22,23 +22,23 @@
 from zope.i18n import translate
 from zope.component import getUtility
-from waeup.sirp.browser import (
-    SIRPEditFormPage, SIRPAddFormPage, SIRPDisplayFormPage,
+from waeup.kofa.browser import (
+    KOFAEditFormPage, KOFAAddFormPage, KOFADisplayFormPage,
     NullValidator)
-from waeup.sirp.browser.breadcrumbs import Breadcrumb
-from waeup.sirp.browser.resources import datepicker, datatable, tabs, warning
-from waeup.sirp.browser.layout import default_primary_nav_template
-from waeup.sirp.browser.pages import delSubobjects
-from waeup.sirp.browser.viewlets import (
+from waeup.kofa.browser.breadcrumbs import Breadcrumb
+from waeup.kofa.browser.resources import datepicker, datatable, tabs, warning
+from waeup.kofa.browser.layout import default_primary_nav_template
+from waeup.kofa.browser.pages import delSubobjects
+from waeup.kofa.browser.viewlets import (
     ManageActionButton, PrimaryNavTab)
-from waeup.sirp.browser.layout import jsaction, action
-from waeup.sirp.interfaces import ISIRPObject, ISIRPUtils
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.hostels.vocabularies import NOT_OCCUPIED
-from waeup.sirp.hostels.hostel import Hostel
-from waeup.sirp.hostels.interfaces import (
+from waeup.kofa.browser.layout import jsaction, action
+from waeup.kofa.interfaces import IKOFAObject, IKOFAUtils
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.hostels.vocabularies import NOT_OCCUPIED
+from waeup.kofa.hostels.hostel import Hostel
+from waeup.kofa.hostels.interfaces import (
     IHostelsContainer, IHostel, IBed, IBedAllocateStudent)
 
 def write_log_message(view, message):
-    ob_class = view.__implemented__.__name__.replace('waeup.sirp.','')
+    ob_class = view.__implemented__.__name__.replace('waeup.kofa.','')
     view.context.loggerInfo(ob_class, message)
     return
@@ -61,5 +61,5 @@
     """
 
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.order(5)
     grok.require('waeup.viewHostels')
@@ -96,5 +96,5 @@
             mapping = {'a':co[1], 'b':co[2], 'c':co[3]})
 
-class HostelsContainerPage(SIRPDisplayFormPage):
+class HostelsContainerPage(KOFADisplayFormPage):
     """The standard view for hostels containers.
     """
@@ -113,5 +113,5 @@
     text = _('Manage accommodation section')
 
-class HostelsContainerManagePage(SIRPDisplayFormPage):
+class HostelsContainerManagePage(KOFADisplayFormPage):
     """The manage page for hostel containers.
     """
@@ -148,5 +148,5 @@
         return
 
-class HostelAddFormPage(SIRPAddFormPage):
+class HostelAddFormPage(KOFAAddFormPage):
     """Add-form to add a hostel.
     """
@@ -175,5 +175,5 @@
         return
 
-class HostelDisplayFormPage(SIRPDisplayFormPage):
+class HostelDisplayFormPage(KOFADisplayFormPage):
     """ Page to display hostel data
     """
@@ -196,5 +196,5 @@
     target = 'manage'
 
-class HostelManageFormPage(SIRPEditFormPage):
+class HostelManageFormPage(KOFAEditFormPage):
     """ View to edit hostel data
     """
@@ -261,11 +261,11 @@
         switched = [] # for log file
         switched_translated = [] # for flash message
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         preferred_language = self.request.cookies.get(
-            'sirp.language', portal_language)
+            'kofa.language', portal_language)
         for bed_id in child_id:
             message = self.context[bed_id].switchReservation()
             switched.append('%s (%s)' % (bed_id,message))
-            m_translated = translate(message, 'waeup.sirp',
+            m_translated = translate(message, 'waeup.kofa',
                 target_language=preferred_language)
             switched_translated.append('%s (%s)' % (bed_id,m_translated))
@@ -306,5 +306,5 @@
         return
 
-class BedManageFormPage(SIRPEditFormPage):
+class BedManageFormPage(KOFAEditFormPage):
     """ View to edit bed data
     """
Index: /main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser_templates/containermanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser_templates/containermanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser_templates/containermanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL"
-    i18n:domain="waeup.sirp"
+    i18n:domain="waeup.kofa"
     method="POST" enctype="multipart/form-data">
   <table>
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 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser_templates/containerpage.pt	(revision 7811)
@@ -1,8 +1,8 @@
-<div i18n:domain="waeup.sirp"
+<div i18n:domain="waeup.kofa"
    i18n:translate="" tal:condition="python: not len(context.keys())">
 There no subobjects registered yet.
 </div>
 
-<table i18n:domain="waeup.sirp">
+<table i18n:domain="waeup.kofa">
   <thead>
     <tr>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser_templates/hostelmanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser_templates/hostelmanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser_templates/hostelmanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <ul class="tabs" data-tabs="tabs">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/hostels/catalog.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/hostels/catalog.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/hostels/catalog.py	(revision 7811)
@@ -20,6 +20,6 @@
 import grok
 from grok import index
-from waeup.sirp.interfaces import IUniversity
-from waeup.sirp.hostels.interfaces import IBed
+from waeup.kofa.interfaces import IUniversity
+from waeup.kofa.hostels.interfaces import IBed
 
 class BedIndexes(grok.Indexes):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/hostels/container.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/hostels/container.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/hostels/container.py	(revision 7811)
@@ -20,6 +20,6 @@
 """
 import grok
-from waeup.sirp.hostels.interfaces import IHostelsContainer, IHostel
-from waeup.sirp.utils.logger import Logger
+from waeup.kofa.hostels.interfaces import IHostelsContainer, IHostel
+from waeup.kofa.utils.logger import Logger
 
 class HostelsContainer(grok.Container, Logger):
@@ -48,5 +48,5 @@
         return
 
-    logger_name = 'waeup.sirp.${sitename}.hostels'
+    logger_name = 'waeup.kofa.${sitename}.hostels'
     logger_filename = 'hostels.log'
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/hostels/hostel.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/hostels/hostel.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/hostels/hostel.py	(revision 7811)
@@ -22,9 +22,9 @@
 from zope.event import notify
 from datetime import datetime
-from waeup.sirp.utils.helpers import attrs_to_fields
-from waeup.sirp.hostels.vocabularies import NOT_OCCUPIED
-from waeup.sirp.hostels.interfaces import IHostel, IBed, IBedAllocateStudent
-from waeup.sirp.students.interfaces import IBedTicket
-from waeup.sirp.interfaces import MessageFactory as _
+from waeup.kofa.utils.helpers import attrs_to_fields
+from waeup.kofa.hostels.vocabularies import NOT_OCCUPIED
+from waeup.kofa.hostels.interfaces import IHostel, IBed, IBedAllocateStudent
+from waeup.kofa.students.interfaces import IBedTicket
+from waeup.kofa.interfaces import MessageFactory as _
 
 class Hostel(grok.Container):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/hostels/interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/hostels/interfaces.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/hostels/interfaces.py	(revision 7811)
@@ -18,15 +18,15 @@
 from zope.interface import invariant, Invalid
 from zope import schema
-from waeup.sirp.interfaces import ISIRPObject
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.hostels.vocabularies import (
+from waeup.kofa.interfaces import IKOFAObject
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.hostels.vocabularies import (
     bed_letters, blocks, special_handling, StudentSource)
 
-class IHostelsContainer(ISIRPObject):
+class IHostelsContainer(IKOFAObject):
     """A container for all kind of hostel objects.
 
     """
 
-class IHostel(ISIRPObject):
+class IHostel(IKOFAObject):
     """A base representation of hostels.
 
@@ -146,5 +146,5 @@
             raise Invalid(_('Bed categories overlap.'))
 
-class IBed(ISIRPObject):
+class IBed(IKOFAObject):
     """A base representation of beds.
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/hostels/tests.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/hostels/tests.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/hostels/tests.py	(revision 7811)
@@ -30,13 +30,13 @@
 from zope.catalog.interfaces import ICatalog
 from zope.component import queryUtility
-from waeup.sirp.app import University
-from waeup.sirp.hostels.interfaces import (
+from waeup.kofa.app import University
+from waeup.kofa.hostels.interfaces import (
     IHostelsContainer, IHostel, IBed)
-from waeup.sirp.hostels.container import HostelsContainer
-from waeup.sirp.hostels.hostel import Hostel, Bed
-from waeup.sirp.testing import (FunctionalLayer, FunctionalTestCase)
-from waeup.sirp.students.student import Student
-from waeup.sirp.students.accommodation import BedTicket
-from waeup.sirp.university.department import Department
+from waeup.kofa.hostels.container import HostelsContainer
+from waeup.kofa.hostels.hostel import Hostel, Bed
+from waeup.kofa.testing import (FunctionalLayer, FunctionalTestCase)
+from waeup.kofa.students.student import Student
+from waeup.kofa.students.accommodation import BedTicket
+from waeup.kofa.university.department import Department
 
 class HostelsContainerTestCase(FunctionalTestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/hostels/vocabularies.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/hostels/vocabularies.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/hostels/vocabularies.py	(revision 7811)
@@ -22,6 +22,6 @@
 from zope.catalog.interfaces import ICatalog
 from zc.sourcefactory.contextual import BasicContextualSourceFactory
-from waeup.sirp.interfaces import SimpleSIRPVocabulary
-from waeup.sirp.interfaces import MessageFactory as _
+from waeup.kofa.interfaces import SimpleKOFAVocabulary
+from waeup.kofa.interfaces import MessageFactory as _
 
 NOT_OCCUPIED = u'not occupied'
@@ -54,5 +54,5 @@
         return "%s - %s" % (value, self.acco_students(context)[value])
 
-bed_letters = SimpleSIRPVocabulary(
+bed_letters = SimpleKOFAVocabulary(
     (_('Bed A'),'A'),
     (_('Bed B'),'B'),
@@ -66,5 +66,5 @@
     )
 
-blocks = SimpleSIRPVocabulary(
+blocks = SimpleKOFAVocabulary(
     (_('Block A'),'A'),
     (_('Block B'),'B'),
@@ -84,5 +84,5 @@
     )
 
-special_handling = SimpleSIRPVocabulary(
+special_handling = SimpleKOFAVocabulary(
     (_('Regular Hostel'),'regular'),
     (_('Blocked Hostel'),'blocked'),
Index: /main/waeup.kofa/trunk/src/waeup/kofa/image/README.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/image/README.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/image/README.txt	(revision 7811)
@@ -1,9 +1,9 @@
-waeup.sirp.image -- handling image files
+waeup.kofa.image -- handling image files
 ========================================
 
-The image file widget is built on top of the :class:`SIRPImageFile` object::
-
-  >>> from waeup.sirp.image import SIRPImageFile
-  >>> file = SIRPImageFile('foo.jpg', 'mydata')
+The image file widget is built on top of the :class:`KOFAImageFile` object::
+
+  >>> from waeup.kofa.image import KOFAImageFile
+  >>> file = KOFAImageFile('foo.jpg', 'mydata')
   >>> file.filename
   'foo.jpg'
@@ -16,5 +16,5 @@
   'mydata'
 
-We can also create SIRPImageFile objects from file-like objects::
+We can also create KOFAImageFile objects from file-like objects::
 
   >>> from StringIO import StringIO
@@ -36,5 +36,5 @@
 ----------------
 
-The SIRPImageFile object normally stores the file data using ZODB
+The KOFAImageFile object normally stores the file data using ZODB
 persistence. Files can however also be stored by tramline.  If
 tramline is installed in Apache, the Tramline takes care of generating
@@ -73,5 +73,5 @@
 just '1') will now be created::
 
-  >>> file = SIRPImageFile('foo.jpg', '1')
+  >>> file = KOFAImageFile('foo.jpg', '1')
 
 The data is now '1', referring to the real file::
@@ -102,5 +102,5 @@
 We expect the same behavior as when tramline is not installed::
 
-  >>> file = SIRPImageFile('foo.jpg', 'data')
+  >>> file = KOFAImageFile('foo.jpg', 'data')
   >>> f = file.file
   >>> f.read()
@@ -114,11 +114,11 @@
   >>> shutil.rmtree(dirpath)
 
-Support for :mod:`waeup.sirp.imagestorage`
+Support for :mod:`waeup.kofa.imagestorage`
 ------------------------------------------
 
 The behaviour shown above can be used for any Zope3 application. With
-:mod:`waeup.sirp` we use a special file retrieval utility defined in
-:mod:`waeup.sirp.imagestorage`. As this utility is based on
-:mod:`waeup.sirp` internal stuff we do not show it here but in the
+:mod:`waeup.kofa` we use a special file retrieval utility defined in
+:mod:`waeup.kofa.imagestorage`. As this utility is based on
+:mod:`waeup.kofa` internal stuff we do not show it here but in the
 tests that come with that storage type.
 
@@ -135,5 +135,5 @@
 The `ImageFile` field accepts only certain content types:
 
-  >>> from waeup.sirp.image.schema import ImageFile
+  >>> from waeup.kofa.image.schema import ImageFile
   >>> from zope.publisher.browser import TestRequest
   >>> field = ImageFile(__name__='foo', title=u'Foo')
@@ -141,12 +141,12 @@
   Traceback (most recent call last):
   ...
-  WrongType: ('asd', <class 'waeup.sirp.image.image.SIRPImageFile'>, 'foo')
+  WrongType: ('asd', <class 'waeup.kofa.image.image.KOFAImageFile'>, 'foo')
 
 which means: `ImageFile` fields should better contain
-:class:`SIRPImageFile` instances.
-
-We can store normal :class:`SIRPImageFile` instances:
-
-  >>> field.validate(SIRPImageFile('bar.jpg', 'data')) is None
+:class:`KOFAImageFile` instances.
+
+We can store normal :class:`KOFAImageFile` instances:
+
+  >>> field.validate(KOFAImageFile('bar.jpg', 'data')) is None
   True
 
@@ -173,9 +173,9 @@
 
   >>> field.validate(
-  ...     SIRPImageFile('bar.jpg', '123456789012')) is None
-  True
-
-  >>> field.validate(
-  ...     SIRPImageFile('bar.jpg', '12345')) is None
+  ...     KOFAImageFile('bar.jpg', '123456789012')) is None
+  True
+
+  >>> field.validate(
+  ...     KOFAImageFile('bar.jpg', '12345')) is None
   True
 
@@ -183,5 +183,5 @@
 
   >>> field.validate(
-  ...     SIRPImageFile('bar.jpg', '1234567890123'))
+  ...     KOFAImageFile('bar.jpg', '1234567890123'))
   Traceback (most recent call last):
   ...
@@ -189,5 +189,5 @@
 
   >>> field.validate(
-  ...     SIRPImageFile('bar.jpg', '1234'))
+  ...     KOFAImageFile('bar.jpg', '1234'))
   Traceback (most recent call last):
   ...
@@ -198,10 +198,10 @@
 ----------------------------
 
-SIRPImageFile does not reproduce the broken unequal comparison from
+KOFAImageFile does not reproduce the broken unequal comparison from
 its base:
 
-  >>> f1 = SIRPImageFile('bar.jpg', '123456789')
-  >>> f2 = SIRPImageFile('bar.jpg', '123456789')
-  >>> f3 = SIRPImageFile('baz.jpg', '1234')
+  >>> f1 = KOFAImageFile('bar.jpg', '123456789')
+  >>> f2 = KOFAImageFile('bar.jpg', '123456789')
+  >>> f3 = KOFAImageFile('baz.jpg', '1234')
   >>> f1 == f2
   True
Index: /main/waeup.kofa/trunk/src/waeup/kofa/image/__init__.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/image/__init__.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/image/__init__.py	(revision 7811)
@@ -3,8 +3,8 @@
 Includings schemas, widgets and the content components.
 """
-from waeup.sirp.image.image import SIRPImageFile, createSIRPImageFile
+from waeup.kofa.image.image import KOFAImageFile, createKOFAImageFile
 
 __all__ = [
-    "SIRPImageFile",
-    "createSIRPImageFile",
+    "KOFAImageFile",
+    "createKOFAImageFile",
     ]
Index: /main/waeup.kofa/trunk/src/waeup/kofa/image/browser/__init__.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/image/browser/__init__.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/image/browser/__init__.py	(revision 7811)
@@ -1,5 +1,5 @@
 # The public API part
 # Contains the widgets defined for image files.
-from waeup.sirp.image.browser.widget import (
+from waeup.kofa.image.browser.widget import (
     EncodingImageFileWidget, ThumbnailWidget,
     )
Index: /main/waeup.kofa/trunk/src/waeup/kofa/image/browser/tests/image.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/image/browser/tests/image.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/image/browser/tests/image.txt	(revision 7811)
@@ -12,8 +12,8 @@
 
   >>> import os
-  >>> from waeup.sirp.image import SIRPImageFile
+  >>> from waeup.kofa.image import KOFAImageFile
   >>> testimage = os.path.join(os.path.dirname(__file__), 'sample.jpg')
   >>> testimage2 = os.path.join(os.path.dirname(__file__), 'sample2.jpg')
-  >>> some_file = SIRPImageFile('foo.jpg', open(testimage, 'rb').read())
+  >>> some_file = KOFAImageFile('foo.jpg', open(testimage, 'rb').read())
   >>> some_file.filename
   'foo.jpg'
@@ -26,5 +26,5 @@
   >>> from hurry.file.browser import DownloadWidget
   >>> from hurry.file.schema import File
-  >>> from waeup.sirp.image.schema import ImageFile
+  >>> from waeup.kofa.image.schema import ImageFile
   >>> from zope.publisher.browser import TestRequest
   >>> field = ImageFile(__name__='foo', title=u'Foo')
@@ -51,5 +51,5 @@
 Instead of downloading, we can also use a thumbnail widget:
 
-  >>> from waeup.sirp.image.browser import ThumbnailWidget
+  >>> from waeup.kofa.image.browser import ThumbnailWidget
   >>> request = TestRequest(form={'field.foo': FileUpload(some_file)})
   >>> widget = ThumbnailWidget(field, request)
@@ -61,5 +61,5 @@
 data already available, and no data in request:
 
-  >>> from waeup.sirp.image.browser import EncodingImageFileWidget
+  >>> from waeup.kofa.image.browser import EncodingImageFileWidget
   >>> field = ImageFile(__name__='foo', title=u'Foo', required=False)
   >>> field = field.bind(None)
@@ -166,5 +166,5 @@
 prepare some new file:
 
-  >>> another_file = SIRPImageFile('bar.txt', 'bar contents')
+  >>> another_file = KOFAImageFile('bar.txt', 'bar contents')
 
 We happen to know, due to the implementation of
@@ -200,5 +200,5 @@
 ---------------------------
 
-As :class:`waeup.sirp.image.SIRPImageFile` objects support storing
+As :class:`waeup.kofa.image.KOFAImageFile` objects support storing
 image data by using external 'storages', also our widgets should do
 so.
@@ -220,5 +220,5 @@
   ...         contents = f.read()
   ...         id_string = hashlib.md5(contents).hexdigest()
-  ...         result = SIRPImageFile(filename, id_string)
+  ...         result = KOFAImageFile(filename, id_string)
   ...         self.storage[id_string] = contents
   ...         return result
@@ -260,9 +260,9 @@
 We now want to simulate, that the field contains already data,
 identified by some `file_id`. To do so, we first store the data in our
-file retrieval and then create a SIRPImageFile object with that
+file retrieval and then create a KOFAImageFile object with that
 file_id stored:
 
-  >>> from waeup.sirp.image import createSIRPImageFile
-  >>> image = createSIRPImageFile(
+  >>> from waeup.kofa.image import createKOFAImageFile
+  >>> image = createKOFAImageFile(
   ...     'sample.jpg', open(testimage, 'rb'))
   >>> file_id = image.data
@@ -274,5 +274,5 @@
   '9feac4265077922000aa8b88748e25be'
 
-The new file was stored by our utility, as createSIRPImageFile looks
+The new file was stored by our utility, as createKOFAImageFile looks
 up IFileRetrieval utilities and uses them:
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/image/browser/tests/test_views.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/image/browser/tests/test_views.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/image/browser/tests/test_views.py	(revision 7811)
@@ -30,5 +30,5 @@
 from hurry.file.file import IdFileRetrieval
 from hurry.file.interfaces import IFileRetrieval
-from waeup.sirp.image.browser.views import HurryFileView
+from waeup.kofa.image.browser.views import HurryFileView
 from zope.component import getMultiAdapter, provideUtility
 from zope.publisher.browser import TestRequest
@@ -41,9 +41,9 @@
 class ImageBrowserViewsLayer(object):
     """A layer that registers all components in
-       `waeup.sirp.image.browser.views` module.
+       `waeup.kofa.image.browser.views` module.
     """
     @classmethod
     def setUp(cls):
-        grok.testing.grok('waeup.sirp.image.browser.views')
+        grok.testing.grok('waeup.kofa.image.browser.views')
 
     @classmethod
Index: /main/waeup.kofa/trunk/src/waeup/kofa/image/browser/widget.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/image/browser/widget.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/image/browser/widget.py	(revision 7811)
@@ -19,5 +19,5 @@
 """
 import os
-from waeup.sirp.image import SIRPImageFile
+from waeup.kofa.image import KOFAImageFile
 from hurry.file.browser.widget import (
     EncodingFileWidget, DownloadWidget, FakeFieldStorage)
@@ -62,5 +62,5 @@
                 seek(0)
                 return retrieval.createFile(input.filename, input)
-            return SIRPImageFile(input.filename, data)
+            return KOFAImageFile(input.filename, data)
         else:
             return self.context.missing_value
@@ -143,5 +143,5 @@
         data = file_id.decode('base64')
         filename, filedata = data.split('\n', 1)
-        return SIRPImageFile(filename, filedata)
+        return KOFAImageFile(filename, filedata)
 
 class ThumbnailWidget(DownloadWidget):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/image/image.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/image/image.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/image/image.py	(revision 7811)
@@ -23,7 +23,7 @@
 from zope.component import getUtility
 from zope.interface import implements
-from waeup.sirp.image.interfaces import ISIRPImageFile
+from waeup.kofa.image.interfaces import IKOFAImageFile
 
-class SIRPImageFile(HurryFile):
+class KOFAImageFile(HurryFile):
     """A file prepared for storing image files.
 
@@ -32,8 +32,8 @@
     regular hurry files.
 
-    To create a :class:`SIRPImageFile` you should use
-    :func:`createSIRPImageFile`.
+    To create a :class:`KOFAImageFile` you should use
+    :func:`createKOFAImageFile`.
     """
-    implements(ISIRPImageFile)
+    implements(IKOFAImageFile)
 
     def __ne__(self, other):
@@ -45,5 +45,5 @@
             return True
 
-def createSIRPImageFile(filename, f):
+def createKOFAImageFile(filename, f):
     retrieval = getUtility(IFileRetrieval)
     return retrieval.createFile(filename, f)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/image/interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/image/interfaces.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/image/interfaces.py	(revision 7811)
@@ -16,5 +16,5 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""Interfaces for waeup.sirp.image
+"""Interfaces for waeup.kofa.image
 """
 from hurry.file.interfaces import IFile, IFileRetrieval, IHurryFile
@@ -23,9 +23,9 @@
     """Image file field.
     """
-    
-class ISIRPImageFile(IHurryFile):
+
+class IKOFAImageFile(IHurryFile):
     """Image file.
     """
-    
+
 class IImageFileRetrieval(IFileRetrieval):
     """A file retrieval for images.
Index: /main/waeup.kofa/trunk/src/waeup/kofa/image/schema.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/image/schema.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/image/schema.py	(revision 7811)
@@ -22,6 +22,6 @@
 from zope.schema.interfaces import TooBig, TooSmall
 from hurry.file.schema import File
-from waeup.sirp.image.interfaces import IImageFile
-from waeup.sirp.image.image import SIRPImageFile
+from waeup.kofa.image.interfaces import IImageFile
+from waeup.kofa.image.image import KOFAImageFile
 
 class MinMaxSize(object):
@@ -82,3 +82,3 @@
     implements(IImageFile)
 
-    _type = SIRPImageFile
+    _type = KOFAImageFile
Index: /main/waeup.kofa/trunk/src/waeup/kofa/imagestorage.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/imagestorage.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/imagestorage.py	(revision 7811)
@@ -18,5 +18,5 @@
 """A storage for image (and other) files.
 
-A few words about storing files with ``waeup.sirp``. The need for this
+A few words about storing files with ``waeup.kofa``. The need for this
 feature arised initially from the need to store passport files for
 applicants and students. These files are dynamic (can be changed
@@ -57,5 +57,5 @@
 :class:`ExtFileStore`. An instance of this file storage (which is also
 able to store non-image files) is available at runtime as a global
-utility implementing :class:`waeup.sirp.interfaces.IExtFileStore`.
+utility implementing :class:`waeup.kofa.interfaces.IExtFileStore`.
 
 The main task of this central component is to maintain a filesystem
@@ -68,5 +68,5 @@
   >>> from StringIO import StringIO
   >>> from zope.component import getUtility
-  >>> from waeup.sirp.interfaces import IExtFileStore
+  >>> from waeup.kofa.interfaces import IExtFileStore
   >>> store = getUtility(IExtFileStore)
   >>> store.createFile('myfile.txt', StringIO('some file content'))
@@ -120,10 +120,10 @@
 
 Examples for such a file store handler can be found in the
-:mod:`waeup.sirp.applicants.applicant` module. Please see also the
+:mod:`waeup.kofa.applicants.applicant` module. Please see also the
 :class:`DefaultFileStoreHandler` class below for more details.
 
 The file store looks up handlers by utility lookups: it looks for a
 named utiliy providing
-:class:`waeup.sirp.interfaces.IFileStoreHandler` and named like the
+:class:`waeup.kofa.interfaces.IFileStoreHandler` and named like the
 marker string (without leading/trailing underscores) in lower
 case. For example if the file id would be
@@ -135,5 +135,5 @@
   ``img_user``
 
-and provide :class:`waeup.sirp.interfaces.IFileStoreHandler`. If no
+and provide :class:`waeup.kofa.interfaces.IFileStoreHandler`. If no
 such utility can be found, a default handler is used instead
 (see :class:`DefaultFileStoreHandler`).
@@ -141,5 +141,5 @@
 **About File IDs and Filenames**
 
-In the waeup.sirp package we want to store documents like CVs,
+In the waeup.kofa package we want to store documents like CVs,
 photographs, and similar. Each of this documents might come into the
 system with different filename extensions. This could be a problem as
@@ -193,5 +193,5 @@
 something like:
 
-  >>> from waeup.sirp.interfaces import IFileStoreNameChooser
+  >>> from waeup.kofa.interfaces import IFileStoreNameChooser
   >>> file_id = IFileStoreNameChooser(my_context_obj)
 
@@ -218,5 +218,5 @@
 from zope.component import queryUtility
 from zope.interface import Interface
-from waeup.sirp.interfaces import (
+from waeup.kofa.interfaces import (
     IFileStoreNameChooser, IExtFileStore, IFileStoreHandler,)
 
@@ -229,5 +229,5 @@
     special type of context.
 
-    Provides the :class:`waeup.sirp.interfaces.IFileStoreNameChooser`
+    Provides the :class:`waeup.kofa.interfaces.IFileStoreNameChooser`
     interface.
 
@@ -285,5 +285,5 @@
     want to change this path -- it is dynamic. That means, if you call
     the file store from 'within' a site, the root path will be located
-    inside this site (a :class:`waeup.sirp.University` instance). If
+    inside this site (a :class:`waeup.kofa.University` instance). If
     you call it from 'outside' a site some temporary dir (always the
     same during lifetime of the file store instance) will be used. The
@@ -299,5 +299,5 @@
 
     An ExtFileStore instance is available as a global utility
-    implementing :class:`waeup.sirp.interfaces.IExtFileStore`.
+    implementing :class:`waeup.kofa.interfaces.IExtFileStore`.
 
     To add and retrieve files from the storage, use the appropriate
@@ -505,5 +505,5 @@
 
     Registered globally as utility for
-    :class:`waeup.sirp.interfaces.IFileStoreHandler`.
+    :class:`waeup.kofa.interfaces.IFileStoreHandler`.
     """
     grok.implements(IFileStoreHandler)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py	(revision 7811)
@@ -34,5 +34,5 @@
 from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
 
-_ = MessageFactory = zope.i18nmessageid.MessageFactory('waeup.sirp')
+_ = MessageFactory = zope.i18nmessageid.MessageFactory('waeup.kofa')
 
 CREATED = 'created'
@@ -50,5 +50,5 @@
         encoding='utf-8', mode='rb').read()
 
-def SimpleSIRPVocabulary(*terms):
+def SimpleKOFAVocabulary(*terms):
     """A well-buildt vocabulary provides terms with a value, token and
        title for each term
@@ -66,7 +66,7 @@
     return [('%s/%s' % (year,year+1), year) for year in year_range]
 
-academic_sessions_vocab = SimpleSIRPVocabulary(*academic_sessions())
-
-registration_states_vocab = SimpleSIRPVocabulary(
+academic_sessions_vocab = SimpleKOFAVocabulary(*academic_sessions())
+
+registration_states_vocab = SimpleKOFAVocabulary(
     (_('created'), CREATED),
     (_('admitted'), ADMITTED),
@@ -139,10 +139,10 @@
     def getValues(self):
         # late import: in interfaces we should not import local modules
-        from waeup.sirp.permissions import get_waeup_role_names
+        from waeup.kofa.permissions import get_waeup_role_names
         return get_waeup_role_names()
 
     def getTitle(self, value):
         # late import: in interfaces we should not import local modules
-        from waeup.sirp.permissions import get_all_roles
+        from waeup.kofa.permissions import get_all_roles
         roles = dict(get_all_roles())
         if value in roles.keys():
@@ -160,5 +160,5 @@
             # we have to 'try' because IConfiguration can only handle
             # interfaces from w.s.interface.
-            from waeup.sirp.browser.interfaces import ICaptchaManager
+            from waeup.kofa.browser.interfaces import ICaptchaManager
         except:
             return captchas
@@ -187,5 +187,5 @@
     """
 
-class ISIRPUtils(Interface):
+class IKOFAUtils(Interface):
     """A collection of methods which are subject to customization.
     """
@@ -222,21 +222,21 @@
         """
 
-class ISIRPObject(Interface):
-    """A SIRP object.
+class IKOFAObject(Interface):
+    """A KOFA object.
 
     This is merely a marker interface.
     """
 
-class IUniversity(ISIRPObject):
+class IUniversity(IKOFAObject):
     """Representation of a university.
     """
 
 
-class ISIRPContainer(ISIRPObject):
-    """A container for SIRP objects.
-    """
-
-class ISIRPContained(ISIRPObject):
-    """An item contained in an ISIRPContainer.
+class IKOFAContainer(IKOFAObject):
+    """A container for KOFA objects.
+    """
+
+class IKOFAContained(IKOFAObject):
+    """An item contained in an IKOFAContainer.
     """
 
@@ -267,5 +267,5 @@
         """
 
-class ISIRPExporter(Interface):
+class IKOFAExporter(Interface):
     """An exporter for objects.
     """
@@ -279,5 +279,5 @@
         """
 
-class ISIRPXMLExporter(Interface):
+class IKOFAXMLExporter(Interface):
     """An XML exporter for objects.
     """
@@ -291,5 +291,5 @@
         """
 
-class ISIRPXMLImporter(Interface):
+class IKOFAXMLImporter(Interface):
     """An XML import for objects.
     """
@@ -328,5 +328,5 @@
         """
 
-class IContactForm(ISIRPObject):
+class IContactForm(IKOFAObject):
     """A contact form.
     """
@@ -358,6 +358,6 @@
         required = True,)
 
-class ISIRPPrincipalInfo(IPrincipalInfo):
-    """Infos about principals that are users of SIRP SIRP.
+class IKOFAPrincipalInfo(IPrincipalInfo):
+    """Infos about principals that are users of KOFA KOFA.
     """
     email = Attribute("The email address of a user")
@@ -365,6 +365,6 @@
 
 
-class ISIRPPrincipal(IPrincipal):
-    """A principle for SIRP SIRP.
+class IKOFAPrincipal(IPrincipal):
+    """A principle for KOFA KOFA.
 
     This interface extends zope.security.interfaces.IPrincipal and
@@ -382,5 +382,5 @@
         required=False,)
 
-class IUserAccount(ISIRPObject):
+class IUserAccount(IKOFAObject):
     """A user account.
     """
@@ -425,5 +425,5 @@
 
 
-class IUsersContainer(ISIRPObject):
+class IUsersContainer(IKOFAObject):
     """A container for users (principals).
 
@@ -450,5 +450,5 @@
         """
 
-class IConfigurationContainer(ISIRPObject):
+class IConfigurationContainer(IKOFAObject):
     """A container for session configuration objects.
     """
@@ -462,5 +462,5 @@
     acronym = schema.TextLine(
         title = u'Abbreviated Title of University',
-        default = u'WAeUP.SIRP',
+        default = u'WAeUP.KOFA',
         required = True,
         )
@@ -469,5 +469,5 @@
         title = u'Skin',
         default = u'gray waeup theme',
-        vocabulary = 'waeup.sirp.browser.theming.ThemesVocabulary',
+        vocabulary = 'waeup.kofa.browser.theming.ThemesVocabulary',
         required = True,
         )
@@ -516,5 +516,5 @@
     email_subject = schema.TextLine(
         title = u'Subject of Email to Administrator',
-        default = u'SIRP Contact',
+        default = u'KOFA Contact',
         required = False,
         )
@@ -539,5 +539,5 @@
         )
 
-class ISessionConfiguration(ISIRPObject):
+class ISessionConfiguration(IKOFAObject):
     """A session configuration object.
     """
@@ -606,5 +606,5 @@
     'academic_session'].order
 
-class IDataCenter(ISIRPObject):
+class IDataCenter(IKOFAObject):
     """A data center.
 
@@ -669,13 +669,13 @@
         title = u'Longer description of the item found.')
 
-class ISIRPPluggable(Interface):
-    """A component that might be plugged into a SIRP SIRP app.
+class IKOFAPluggable(Interface):
+    """A component that might be plugged into a KOFA KOFA app.
 
     Components implementing this interface are referred to as
     'plugins'. They are normally called when a new
-    :class:`waeup.sirp.app.University` instance is created.
+    :class:`waeup.kofa.app.University` instance is created.
 
     Plugins can setup and update parts of the central site without the
-    site object (normally a :class:`waeup.sirp.app.University` object)
+    site object (normally a :class:`waeup.kofa.app.University` object)
     needing to know about that parts. The site simply collects all
     available plugins, calls them and the plugins care for their
@@ -730,5 +730,5 @@
     Utilities providing this interface are looked up when a Pluggable
     Authentication Utility (PAU) for any
-    :class:`waeup.sirp.app.University` instance is created and put
+    :class:`waeup.kofa.app.University` instance is created and put
     into ZODB.
 
@@ -807,5 +807,5 @@
         """
 
-class ISIRPWorkflowInfo(IWorkflowInfo):
+class IKOFAWorkflowInfo(IWorkflowInfo):
     """A :class:`hurry.workflow.workflow.WorkflowInfo` with additional
        methods for convenience.
@@ -820,5 +820,5 @@
 class ISiteLoggers(Interface):
 
-    loggers = Attribute("A list or generator of registered SIRPLoggers")
+    loggers = Attribute("A list or generator of registered KOFALoggers")
 
     def register(name, filename=None, site=None, **options):
@@ -841,5 +841,5 @@
 
     def __init__(name, filename=None, site=None, **options):
-        """Create a SIRP logger instance.
+        """Create a KOFA logger instance.
         """
 
@@ -973,5 +973,5 @@
 
         Returns a tuple ``(raw_file, path, file_like_obj)`` where the
-        ``file_like_obj`` should be a HurryFile, a SIRPImageFile or
+        ``file_like_obj`` should be a HurryFile, a KOFAImageFile or
         similar. ``raw_file`` is the (maybe changed) input file and
         ``path`` the relative internal path to store the file at.
Index: /main/waeup.kofa/trunk/src/waeup/kofa/language.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/language.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/language.py	(revision 7811)
@@ -21,8 +21,8 @@
 from zope.publisher.interfaces.browser import IBrowserRequest
 from zope.i18n.interfaces import IUserPreferredLanguages
-from waeup.sirp.configuration import ConfigurationContainer
-from waeup.sirp.interfaces import ISIRPUtils
+from waeup.kofa.configuration import ConfigurationContainer
+from waeup.kofa.interfaces import IKOFAUtils
 
-class SIRPLanguage(grokcore.component.Adapter):
+class KOFALanguage(grokcore.component.Adapter):
     """Set preferred languages"""
     grokcore.component.context(IBrowserRequest)
@@ -30,5 +30,5 @@
 
     def getPreferredLanguages(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
 
         # This an adapter for the request, so self.context is the request.
@@ -36,5 +36,5 @@
 
         # Extract the preferred language from a cookie:
-        lang = request.cookies.get('sirp.language', portal_language)
+        lang = request.cookies.get('kofa.language', portal_language)
 
         # According to IUserPreferredLanguages, we must return a list.
Index: /main/waeup.kofa/trunk/src/waeup/kofa/mail.zcml
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/mail.zcml	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/mail.zcml	(revision 7811)
@@ -29,5 +29,5 @@
    background thread and sends mail independently from requests.
 
-   By default in SIRP we have a fake mailer activated, that does not
+   By default in KOFA we have a fake mailer activated, that does not
    send real mail to the outside world.
   -->
Index: /main/waeup.kofa/trunk/src/waeup/kofa/meta.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/meta.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/meta.py	(revision 7811)
@@ -16,5 +16,5 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""Grokkers for SIRP components.
+"""Grokkers for KOFA components.
 
 Stuff in here is mainly taken from grok.meta, with some modifications
@@ -40,5 +40,5 @@
 from martian.error import GrokError
 from zope import component
-from waeup.sirp.interfaces import IObjectUpgradeEvent
+from waeup.kofa.interfaces import IObjectUpgradeEvent
 
 class IndexesGrokker(martian.InstanceGrokker):
@@ -61,5 +61,5 @@
             return False
 
-        subscriber = SIRPIndexesUpgradeSubscriber(
+        subscriber = KOFAIndexesUpgradeSubscriber(
             catalog_name, indexes, context, module_info)
         subscribed = (site, IObjectUpgradeEvent)
@@ -72,5 +72,5 @@
 
 
-class SIRPIndexesUpgradeSubscriber(IndexesSetupSubscriber):
+class KOFAIndexesUpgradeSubscriber(IndexesSetupSubscriber):
     """Helper that sets up indexes when their Grok site is upgraded.
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/meta.zcml
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/meta.zcml	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/meta.zcml	(revision 7811)
@@ -11,5 +11,5 @@
 
   <meta:directive
-      namespace="http://namespaces.waeup.org/sirp"
+      namespace="http://namespaces.waeup.org/kofa"
       name="datacenter"
       schema=".zcml.IDataCenterConfig"
Index: /main/waeup.kofa/trunk/src/waeup/kofa/objecthistory.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/objecthistory.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/objecthistory.py	(revision 7811)
@@ -22,17 +22,17 @@
 from zope.i18n import translate
 from zope.annotation.interfaces import IAnnotations
-from waeup.sirp.interfaces import IObjectHistory, ISIRPObject, ISIRPUtils
-from waeup.sirp.utils.helpers import get_current_principal
+from waeup.kofa.interfaces import IObjectHistory, IKOFAObject, IKOFAUtils
+from waeup.kofa.utils.helpers import get_current_principal
 
-from waeup.sirp.interfaces import MessageFactory as _
+from waeup.kofa.interfaces import MessageFactory as _
 
 class ObjectHistory(grok.Adapter):
     """A history for objects.
 
-    For any object implementing `ISIRPObject` which is annotatable,
+    For any object implementing `IKOFAObject` which is annotatable,
     we provide histories. A history for such an object can be obtained
     by adapting it to `IObjectHistory`.
     """
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.implements(IObjectHistory)
 
@@ -68,9 +68,9 @@
         else:
             user = user.title
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         by = 'by'
         if portal_language != 'en':
-            by = translate(_('by'),'waeup.sirp',target_language=portal_language)
-            msg = translate(msg,'waeup.sirp',target_language=portal_language)
+            by = translate(_('by'),'waeup.kofa',target_language=portal_language)
+            msg = translate(msg,'waeup.kofa',target_language=portal_language)
         msg = u'%s - %s %s %s' % (timestamp, msg, by, user)
         msgs.append(msg)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/payments/__init__.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/payments/__init__.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/payments/__init__.py	(revision 7811)
@@ -2,6 +2,6 @@
 """
 # Make this a package.
-from waeup.sirp.payments.container import PaymentsContainer
-from waeup.sirp.payments.payment import SCPayment, OnlinePayment
+from waeup.kofa.payments.container import PaymentsContainer
+from waeup.kofa.payments.payment import SCPayment, OnlinePayment
 
 __all__ = [
Index: /main/waeup.kofa/trunk/src/waeup/kofa/payments/container.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/payments/container.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/payments/container.py	(revision 7811)
@@ -21,6 +21,6 @@
 import grok
 from grok import index
-from waeup.sirp.payments.interfaces import IPaymentsContainer
-from waeup.sirp.utils.helpers import attrs_to_fields
+from waeup.kofa.payments.interfaces import IPaymentsContainer
+from waeup.kofa.utils.helpers import attrs_to_fields
 
 class PaymentsContainer(grok.Container):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/payments/interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/payments/interfaces.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/payments/interfaces.py	(revision 7811)
@@ -18,8 +18,8 @@
 from zope.interface import Attribute
 from zope import schema
-from waeup.sirp.interfaces import ISIRPObject, SimpleSIRPVocabulary
-from waeup.sirp.interfaces import MessageFactory as _
+from waeup.kofa.interfaces import IKOFAObject, SimpleKOFAVocabulary
+from waeup.kofa.interfaces import MessageFactory as _
 
-payment_states = SimpleSIRPVocabulary(
+payment_states = SimpleKOFAVocabulary(
     (_('Not yet paid'),'unpaid'),
     (_('Paid'),'paid'),
@@ -27,5 +27,5 @@
     )
 
-payment_categories = SimpleSIRPVocabulary(
+payment_categories = SimpleKOFAVocabulary(
     (_('School Fee'),'schoolfee'),
     (_('Clearance'),'clearance'),
@@ -37,10 +37,10 @@
     )
 
-class IPaymentsContainer(ISIRPObject):
+class IPaymentsContainer(IKOFAObject):
     """A container for all kind of payment objects.
 
     """
 
-class IPayment(ISIRPObject):
+class IPayment(IKOFAObject):
     """A base representation of payments.
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/payments/payment.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/payments/payment.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/payments/payment.py	(revision 7811)
@@ -22,8 +22,8 @@
 from datetime import datetime
 from grok import index
-from waeup.sirp.payments.interfaces import (
+from waeup.kofa.payments.interfaces import (
     IPayment, ISCPayment, IOnlinePayment,
     payment_states, payment_categories)
-from waeup.sirp.utils.helpers import attrs_to_fields
+from waeup.kofa.utils.helpers import attrs_to_fields
 
 class Payment(grok.Container):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/payments/tests.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/payments/tests.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/payments/tests.py	(revision 7811)
@@ -20,10 +20,10 @@
 """
 from zope.interface.verify import verifyClass, verifyObject
-from waeup.sirp.payments.interfaces import (
+from waeup.kofa.payments.interfaces import (
     IPaymentsContainer, ISCPayment, IOnlinePayment)
-from waeup.sirp.payments.container import PaymentsContainer
-from waeup.sirp.payments.payment import (
+from waeup.kofa.payments.container import PaymentsContainer
+from waeup.kofa.payments.payment import (
     SCPayment, OnlinePayment)
-from waeup.sirp.testing import (FunctionalLayer, FunctionalTestCase)
+from waeup.kofa.testing import (FunctionalLayer, FunctionalTestCase)
 
 class PaymentsContainerTestCase(FunctionalTestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/permissions.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/permissions.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/permissions.py	(revision 7811)
@@ -20,5 +20,5 @@
 from zope.interface import Interface
 from zope.securitypolicy.interfaces import IRole, IPrincipalRoleMap
-from waeup.sirp.interfaces import ILocalRolesAssignable
+from waeup.kofa.interfaces import ILocalRolesAssignable
 
 class Public(grok.Permission):
@@ -168,11 +168,11 @@
 
 def get_waeup_roles(also_local=False):
-    """Get all SIRP roles.
-
-    SIRP roles are ordinary roles whose id by convention starts with
+    """Get all KOFA roles.
+
+    KOFA roles are ordinary roles whose id by convention starts with
     a ``waeup.`` prefix.
 
     If `also_local` is ``True`` (``False`` by default), also local
-    roles are returned. Local SIRP roles are such whose id starts
+    roles are returned. Local KOFA roles are such whose id starts
     with ``waeup.local.`` prefix (this is also a convention).
 
@@ -181,5 +181,5 @@
     for name, item in get_all_roles():
         if not name.startswith('waeup.'):
-            # Ignore non-SIRP roles...
+            # Ignore non-KOFA roles...
             continue
         if not also_local and name.startswith('waeup.local.'):
@@ -189,9 +189,9 @@
 
 def get_waeup_role_names():
-    """Get the ids of all SIRP roles.
-
-    See :func:`get_waeup_roles` for what a 'SIRPRole' is.
-
-    This function returns a sorted list of SIRP role names.
+    """Get the ids of all KOFA roles.
+
+    See :func:`get_waeup_roles` for what a 'KOFARole' is.
+
+    This function returns a sorted list of KOFA role names.
     """
     return sorted([x.id for x in get_waeup_roles()])
Index: /main/waeup.kofa/trunk/src/waeup/kofa/permissions.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/permissions.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/permissions.txt	(revision 7811)
@@ -1,14 +1,14 @@
-SIRP permissions and roles
+KOFA permissions and roles
 **************************
 
-Permissions and roles used in a SIRP portal.
+Permissions and roles used in a KOFA portal.
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
 Convenience functions
 =====================
 
-:mod:`waeup.sirp` offers some convenience functions to handle security
+:mod:`waeup.kofa` offers some convenience functions to handle security
 roles.
 
@@ -16,5 +16,5 @@
 ---------------------
 
-Gives us all roles defined in SIRP. We get tuples of
+Gives us all roles defined in KOFA. We get tuples of
 kind
 
@@ -24,18 +24,18 @@
 with the ZCA (a string) and ``<ROLE>`` is the real role object.
 
-    >>> from waeup.sirp.permissions import get_all_roles
+    >>> from waeup.kofa.permissions import get_all_roles
     >>> get_all_roles()
     <generator object...at 0x...>
 
     >>> sorted(list(get_all_roles()))
-    [(u'waeup.ACManager', <waeup.sirp.permissions.ACManager object at 0x...]
+    [(u'waeup.ACManager', <waeup.kofa.permissions.ACManager object at 0x...]
 
 :func:`get_waeup_roles`
 -----------------------
 
-Gives us all roles, except the SIRP specific roles. We can get a list
+Gives us all roles, except the KOFA specific roles. We can get a list
 with or without local roles:
 
-    >>> from waeup.sirp.permissions import get_waeup_roles
+    >>> from waeup.kofa.permissions import get_waeup_roles
     >>> len(list(get_waeup_roles()))
     11
@@ -48,8 +48,8 @@
 ----------------------------
 
-We can get all role names defined in SIRP (except 'local'
+We can get all role names defined in KOFA (except 'local'
 roles that are meant not to be assigned globally):
 
-    >>> from waeup.sirp.permissions import get_waeup_role_names
+    >>> from waeup.kofa.permissions import get_waeup_role_names
     >>> list(get_waeup_role_names())
     [u'waeup.ACManager',
@@ -72,5 +72,5 @@
 they are not stored in the ZODB:
 
-    >>> from waeup.sirp.permissions import get_users_with_local_roles
+    >>> from waeup.kofa.permissions import get_users_with_local_roles
     >>> mycontext = object()
     >>> people_and_roles = get_users_with_local_roles(mycontext)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/schema/__init__.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/schema/__init__.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/schema/__init__.py	(revision 7811)
@@ -1,3 +1,3 @@
-from waeup.sirp.schema.field import *
+from waeup.kofa.schema.field import *
 
 __all__ = tuple(name for name in globals() if not name.startswith('_'))
Index: /main/waeup.kofa/trunk/src/waeup/kofa/schema/tests/test_textlinechoice.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/schema/tests/test_textlinechoice.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/schema/tests/test_textlinechoice.py	(revision 7811)
@@ -25,5 +25,5 @@
     IVocabulary, ISource, IContextSourceBinder,)
 from zope.schema.tests.test_strfield import TextLineTest
-from waeup.sirp.schema import TextLineChoice
+from waeup.kofa.schema import TextLineChoice
 
 # Define some helper functions, classes, vars for tests
Index: /main/waeup.kofa/trunk/src/waeup/kofa/schoolgrades.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/schoolgrades.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/schoolgrades.py	(revision 7811)
@@ -23,7 +23,7 @@
 from zope.schema.fieldproperty import FieldProperty
 from zope.schema import Object
-from waeup.sirp.interfaces import IResultEntry, IResultEntryField
-from waeup.sirp.widgets.objectwidget import (
-    SIRPObjectWidget, SIRPObjectDisplayWidget
+from waeup.kofa.interfaces import IResultEntry, IResultEntryField
+from waeup.kofa.widgets.objectwidget import (
+    KOFAObjectWidget, KOFAObjectDisplayWidget
     )
 
@@ -52,9 +52,9 @@
         return
 
-# register SIRPObjectWidgets as default widgets for IResultEntryFields
+# register KOFAObjectWidgets as default widgets for IResultEntryFields
 @grok.adapter(IResultEntryField, IBrowserRequest)
 @grok.implementer(IInputWidget)
 def result_entry_input_widget(obj, req):
-    return SIRPObjectWidget(obj, req, ResultEntry)
+    return KOFAObjectWidget(obj, req, ResultEntry)
 
 # register a display widget for IResultEntryFields
@@ -62,3 +62,3 @@
 @grok.implementer(IDisplayWidget)
 def result_entry_display_widget(obj, req):
-    return SIRPObjectDisplayWidget(obj, req, ResultEntry)
+    return KOFAObjectDisplayWidget(obj, req, ResultEntry)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/smtp.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/smtp.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/smtp.py	(revision 7811)
@@ -17,5 +17,5 @@
 ##
 """
-Email (SMTP) services for SIRP.
+Email (SMTP) services for KOFA.
 
 Note About Encodings
@@ -51,5 +51,5 @@
 from zope.component import getUtility
 from zope.sendmail.interfaces import IMailDelivery
-from waeup.sirp.interfaces import IMailService
+from waeup.kofa.interfaces import IMailService
 
 class DefaultMailService(grok.GlobalUtility):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/__init__.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/__init__.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/__init__.py	(revision 7811)
@@ -2,12 +2,12 @@
 """
 # Make this a package.
-from waeup.sirp.students.student import (
+from waeup.kofa.students.student import (
     Student, StudentFactory
     )
-from waeup.sirp.students.container import StudentsContainer
-from waeup.sirp.students.studycourse import StudentStudyCourse
-from waeup.sirp.students.payments import StudentPaymentsContainer
-from waeup.sirp.students.accommodation import StudentAccommodation
-from waeup.sirp.students.dynamicroles import StudentPrincipalRoleManager
+from waeup.kofa.students.container import StudentsContainer
+from waeup.kofa.students.studycourse import StudentStudyCourse
+from waeup.kofa.students.payments import StudentPaymentsContainer
+from waeup.kofa.students.accommodation import StudentAccommodation
+from waeup.kofa.students.dynamicroles import StudentPrincipalRoleManager
 
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/accommodation.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/accommodation.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/accommodation.py	(revision 7811)
@@ -23,8 +23,8 @@
 from zope.component.interfaces import IFactory
 from zope.interface import implementedBy
-from waeup.sirp.interfaces import academic_sessions_vocab
-from waeup.sirp.students.interfaces import (
+from waeup.kofa.interfaces import academic_sessions_vocab
+from waeup.kofa.students.interfaces import (
     IStudentAccommodation, IStudentNavigation, IBedTicket)
-from waeup.sirp.utils.helpers import attrs_to_fields
+from waeup.kofa.utils.helpers import attrs_to_fields
 
 class StudentAccommodation(grok.Container):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/authentication.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/authentication.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/authentication.py	(revision 7811)
@@ -28,9 +28,9 @@
 from zope.publisher.interfaces.http import IHTTPRequest
 from zope.session.interfaces import ISession
-from waeup.sirp.authentication import (
-    SIRPPrincipalInfo, get_principal_role_manager)
-from waeup.sirp.interfaces import (
+from waeup.kofa.authentication import (
+    KOFAPrincipalInfo, get_principal_role_manager)
+from waeup.kofa.interfaces import (
     IAuthPluginUtility, IUserAccount, IPasswordValidator)
-from waeup.sirp.students.interfaces import IStudent
+from waeup.kofa.students.interfaces import IStudent
 
 class StudentAccount(grok.Adapter):
@@ -135,5 +135,5 @@
         if not account.checkPassword(credentials['password']):
             return None
-        return SIRPPrincipalInfo(id=account.name,
+        return KOFAPrincipalInfo(id=account.name,
                              title=account.title,
                              description=account.description,
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/batching.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/batching.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/batching.py	(revision 7811)
@@ -32,14 +32,14 @@
 from zope.catalog.interfaces import ICatalog
 from hurry.workflow.interfaces import IWorkflowState
-from waeup.sirp.interfaces import (
+from waeup.kofa.interfaces import (
     IBatchProcessor, FatalCSVError, IObjectConverter, IUserAccount,
     IObjectHistory)
-from waeup.sirp.students.interfaces import (
+from waeup.kofa.students.interfaces import (
     IStudent, IStudentStudyCourse,
     IStudentUpdateByRegNo, IStudentUpdateByMatricNo,
     IStudentStudyLevel, ICourseTicket,
     IStudentOnlinePayment)
-from waeup.sirp.students.workflow import  IMPORTABLE_STATES
-from waeup.sirp.utils.batching import BatchProcessor
+from waeup.kofa.students.workflow import  IMPORTABLE_STATES
+from waeup.kofa.utils.batching import BatchProcessor
 
 class StudentProcessor(BatchProcessor):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 7811)
@@ -29,22 +29,22 @@
 from zope.formlib.textwidgets import BytesDisplayWidget
 from hurry.workflow.interfaces import IWorkflowInfo, IWorkflowState
-from waeup.sirp.accesscodes import (
+from waeup.kofa.accesscodes import (
     invalidate_accesscode, get_access_code, create_accesscode)
-from waeup.sirp.accesscodes.workflow import USED
-from waeup.sirp.browser import (
-    SIRPPage, SIRPEditFormPage, SIRPAddFormPage, SIRPDisplayFormPage,
-    ContactAdminForm, SIRPForm)
-from waeup.sirp.browser.interfaces import ICaptchaManager
-from waeup.sirp.browser.breadcrumbs import Breadcrumb
-from waeup.sirp.browser.resources import datepicker, datatable, tabs, warning
-from waeup.sirp.browser.layout import jsaction, action, UtilityView
-from waeup.sirp.interfaces import (
-    ISIRPObject, IUserAccount, IExtFileStore, IPasswordValidator, IContactForm,
-    ISIRPUtils, IUniversity)
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.widgets.datewidget import (
+from waeup.kofa.accesscodes.workflow import USED
+from waeup.kofa.browser import (
+    KOFAPage, KOFAEditFormPage, KOFAAddFormPage, KOFADisplayFormPage,
+    ContactAdminForm, KOFAForm)
+from waeup.kofa.browser.interfaces import ICaptchaManager
+from waeup.kofa.browser.breadcrumbs import Breadcrumb
+from waeup.kofa.browser.resources import datepicker, datatable, tabs, warning
+from waeup.kofa.browser.layout import jsaction, action, UtilityView
+from waeup.kofa.interfaces import (
+    IKOFAObject, IUserAccount, IExtFileStore, IPasswordValidator, IContactForm,
+    IKOFAUtils, IUniversity)
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.widgets.datewidget import (
     FriendlyDateWidget, FriendlyDateDisplayWidget,
     FriendlyDatetimeDisplayWidget)
-from waeup.sirp.students.interfaces import (
+from waeup.kofa.students.interfaces import (
     IStudentsContainer, IStudent, IStudentClearance,
     IStudentPersonal, IStudentBase, IStudentStudyCourse,
@@ -53,15 +53,15 @@
     IStudentOnlinePayment, IBedTicket, IStudentsUtils, IStudentChangePassword
     )
-from waeup.sirp.students.catalog import search
-from waeup.sirp.students.workflow import (ADMITTED, PAID,
+from waeup.kofa.students.catalog import search
+from waeup.kofa.students.workflow import (ADMITTED, PAID,
     CLEARANCE, REQUESTED, RETURNING, CLEARED, REGISTERED, VALIDATED)
-from waeup.sirp.students.studylevel import StudentStudyLevel, CourseTicket
-from waeup.sirp.students.vocabularies import StudyLevelSource
-from waeup.sirp.browser.resources import toggleall
-from waeup.sirp.hostels.hostel import NOT_OCCUPIED
-from waeup.sirp.utils.helpers import get_current_principal
+from waeup.kofa.students.studylevel import StudentStudyLevel, CourseTicket
+from waeup.kofa.students.vocabularies import StudyLevelSource
+from waeup.kofa.browser.resources import toggleall
+from waeup.kofa.hostels.hostel import NOT_OCCUPIED
+from waeup.kofa.utils.helpers import get_current_principal
 
 def write_log_message(view, message):
-    ob_class = view.__implemented__.__name__.replace('waeup.sirp.','')
+    ob_class = view.__implemented__.__name__.replace('waeup.kofa.','')
     view.context.getStudent().loggerInfo(ob_class, message)
     return
@@ -155,11 +155,11 @@
     @property
     def title(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         # There is no request attribute, thus we can only translate
         # to the default (portal) language
-        return translate(self.context.level_title, 'waeup.sirp',
+        return translate(self.context.level_title, 'waeup.kofa',
             target_language=portal_language)
 
-class StudentsContainerPage(SIRPPage):
+class StudentsContainerPage(KOFAPage):
     """The standard view for student containers.
     """
@@ -194,5 +194,5 @@
         return
 
-class StudentsContainerManagePage(SIRPPage):
+class StudentsContainerManagePage(KOFAPage):
     """The manage page for student containers.
     """
@@ -245,5 +245,5 @@
         return
 
-class StudentAddFormPage(SIRPAddFormPage):
+class StudentAddFormPage(KOFAAddFormPage):
     """Add-form to add a student.
     """
@@ -265,5 +265,5 @@
         return
 
-class StudentBaseDisplayFormPage(SIRPDisplayFormPage):
+class StudentBaseDisplayFormPage(KOFADisplayFormPage):
     """ Page to display student base data
     """
@@ -310,6 +310,6 @@
         usertype = getattr(self.request.principal,
                            'user_type', 'system').title()
-        sirp_utils = getUtility(ISIRPUtils)
-        success = sirp_utils.sendContactForm(
+        kofa_utils = getUtility(IKOFAUtils)
+        success = kofa_utils.sendContactForm(
                 self.request.principal.title,email,
                 self.context.display_fullname,self.context.email,
@@ -323,5 +323,5 @@
         return
 
-class StudentBaseManageFormPage(SIRPEditFormPage):
+class StudentBaseManageFormPage(KOFAEditFormPage):
     """ View to manage student base data
     """
@@ -388,5 +388,5 @@
         return
 
-class StudentClearanceDisplayFormPage(SIRPDisplayFormPage):
+class StudentClearanceDisplayFormPage(KOFADisplayFormPage):
     """ Page to display student clearance data
     """
@@ -415,13 +415,13 @@
     @property
     def title(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        return translate(_('Clearance Data'), 'waeup.sirp',
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        return translate(_('Clearance Data'), 'waeup.kofa',
             target_language=portal_language)
 
     @property
     def label(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         return translate(_('Clearance Slip of '),
-            'waeup.sirp', target_language=portal_language) \
+            'waeup.kofa', target_language=portal_language) \
             + ' %s' % self.context.display_fullname
 
@@ -434,5 +434,5 @@
             self.context.getStudent(), studentview)
 
-class StudentClearanceManageFormPage(SIRPEditFormPage):
+class StudentClearanceManageFormPage(KOFAEditFormPage):
     """ Page to edit student clearance data
     """
@@ -508,5 +508,5 @@
         return
 
-class StudentPersonalDisplayFormPage(SIRPDisplayFormPage):
+class StudentPersonalDisplayFormPage(KOFADisplayFormPage):
     """ Page to display student personal data
     """
@@ -523,5 +523,5 @@
             mapping = {'a':self.context.display_fullname})
 
-class StudentPersonalManageFormPage(SIRPEditFormPage):
+class StudentPersonalManageFormPage(KOFAEditFormPage):
     """ Page to edit student clearance data
     """
@@ -538,5 +538,5 @@
         return
 
-class StudyCourseDisplayFormPage(SIRPDisplayFormPage):
+class StudyCourseDisplayFormPage(KOFADisplayFormPage):
     """ Page to display the student study course data
     """
@@ -556,5 +556,5 @@
     def current_mode(self):
         if self.context.certificate is not None:
-            studymodes_dict = getUtility(ISIRPUtils).getStudyModesDict()
+            studymodes_dict = getUtility(IKOFAUtils).getStudyModesDict()
             return studymodes_dict[self.context.certificate.study_mode]
         return
@@ -572,5 +572,5 @@
         return
 
-class StudyCourseManageFormPage(SIRPEditFormPage):
+class StudyCourseManageFormPage(KOFAEditFormPage):
     """ Page to edit the student study course data
     """
@@ -645,5 +645,5 @@
         return
 
-class StudyLevelDisplayFormPage(SIRPDisplayFormPage):
+class StudyLevelDisplayFormPage(KOFADisplayFormPage):
     """ Page to display student study levels
     """
@@ -662,7 +662,7 @@
     @property
     def label(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        lang = self.request.cookies.get('sirp.language', portal_language)
-        level_title = translate(self.context.level_title, 'waeup.sirp',
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        lang = self.request.cookies.get('kofa.language', portal_language)
+        level_title = translate(self.context.level_title, 'waeup.kofa',
             target_language=lang)
         return _('${a}: Study Level ${b}', mapping = {
@@ -688,34 +688,34 @@
     @property
     def title(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        return translate(_('Level Data'), 'waeup.sirp',
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        return translate(_('Level Data'), 'waeup.kofa',
             target_language=portal_language)
 
     @property
     def content_title(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        return translate(_('Course List'), 'waeup.sirp',
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        return translate(_('Course List'), 'waeup.kofa',
             target_language=portal_language)
 
     @property
     def label(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        lang = self.request.cookies.get('sirp.language', portal_language)
-        level_title = translate(self.context.level_title, 'waeup.sirp',
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        lang = self.request.cookies.get('kofa.language', portal_language)
+        level_title = translate(self.context.level_title, 'waeup.kofa',
             target_language=lang)
         return translate(_('Course Registration Slip  '),
-            'waeup.sirp', target_language=portal_language) \
+            'waeup.kofa', target_language=portal_language) \
             + ' %s' % level_title
 
     def render(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        Sem = translate(_('Sem.'), 'waeup.sirp', target_language=portal_language)
-        Code = translate(_('Code'), 'waeup.sirp', target_language=portal_language)
-        Title = translate(_('Title'), 'waeup.sirp', target_language=portal_language)
-        Dept = translate(_('Dept.'), 'waeup.sirp', target_language=portal_language)
-        Faculty = translate(_('Faculty'), 'waeup.sirp', target_language=portal_language)
-        Cred = translate(_('Cred.'), 'waeup.sirp', target_language=portal_language)
-        Mand = translate(_('Mand.'), 'waeup.sirp', target_language=portal_language)
-        Score = translate(_('Score'), 'waeup.sirp', target_language=portal_language)
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        Sem = translate(_('Sem.'), 'waeup.kofa', target_language=portal_language)
+        Code = translate(_('Code'), 'waeup.kofa', target_language=portal_language)
+        Title = translate(_('Title'), 'waeup.kofa', target_language=portal_language)
+        Dept = translate(_('Dept.'), 'waeup.kofa', target_language=portal_language)
+        Faculty = translate(_('Faculty'), 'waeup.kofa', target_language=portal_language)
+        Cred = translate(_('Cred.'), 'waeup.kofa', target_language=portal_language)
+        Mand = translate(_('Mand.'), 'waeup.kofa', target_language=portal_language)
+        Score = translate(_('Score'), 'waeup.kofa', target_language=portal_language)
         studentview = StudentBaseDisplayFormPage(self.context.getStudent(),
             self.request)
@@ -735,5 +735,5 @@
             tabledata=tabledata)
 
-class StudyLevelManageFormPage(SIRPEditFormPage):
+class StudyLevelManageFormPage(KOFAEditFormPage):
     """ Page to edit the student study level data
     """
@@ -762,7 +762,7 @@
     @property
     def label(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        lang = self.request.cookies.get('sirp.language', portal_language)
-        level_title = translate(self.context.level_title, 'waeup.sirp',
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        lang = self.request.cookies.get('kofa.language', portal_language)
+        level_title = translate(self.context.level_title, 'waeup.kofa',
             target_language=lang)
         return _('Manage study level ${a}',
@@ -853,5 +853,5 @@
         return
 
-class CourseTicketAddFormPage(SIRPAddFormPage):
+class CourseTicketAddFormPage(KOFAAddFormPage):
     """Add a course ticket.
     """
@@ -890,5 +890,5 @@
         self.redirect(self.url(self.context))
 
-class CourseTicketDisplayFormPage(SIRPDisplayFormPage):
+class CourseTicketDisplayFormPage(KOFADisplayFormPage):
     """ Page to display course tickets
     """
@@ -906,5 +906,5 @@
             'b':self.context.code})
 
-class CourseTicketManageFormPage(SIRPEditFormPage):
+class CourseTicketManageFormPage(KOFAEditFormPage):
     """ Page to manage course tickets
     """
@@ -925,5 +925,5 @@
         return
 
-class PaymentsManageFormPage(SIRPEditFormPage):
+class PaymentsManageFormPage(KOFAEditFormPage):
     """ Page to manage the student payments
 
@@ -982,5 +982,5 @@
         self.redirect(self.url(self.context, '@@addop'))
 
-class OnlinePaymentAddFormPage(SIRPAddFormPage):
+class OnlinePaymentAddFormPage(KOFAAddFormPage):
     """ Page to add an online payment ticket
     """
@@ -1039,5 +1039,5 @@
         return
 
-class OnlinePaymentDisplayFormPage(SIRPDisplayFormPage):
+class OnlinePaymentDisplayFormPage(KOFADisplayFormPage):
     """ Page to view an online payment ticket
     """
@@ -1138,5 +1138,5 @@
 
 
-class AccommodationManageFormPage(SIRPEditFormPage):
+class AccommodationManageFormPage(KOFAEditFormPage):
     """ Page to manage bed tickets.
 
@@ -1195,5 +1195,5 @@
         return self.actions
 
-class BedTicketAddPage(SIRPPage):
+class BedTicketAddPage(KOFAPage):
     """ Page to add an online payment ticket
     """
@@ -1287,7 +1287,7 @@
             'c':room_nr, 'd':bed_nr,
             'e':bed.bed_type})
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         bedticket.bed_coordinates = translate(
-            bc, 'waeup.sirp',target_language=portal_language)
+            bc, 'waeup.kofa',target_language=portal_language)
         key = str(acc_details['booking_session'])
         self.context[key] = bedticket
@@ -1297,5 +1297,5 @@
         return
 
-class BedTicketDisplayFormPage(SIRPDisplayFormPage):
+class BedTicketDisplayFormPage(KOFADisplayFormPage):
     """ Page to display bed tickets
     """
@@ -1325,13 +1325,13 @@
     @property
     def title(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        return translate(_('Bed Allocation Data'), 'waeup.sirp',
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        return translate(_('Bed Allocation Data'), 'waeup.kofa',
             target_language=portal_language)
 
     @property
     def label(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         return translate(_('Bed Allocation: '),
-            'waeup.sirp', target_language=portal_language) \
+            'waeup.kofa', target_language=portal_language) \
             + ' %s' % self.context.bed_coordinates
 
@@ -1405,7 +1405,7 @@
             'c':room_nr, 'd':bed_nr,
             'e':new_bed.bed_type})
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         self.context.bed_coordinates = translate(
-            bc, 'waeup.sirp',target_language=portal_language)
+            bc, 'waeup.kofa',target_language=portal_language)
         self.flash(_('Student relocated: ${a}',
             mapping = {'a':self.context.bed_coordinates}))
@@ -1416,5 +1416,5 @@
         return
 
-class StudentHistoryPage(SIRPPage):
+class StudentHistoryPage(KOFAPage):
     """ Page to display student clearance data
     """
@@ -1431,5 +1431,5 @@
 # Pages for students only
 
-class StudentBaseEditFormPage(SIRPEditFormPage):
+class StudentBaseEditFormPage(KOFAEditFormPage):
     """ View to edit student base data
     """
@@ -1447,5 +1447,5 @@
         return
 
-class StudentChangePasswordPage(SIRPEditFormPage):
+class StudentChangePasswordPage(KOFAEditFormPage):
     """ View to manage student base data
     """
@@ -1473,5 +1473,5 @@
         return
 
-class StudentFilesUploadPage(SIRPPage):
+class StudentFilesUploadPage(KOFAPage):
     """ View to upload files by student
     """
@@ -1490,5 +1490,5 @@
         return
 
-class StartClearancePage(SIRPPage):
+class StartClearancePage(KOFAPage):
     grok.context(IStudent)
     grok.name('start_clearance')
@@ -1593,5 +1593,5 @@
         return
 
-class RequestClearancePage(SIRPPage):
+class RequestClearancePage(KOFAPage):
     grok.context(IStudent)
     grok.name('request_clearance')
@@ -1624,5 +1624,5 @@
         return
 
-class StartCourseRegistrationPage(SIRPPage):
+class StartCourseRegistrationPage(KOFAPage):
     grok.context(IStudentStudyCourse)
     grok.name('start_course_registration')
@@ -1673,5 +1673,5 @@
         return
 
-class AddStudyLevelFormPage(SIRPEditFormPage):
+class AddStudyLevelFormPage(KOFAEditFormPage):
     """ Page for students to add current study levels
     """
@@ -1710,5 +1710,5 @@
         return
 
-class StudyLevelEditFormPage(SIRPEditFormPage):
+class StudyLevelEditFormPage(KOFAEditFormPage):
     """ Page to edit the student study level data by students
     """
@@ -1732,7 +1732,7 @@
     @property
     def label(self):
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        lang = self.request.cookies.get('sirp.language', portal_language)
-        level_title = translate(self.context.level_title, 'waeup.sirp',
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        lang = self.request.cookies.get('kofa.language', portal_language)
+        level_title = translate(self.context.level_title, 'waeup.kofa',
             target_language=lang)
         return _('Add and remove course tickets of study level ${a}',
@@ -1816,5 +1816,5 @@
         return
 
-class ChangePasswordRequestPage(SIRPForm):
+class ChangePasswordRequestPage(KOFAForm):
     """Captcha'd page for students to request a password change.
     """
@@ -1851,11 +1851,11 @@
         student = list(results)[0]
         # Change password
-        sirp_utils = getUtility(ISIRPUtils)
-        pwd = sirp_utils.genPassword()
+        kofa_utils = getUtility(IKOFAUtils)
+        pwd = kofa_utils.genPassword()
         IUserAccount(student).setPassword(pwd)
         # Send email with new redentials
         msg = _('You have successfully changed your password for the')
         login_url = self.url(grok.getSite(), 'login')
-        success = sirp_utils.sendCredentials(
+        success = kofa_utils.sendCredentials(
             IUserAccount(student),pwd,login_url,msg)
         if success:
@@ -1866,6 +1866,6 @@
         return
 
-class SetPasswordPage(SIRPPage):
-    grok.context(ISIRPObject)
+class SetPasswordPage(KOFAPage):
+    grok.context(IKOFAObject)
     grok.name('setpassword')
     grok.require('waeup.Anonymous')
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/accommodationmanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/accommodationmanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/accommodationmanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <table class="display dataTableManage">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/basemanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/basemanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/basemanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="post"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <ul class="tabs" data-tabs="tabs">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/basepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/basepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/basepage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<table i18n:domain="waeup.sirp" class="form-table">
+<table i18n:domain="waeup.kofa" class="form-table">
   <tbody>
     <tal:block repeat="widget view/widgets">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/change_password.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/change_password.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/change_password.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="post"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <input type="hidden" name="student_id" value=""
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/changepw.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/changepw.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/changepw.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="post"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <table class="form-table">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/clearanceeditpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/clearanceeditpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/clearanceeditpage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="post"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <ul class="tabs" data-tabs="tabs">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/containermanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/containermanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/containermanagepage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<form method="POST" i18n:domain="waeup.sirp">
+<form method="POST" i18n:domain="waeup.kofa">
 <br />
   <input class="btn primary" type="submit" name="search"
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/containerpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/containerpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/containerpage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<form method="POST" i18n:domain="waeup.sirp">
+<form method="POST" i18n:domain="waeup.kofa">
 <br />
   <input class="btn primary" type="submit" name="search"
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/courseticketmanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/courseticketmanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/courseticketmanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="post"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <table class="form-table">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/courseticketpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/courseticketpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/courseticketpage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<table class="form-table" i18n:domain="waeup.sirp">
+<table class="form-table" i18n:domain="waeup.kofa">
   <tbody>
     <tr>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/enterpin.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/enterpin.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/enterpin.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<form method="POST" i18n:domain="waeup.sirp">
+<form method="POST" i18n:domain="waeup.kofa">
   <table class="form-table">
     <tbody>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/fileupload.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/fileupload.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/fileupload.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<tr i18n:domain="waeup.sirp">
+<tr i18n:domain="waeup.kofa">
   <td class="fieldname">
     <span tal:replace="viewlet/label">FILENAME</span>:
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/imageupload.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/imageupload.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/imageupload.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<tr i18n:domain="waeup.sirp">
+<tr i18n:domain="waeup.kofa">
   <td class="fieldname">
     <span tal:replace="viewlet/label">FILENAME</span>:
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/paymentsmanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/paymentsmanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/paymentsmanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <table class="display dataTableManage">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/setpassword.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/setpassword.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/setpassword.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<form i18n:domain="waeup.sirp" method="POST">
+<form i18n:domain="waeup.kofa" method="POST">
   <table class="form-table">
     <tbody>
@@ -29,5 +29,5 @@
          tal:attributes="value view/set_button" />
 </form>
-<div i18n:domain="waeup.sirp" >
+<div i18n:domain="waeup.kofa" >
   <h3 i18n:translate="">Instructions:</h3>
   <ul class="list" i18n:translate="">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studycoursemanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studycoursemanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studycoursemanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <ul class="tabs" data-tabs="tabs">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studycoursepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studycoursepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studycoursepage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<table class="form-table" i18n:domain="waeup.sirp">
+<table class="form-table" i18n:domain="waeup.kofa">
   <thead>
   </thead>
@@ -50,7 +50,7 @@
 </table>
 
-<h3 i18n:domain="waeup.sirp" i18n:translate="">Study Levels (Course Lists)</h3>
+<h3 i18n:domain="waeup.kofa" i18n:translate="">Study Levels (Course Lists)</h3>
 
-<table i18n:domain="waeup.sirp">
+<table i18n:domain="waeup.kofa">
   <thead>
     <tr>
@@ -70,5 +70,5 @@
 
 <div tal:condition="python: not len(context.keys())"
-    i18n:domain="waeup.sirp" i18n:translate="">
+    i18n:domain="waeup.kofa" i18n:translate="">
   There are no levels registered yet.
 </div>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studyleveladdpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studyleveladdpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studyleveladdpage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <p i18n:translate="">Text to explain course registration procedure.</p>
@@ -10,5 +10,5 @@
     </span>
   </div>
-</form>  
+</form>
 
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studyleveleditpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studyleveleditpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studyleveleditpage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <h3 i18n:translate="">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studylevelmanagepage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studylevelmanagepage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studylevelmanagepage.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <form action="." tal:attributes="action request/URL" method="POST"
-      i18n:domain="waeup.sirp" enctype="multipart/form-data">
+      i18n:domain="waeup.kofa" enctype="multipart/form-data">
 
   <ul class="tabs" data-tabs="tabs">
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studylevelpage.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studylevelpage.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studylevelpage.pt	(revision 7811)
@@ -1,3 +1,3 @@
-<table class="form-table" i18n:domain="waeup.sirp">
+<table class="form-table" i18n:domain="waeup.kofa">
   <thead>
   </thead>
@@ -26,7 +26,7 @@
 </table>
 
-<h3 i18n:domain="waeup.sirp" i18n:translate="">Course Tickets</h3>
+<h3 i18n:domain="waeup.kofa" i18n:translate="">Course Tickets</h3>
 
-<table class="display dataTable" i18n:domain="waeup.sirp">
+<table class="display dataTable" i18n:domain="waeup.kofa">
   <thead>
     <tr>
@@ -62,5 +62,5 @@
 
 
-<div i18n:domain="waeup.sirp"
+<div i18n:domain="waeup.kofa"
   tal:condition="python: not len(context.keys())" i18n:translate="">
   The're no tickets added yet.
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/catalog.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/catalog.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/catalog.py	(revision 7811)
@@ -24,9 +24,9 @@
 from zope.catalog.interfaces import ICatalog
 from zope.component import queryUtility
-from waeup.sirp.interfaces import (
+from waeup.kofa.interfaces import (
     IUniversity, IQueryResultItem, academic_sessions_vocab)
-from waeup.sirp.students.interfaces import (IStudent, ICourseTicket,
+from waeup.kofa.students.interfaces import (IStudent, ICourseTicket,
     IStudentOnlinePayment)
-from waeup.sirp.university.vocabularies import course_levels
+from waeup.kofa.university.vocabularies import course_levels
 
 class StudentIndexes(grok.Indexes):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/container.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/container.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/container.py	(revision 7811)
@@ -20,7 +20,7 @@
 """
 import grok
-from waeup.sirp.students.interfaces import (
+from waeup.kofa.students.interfaces import (
     IStudentsContainer, IStudent)
-from waeup.sirp.utils.logger import Logger
+from waeup.kofa.utils.logger import Logger
 
 class StudentsContainer(grok.Container, Logger):
@@ -46,5 +46,5 @@
         return
 
-    logger_name = 'waeup.sirp.${sitename}.students'
+    logger_name = 'waeup.kofa.${sitename}.students'
     logger_filename = 'students.log'
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/dynamicroles.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/dynamicroles.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/dynamicroles.py	(revision 7811)
@@ -27,5 +27,5 @@
     AnnotationPrincipalPermissionManager,)
 from zope.securitypolicy.principalrole import AnnotationPrincipalRoleManager
-from waeup.sirp.students.interfaces import IStudent
+from waeup.kofa.students.interfaces import IStudent
 
 # All components in here have the same context: Student instances
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py	(revision 7811)
@@ -21,15 +21,15 @@
 from zope import schema
 from zc.sourcefactory.contextual import BasicContextualSourceFactory
-from waeup.sirp.interfaces import (
-    ISIRPObject, academic_sessions_vocab, validate_email, ISIRPUtils)
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.schema import TextLineChoice
-from waeup.sirp.university.vocabularies import CourseSource, StudyModeSource
-from waeup.sirp.students.vocabularies import (
+from waeup.kofa.interfaces import (
+    IKOFAObject, academic_sessions_vocab, validate_email, IKOFAUtils)
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.schema import TextLineChoice
+from waeup.kofa.university.vocabularies import CourseSource, StudyModeSource
+from waeup.kofa.students.vocabularies import (
   CertificateSource, StudyLevelSource,
   contextual_reg_num_source, contextual_mat_num_source,
   GenderSource, nats_vocab,
   )
-from waeup.sirp.payments.interfaces import IPaymentsContainer, IOnlinePayment
+from waeup.kofa.payments.interfaces import IPaymentsContainer, IOnlinePayment
 
 # VerdictSource can't be placed into the vocabularies module because it
@@ -78,5 +78,5 @@
         """
 
-class IStudentsContainer(ISIRPObject):
+class IStudentsContainer(IKOFAObject):
     """A students container contains university students.
 
@@ -117,5 +117,5 @@
         """
 
-class IStudentNavigation(ISIRPObject):
+class IStudentNavigation(IKOFAObject):
     """Interface needed for student navigation.
 
@@ -126,5 +126,5 @@
         """
 
-class IStudentBase(ISIRPObject):
+class IStudentBase(IKOFAObject):
     """Representation of student base data.
 
@@ -206,5 +206,5 @@
         )
 
-class IStudentClearance(ISIRPObject):
+class IStudentClearance(IKOFAObject):
     """Representation of student clearance data.
 
@@ -234,5 +234,5 @@
         )
 
-class IStudentPersonal(ISIRPObject):
+class IStudentPersonal(IKOFAObject):
     """Representation of student personal data.
 
@@ -268,5 +268,5 @@
         )
 
-class IStudentStudyCourse(ISIRPObject):
+class IStudentStudyCourse(IKOFAObject):
     """A container for student study levels.
 
@@ -326,5 +326,5 @@
         )
 
-class IStudentStudyLevel(ISIRPObject):
+class IStudentStudyLevel(IKOFAObject):
     """A container for course tickets.
 
@@ -348,5 +348,5 @@
         )
 
-class ICourseTicket(ISIRPObject):
+class ICourseTicket(IKOFAObject):
     """A course ticket.
 
@@ -406,10 +406,10 @@
         )
 
-class IStudentAccommodation(ISIRPObject):
+class IStudentAccommodation(IKOFAObject):
     """A container for student accommodation objects.
 
     """
 
-class IBedTicket(ISIRPObject):
+class IBedTicket(IKOFAObject):
     """A ticket for accommodation booking.
 
@@ -475,5 +475,5 @@
     'p_item'].order
 
-class IStudentChangePassword(ISIRPObject):
+class IStudentChangePassword(IKOFAObject):
     """Interface needed for change pasword page.
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/payments.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/payments.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/payments.py	(revision 7811)
@@ -22,8 +22,8 @@
 from zope.component.interfaces import IFactory
 from zope.interface import implementedBy
-from waeup.sirp.students.interfaces import (
+from waeup.kofa.students.interfaces import (
     IStudentPaymentsContainer, IStudentNavigation, IStudentOnlinePayment)
-from waeup.sirp.payments import PaymentsContainer, OnlinePayment
-from waeup.sirp.utils.helpers import attrs_to_fields
+from waeup.kofa.payments import PaymentsContainer, OnlinePayment
+from waeup.kofa.utils.helpers import attrs_to_fields
 
 class StudentPaymentsContainer(PaymentsContainer):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/student.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/student.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/student.py	(revision 7811)
@@ -26,15 +26,15 @@
 from hurry.workflow.interfaces import IWorkflowState, IWorkflowInfo
 from zope.securitypolicy.interfaces import IPrincipalRoleManager
-from waeup.sirp.interfaces import (
+from waeup.kofa.interfaces import (
     IObjectHistory, IUserAccount, IFileStoreNameChooser, IFileStoreHandler,
-    ISIRPUtils, CLEARANCE, registration_states_vocab)
-from waeup.sirp.image import SIRPImageFile
-from waeup.sirp.imagestorage import DefaultFileStoreHandler
-from waeup.sirp.students.interfaces import IStudent, IStudentNavigation
-from waeup.sirp.students.studycourse import StudentStudyCourse
-from waeup.sirp.students.payments import StudentPaymentsContainer
-from waeup.sirp.students.accommodation import StudentAccommodation
-from waeup.sirp.utils.helpers import attrs_to_fields
-from waeup.sirp.students.utils import generate_student_id
+    IKOFAUtils, CLEARANCE, registration_states_vocab)
+from waeup.kofa.image import KOFAImageFile
+from waeup.kofa.imagestorage import DefaultFileStoreHandler
+from waeup.kofa.students.interfaces import IStudent, IStudentNavigation
+from waeup.kofa.students.studycourse import StudentStudyCourse
+from waeup.kofa.students.payments import StudentPaymentsContainer
+from waeup.kofa.students.accommodation import StudentAccommodation
+from waeup.kofa.utils.helpers import attrs_to_fields
+from waeup.kofa.students.utils import generate_student_id
 
 class Student(grok.Container):
@@ -63,6 +63,6 @@
     def display_fullname(self):
         middlename = getattr(self, 'middlename', None)
-        sirp_utils = getUtility(ISIRPUtils)
-        return sirp_utils.fullname(self.firstname, self.lastname, middlename)
+        kofa_utils = getUtility(IKOFAUtils)
+        return kofa_utils.fullname(self.firstname, self.lastname, middlename)
 
     @property
@@ -204,5 +204,5 @@
 
     This chooser is registered as an adapter providing
-    :class:`waeup.sirp.interfaces.IFileStoreNameChooser`.
+    :class:`waeup.kofa.interfaces.IFileStoreNameChooser`.
 
     File store name choosers like this one are only convenience
@@ -211,5 +211,5 @@
     manually setting up filenames for students.
 
-    .. seealso:: :mod:`waeup.sirp.imagestorage`
+    .. seealso:: :mod:`waeup.kofa.imagestorage`
 
     """
@@ -284,4 +284,4 @@
             StudentFileStoreHandler, self).createFile(
             store, root,  filename, file_id, file)
-        return file, path, SIRPImageFile(
+        return file, path, KOFAImageFile(
             file_obj.filename, file_obj.data)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/studycourse.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/studycourse.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/studycourse.py	(revision 7811)
@@ -23,8 +23,8 @@
 from zope.component.interfaces import IFactory
 from zope.interface import implementedBy
-from waeup.sirp.students.interfaces import (
+from waeup.kofa.students.interfaces import (
     IStudentStudyCourse, IStudentNavigation, IStudentStudyLevel)
-from waeup.sirp.students.studylevel import CourseTicket
-from waeup.sirp.utils.helpers import attrs_to_fields
+from waeup.kofa.students.studylevel import CourseTicket
+from waeup.kofa.utils.helpers import attrs_to_fields
 
 class StudentStudyCourse(grok.Container):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/studylevel.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/studylevel.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/studylevel.py	(revision 7811)
@@ -22,8 +22,8 @@
 import grok
 from zope.component.interfaces import IFactory
-from waeup.sirp.students.interfaces import (
+from waeup.kofa.students.interfaces import (
     IStudentStudyLevel, IStudentNavigation, ICourseTicket)
-from waeup.sirp.utils.helpers import attrs_to_fields
-from waeup.sirp.students.vocabularies import StudyLevelSource
+from waeup.kofa.utils.helpers import attrs_to_fields
+from waeup.kofa.students.vocabularies import StudyLevelSource
 
 class StudentStudyLevel(grok.Container):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_authentication.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_authentication.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_authentication.py	(revision 7811)
@@ -26,10 +26,10 @@
 from zope.securitypolicy.role import Role
 from zope.securitypolicy.interfaces import IRole, Allow
-from waeup.sirp.authentication import get_principal_role_manager
-from waeup.sirp.interfaces import IAuthPluginUtility, IUserAccount
-from waeup.sirp.students.authentication import (
+from waeup.kofa.authentication import get_principal_role_manager
+from waeup.kofa.interfaces import IAuthPluginUtility, IUserAccount
+from waeup.kofa.students.authentication import (
     StudentsAuthenticatorSetup, StudentAccount)
-from waeup.sirp.students.tests.test_browser import StudentsFullSetup
-from waeup.sirp.testing import FunctionalLayer
+from waeup.kofa.students.tests.test_browser import StudentsFullSetup
+from waeup.kofa.testing import FunctionalLayer
 
 class StudentsAuthenticatorSetupTests(unittest.TestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_batching.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_batching.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_batching.py	(revision 7811)
@@ -28,14 +28,14 @@
 from zope.interface.verify import verifyClass, verifyObject
 
-from waeup.sirp.app import University
-from waeup.sirp.university.faculty import Faculty
-from waeup.sirp.university.department import Department
-from waeup.sirp.students.batching import (
+from waeup.kofa.app import University
+from waeup.kofa.university.faculty import Faculty
+from waeup.kofa.university.department import Department
+from waeup.kofa.students.batching import (
     StudentProcessor, StudentStudyCourseProcessor,
     StudentStudyLevelProcessor, CourseTicketProcessor,
     StudentOnlinePaymentProcessor)
-from waeup.sirp.students.student import Student
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.interfaces import IBatchProcessor
+from waeup.kofa.students.student import Student
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.interfaces import IBatchProcessor
 
 STUDENT_SAMPLE_DATA = open(
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 7811)
@@ -33,14 +33,14 @@
 from zope.testbrowser.testing import Browser
 from hurry.workflow.interfaces import IWorkflowInfo, IWorkflowState
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.app import University
-from waeup.sirp.configuration import SessionConfiguration
-from waeup.sirp.students.student import Student
-from waeup.sirp.students.studylevel import StudentStudyLevel
-from waeup.sirp.university.faculty import Faculty
-from waeup.sirp.university.department import Department
-from waeup.sirp.interfaces import IUserAccount
-from waeup.sirp.authentication import LocalRoleSetEvent
-from waeup.sirp.hostels.hostel import Hostel, Bed, NOT_OCCUPIED
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.app import University
+from waeup.kofa.configuration import SessionConfiguration
+from waeup.kofa.students.student import Student
+from waeup.kofa.students.studylevel import StudentStudyLevel
+from waeup.kofa.university.faculty import Faculty
+from waeup.kofa.university.department import Department
+from waeup.kofa.interfaces import IUserAccount
+from waeup.kofa.authentication import LocalRoleSetEvent
+from waeup.kofa.hostels.hostel import Hostel, Bed, NOT_OCCUPIED
 
 PH_LEN = 2059  # Length of placeholder file
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_catalog.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_catalog.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_catalog.py	(revision 7811)
@@ -23,10 +23,10 @@
 from zope.component import queryUtility, createObject
 from zope.component.hooks import setSite
-from waeup.sirp.app import University
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.students.student import Student
-from waeup.sirp.students.studylevel import StudentStudyLevel, CourseTicket
-from waeup.sirp.university.faculty import Faculty
-from waeup.sirp.university.department import Department
+from waeup.kofa.app import University
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.students.student import Student
+from waeup.kofa.students.studylevel import StudentStudyLevel, CourseTicket
+from waeup.kofa.university.faculty import Faculty
+from waeup.kofa.university.department import Department
 
 class CatalogTestSetup(FunctionalTestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_container.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_container.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_container.py	(revision 7811)
@@ -23,13 +23,13 @@
 from zope.interface.verify import verifyClass, verifyObject
 from zope.component.hooks import setSite, clearSite
-from waeup.sirp.app import University
-from waeup.sirp.university.department import Department
-from waeup.sirp.students.interfaces import (
+from waeup.kofa.app import University
+from waeup.kofa.university.department import Department
+from waeup.kofa.students.interfaces import (
     IStudentsContainer,
     )
-from waeup.sirp.students.container import (
+from waeup.kofa.students.container import (
     StudentsContainer, 
     )
-from waeup.sirp.testing import (
+from waeup.kofa.testing import (
     FunctionalLayer, FunctionalTestCase, remove_logger)
 
@@ -39,5 +39,5 @@
 
     def setUp(self):
-        remove_logger('waeup.sirp.app.students')
+        remove_logger('waeup.kofa.app.students')
         super(StudentsContainerTestCase, self).setUp()
         # Setup a sample site for each test
@@ -86,5 +86,5 @@
         logger = self.app['students'].logger
         assert logger is not None
-        assert logger.name == 'waeup.sirp.app.students'
+        assert logger.name == 'waeup.kofa.app.students'
         handlers = logger.handlers
         assert len(handlers) == 1
@@ -100,5 +100,5 @@
         logger = self.app['students'].logger
         assert logger is not None
-        assert logger.name == 'waeup.sirp.app.students'
+        assert logger.name == 'waeup.kofa.app.students'
         handlers = logger.handlers
         assert len(handlers) == 1
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_dynamicroles.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_dynamicroles.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_dynamicroles.py	(revision 7811)
@@ -24,7 +24,7 @@
 from zope.securitypolicy.tests.test_annotationprincipalrolemanager import (
     Test as APRMTest, Manageable)
-from waeup.sirp.testing import FunctionalLayer
-from waeup.sirp.students.tests.test_browser import StudentsFullSetup
-from waeup.sirp.students import Student, StudentPrincipalRoleManager
+from waeup.kofa.testing import FunctionalLayer
+from waeup.kofa.students.tests.test_browser import StudentsFullSetup
+from waeup.kofa.students import Student, StudentPrincipalRoleManager
 
 class StudentPrincipalRoleManagerTests(APRMTest):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_payment.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_payment.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_payment.py	(revision 7811)
@@ -20,9 +20,9 @@
 """
 
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.students.payments import (
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.students.payments import (
     StudentOnlinePayment, StudentOnlinePaymentFactory)
-from waeup.sirp.payments.interfaces import IOnlinePayment
-from waeup.sirp.students.interfaces import IStudentNavigation
+from waeup.kofa.payments.interfaces import IOnlinePayment
+from waeup.kofa.students.interfaces import IStudentNavigation
 
 class StudentOnlinePaymentFactoryTest(FunctionalTestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_student.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_student.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_student.py	(revision 7811)
@@ -20,15 +20,15 @@
 from zope.component.interfaces import IFactory
 from zope.interface import verify
-from waeup.sirp.students.student import Student, StudentFactory
-from waeup.sirp.students.studycourse import StudentStudyCourse
-from waeup.sirp.students.studylevel import StudentStudyLevel, CourseTicket
-from waeup.sirp.students.payments import StudentPaymentsContainer
-from waeup.sirp.students.accommodation import StudentAccommodation, BedTicket
-from waeup.sirp.applicants.interfaces import IApplicantBaseData
-from waeup.sirp.students.interfaces import (
+from waeup.kofa.students.student import Student, StudentFactory
+from waeup.kofa.students.studycourse import StudentStudyCourse
+from waeup.kofa.students.studylevel import StudentStudyLevel, CourseTicket
+from waeup.kofa.students.payments import StudentPaymentsContainer
+from waeup.kofa.students.accommodation import StudentAccommodation, BedTicket
+from waeup.kofa.applicants.interfaces import IApplicantBaseData
+from waeup.kofa.students.interfaces import (
     IStudent, IStudentStudyCourse, IStudentPaymentsContainer, IStudentAccommodation,
     IStudentStudyLevel, ICourseTicket, IBedTicket)
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.university.department import Department
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.university.department import Department
 
 class StudentTest(FunctionalTestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_utils.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_utils.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_utils.py	(revision 7811)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
 import unittest
-from waeup.sirp.students.utils import formatted_text
+from waeup.kofa.students.utils import formatted_text
 
 class FormatterTests(unittest.TestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_vocabularies.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_vocabularies.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_vocabularies.py	(revision 7811)
@@ -17,6 +17,6 @@
 ##
 import unittest
-from waeup.sirp.students.vocabularies import StudyLevelSource
-from waeup.sirp.university.certificate import Certificate
+from waeup.kofa.students.vocabularies import StudyLevelSource
+from waeup.kofa.university.certificate import Certificate
 
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py	(revision 7811)
@@ -35,7 +35,7 @@
 from zope.component import getUtility
 from zope.formlib.form import setUpEditWidgets
-from waeup.sirp.interfaces import IExtFileStore, ISIRPUtils
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.students.interfaces import IStudentsUtils
+from waeup.kofa.interfaces import IExtFileStore, IKOFAUtils
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.students.interfaces import IStudentsUtils
 
 SLIP_STYLE = [
@@ -108,15 +108,15 @@
         studentview.context, attr='passport.jpg')
     if img is None:
-        from waeup.sirp.browser import DEFAULT_PASSPORT_IMAGE_PATH
+        from waeup.kofa.browser import DEFAULT_PASSPORT_IMAGE_PATH
         img = open(DEFAULT_PASSPORT_IMAGE_PATH, 'rb')
     doc_img = Image(img.name, width=4*cm, height=4*cm, kind='bound')
     data_left.append([doc_img])
     #data.append([Spacer(1, 12)])
-    portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+    portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
     for widget in studentview.widgets:
         if widget.name == 'form.adm_code':
             continue
         f_label = formatted_label(size=12) % translate(
-            widget.label.strip(), 'waeup.sirp',
+            widget.label.strip(), 'waeup.kofa',
             target_language=portal_language)
         f_label = Paragraph(f_label, style["Normal"])
@@ -164,8 +164,8 @@
       story = []
       frame_footer = Frame(1*cm,0,width-(2*cm),1*cm)
-      portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+      portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
       right_text = translate(_('<font size=10>${a} Page ${b} of ${c}</font>',
           mapping = {'a':text, 'b':pdf.getPageNumber(), 'c':number_of_pages}),
-          'waeup.sirp', target_language=portal_language)
+          'waeup.kofa', target_language=portal_language)
       story.append(Paragraph(right_text, style["Right"]))
       frame_footer.addFromList(story,pdf)
@@ -256,5 +256,5 @@
         pdf.setAuthor('%s (%s)' % (view.request.principal.title,
             view.request.principal.id))
-        pdf.setCreator('WAeUP SIRP')
+        pdf.setCreator('WAeUP KOFA')
         width, height = A4
         footer_text = view.label
@@ -275,9 +275,9 @@
         frame_body = Frame(1*cm,1*cm,width-(2*cm),height-(3.5*cm))
         story.append(Paragraph(view.label, style["Heading2"]))
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         if student is not None:
             #story.append(Spacer(1, 12))
             bd_translation = translate(_('Base Data'),
-                'waeup.sirp', target_language=portal_language)
+                'waeup.kofa', target_language=portal_language)
             story.append(Paragraph(bd_translation, style["Heading3"]))
             studenttable = render_student_data(studentview)
@@ -288,8 +288,8 @@
         set_up_widgets(view)
         data = []
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         for widget in view.widgets:
             f_label = '<font size=12>%s</font>:' % translate(
-                widget.label.strip(), 'waeup.sirp',
+                widget.label.strip(), 'waeup.kofa',
                 target_language=portal_language)
             f_label = Paragraph(f_label, style["Normal"])
@@ -302,6 +302,6 @@
         # Import browser components locally
         # to avoid circular import
-        from waeup.sirp.students.viewlets import FileManager
-        from waeup.sirp.browser import DEFAULT_IMAGE_PATH
+        from waeup.kofa.students.viewlets import FileManager
+        from waeup.kofa.browser import DEFAULT_IMAGE_PATH
         data = []
         # Collect viewlets
@@ -309,5 +309,5 @@
         fm.update()
         if fm.viewlets:
-            sc_translation = translate(_('Scanned Documents'), 'waeup.sirp',
+            sc_translation = translate(_('Scanned Documents'), 'waeup.kofa',
                 target_language=portal_language)
             story.append(Paragraph(sc_translation, style["Heading3"]))
@@ -315,5 +315,5 @@
             for viewlet in fm.viewlets:
                 f_label = formatted_label(size=12) % translate(
-                viewlet.label, 'waeup.sirp',
+                viewlet.label, 'waeup.kofa',
                 target_language=portal_language)
                 f_label = Paragraph(f_label, style["Normal"])
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/viewlets.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/viewlets.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/viewlets.py	(revision 7811)
@@ -21,15 +21,15 @@
 from zope.interface import Interface
 from zope.i18n import translate
-from waeup.sirp.interfaces import (
-    ISIRPObject, IExtFileStore, IFileStoreNameChooser, ISIRPUtils)
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.utils.helpers import string_from_bytes, file_size
-from waeup.sirp.browser import DEFAULT_IMAGE_PATH
-from waeup.sirp.browser.viewlets import (
+from waeup.kofa.interfaces import (
+    IKOFAObject, IExtFileStore, IFileStoreNameChooser, IKOFAUtils)
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.utils.helpers import string_from_bytes, file_size
+from waeup.kofa.browser import DEFAULT_IMAGE_PATH
+from waeup.kofa.browser.viewlets import (
     PrimaryNavTab, ManageActionButton, AddActionButton)
-from waeup.sirp.browser.layout import default_primary_nav_template
-from waeup.sirp.students.workflow import (ADMITTED, PAID,
+from waeup.kofa.browser.layout import default_primary_nav_template
+from waeup.kofa.students.workflow import (ADMITTED, PAID,
     CLEARANCE, REQUESTED, RETURNING, CLEARED, REGISTERED, VALIDATED)
-from waeup.sirp.students.browser import (
+from waeup.kofa.students.browser import (
     StudentClearanceManageFormPage,
     write_log_message, StudentBaseManageFormPage,
@@ -40,5 +40,5 @@
     CourseTicketDisplayFormPage, OnlinePaymentDisplayFormPage,
     AccommodationManageFormPage, BedTicketDisplayFormPage,)
-from waeup.sirp.students.interfaces import (
+from waeup.kofa.students.interfaces import (
     IStudentsContainer, IStudent, IStudentClearance,
     IStudentStudyCourse, IStudentAccommodation, IStudentStudyLevel,
@@ -46,7 +46,7 @@
     )
 
-from waeup.sirp.interfaces import MessageFactory as _
-
-grok.context(ISIRPObject) # Make ISIRPObject the default context
+from waeup.kofa.interfaces import MessageFactory as _
+
+grok.context(IKOFAObject) # Make IKOFAObject the default context
 grok.templatedir('browser_templates')
 
@@ -63,5 +63,5 @@
     grok.baseclass()
     grok.viewletmanager(StudentManageSidebar)
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.view(Interface)
     grok.order(5)
@@ -73,7 +73,7 @@
     def render(self):
         url = self.view.url(self.context.getStudent(), self.link)
-        portal_language = getUtility(ISIRPUtils).PORTAL_LANGUAGE
-        lang = self.request.cookies.get('sirp.language', portal_language)
-        text = translate(self.text, 'waeup.sirp',
+        portal_language = getUtility(IKOFAUtils).PORTAL_LANGUAGE
+        lang = self.request.cookies.get('kofa.language', portal_language)
+        text = translate(self.text, 'waeup.kofa',
             target_language=lang)
         return u'<li><a href="%s">%s</a></li>' % (
@@ -465,5 +465,5 @@
     """
 
-    grok.context(ISIRPObject)
+    grok.context(IKOFAObject)
     grok.order(4)
     grok.require('waeup.viewStudentsTab')
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/vocabularies.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/vocabularies.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/vocabularies.py	(revision 7811)
@@ -25,14 +25,14 @@
 from zc.sourcefactory.basic import BasicSourceFactory
 from zc.sourcefactory.contextual import BasicContextualSourceFactory
-from waeup.sirp.interfaces import SimpleSIRPVocabulary
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.students.lgas import LGAS
-from waeup.sirp.students.nats import NATS
-from waeup.sirp.university.vocabularies import course_levels
+from waeup.kofa.interfaces import SimpleKOFAVocabulary
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.students.lgas import LGAS
+from waeup.kofa.students.nats import NATS
+from waeup.kofa.university.vocabularies import course_levels
 
-lgas_vocab = SimpleSIRPVocabulary(
+lgas_vocab = SimpleKOFAVocabulary(
     *sorted([(x[1],x[0]) for x in LGAS]))
 
-nats_vocab = SimpleSIRPVocabulary(
+nats_vocab = SimpleKOFAVocabulary(
     *sorted([(x[1],x[0]) for x in NATS]))
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/workflow.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/workflow.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/workflow.py	(revision 7811)
@@ -5,11 +5,11 @@
 from hurry.workflow.workflow import Transition, WorkflowState, NullCondition
 from hurry.workflow.interfaces import IWorkflowState, IWorkflowTransitionEvent
-from waeup.sirp.interfaces import (
-    IObjectHistory, ISIRPWorkflowInfo, ISIRPUtils,
+from waeup.kofa.interfaces import (
+    IObjectHistory, IKOFAWorkflowInfo, IKOFAUtils,
     CREATED, ADMITTED, CLEARANCE, REQUESTED, CLEARED, PAID, RETURNING,
     REGISTERED, VALIDATED)
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.workflow import SIRPWorkflow, SIRPWorkflowInfo
-from waeup.sirp.students.interfaces import IStudent, IStudentsUtils
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.workflow import KOFAWorkflow, KOFAWorkflowInfo
+from waeup.kofa.students.interfaces import IStudent, IStudentsUtils
 
 
@@ -156,5 +156,5 @@
 UNLOCK_CLEARANCE_TRANS = ('reset3', 'reset4', 'start_clearance')
 
-registration_workflow = SIRPWorkflow(REGISTRATION_TRANSITIONS)
+registration_workflow = KOFAWorkflow(REGISTRATION_TRANSITIONS)
 
 class RegistrationWorkflowState(WorkflowState, grok.Adapter):
@@ -167,9 +167,9 @@
     state_id = 'wf.registration.id'
 
-class RegistrationWorkflowInfo(SIRPWorkflowInfo, grok.Adapter):
+class RegistrationWorkflowInfo(KOFAWorkflowInfo, grok.Adapter):
     """Adapter to adapt Student objects to workflow info objects.
     """
     grok.context(IStudent)
-    grok.provides(ISIRPWorkflowInfo)
+    grok.provides(IKOFAWorkflowInfo)
 
     def __init__(self, context):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/testing.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/testing.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/testing.py	(revision 7811)
@@ -16,5 +16,5 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""Testing support for :mod:`waeup.sirp`.
+"""Testing support for :mod:`waeup.kofa`.
 """
 import grok
@@ -28,5 +28,5 @@
 import warnings
 import zope.component
-import waeup.sirp
+import waeup.kofa
 from zope.app.testing.functional import (
     ZCMLLayer, FunctionalTestSetup, getRootFolder, sync, FunctionalTestCase)
@@ -37,5 +37,5 @@
 
 ftesting_zcml = os.path.join(
-    os.path.dirname(waeup.sirp.__file__), 'ftesting.zcml')
+    os.path.dirname(waeup.kofa.__file__), 'ftesting.zcml')
 FunctionalLayer = ZCMLLayer(ftesting_zcml, __name__, 'FunctionalLayer',
                             allow_teardown=True)
@@ -45,5 +45,5 @@
     """
     result = logging.root.manager.loggerDict.keys()
-    ws_loggers = [x for x in result if 'waeup.sirp' in x]
+    ws_loggers = [x for x in result if 'waeup.kofa' in x]
     if ws_loggers:
         # For debugging: show any remaining loggers from w.s. namespace
@@ -93,8 +93,8 @@
 
 def maybe_grok():
-    """Try to grok the :mod:`waeup.sirp` package.
+    """Try to grok the :mod:`waeup.kofa` package.
 
     For many tests, even simple ones, we want the components defined
-    somewhere in the :mod:`waeup.sirp` package being registered. While
+    somewhere in the :mod:`waeup.kofa` package being registered. While
     grokking the complete package can become expensive when done many
     times, we only want to grok if it did not happen
@@ -105,5 +105,5 @@
     registered and does nothing in that case.
 
-    The grokking of :mod:`waeup.sirp` is done with warnings disabled.
+    The grokking of :mod:`waeup.kofa` is done with warnings disabled.
 
     Returns ``True`` if grokking was done, ``False`` else.
@@ -122,8 +122,8 @@
 
       import unittest2 as unittest # Want Python 2.7 features
-      from waeup.sirp.testing import (
+      from waeup.kofa.testing import (
         maybe_grok, setUpZope, cleanUpZope,
         )
-      from waeup.sirp.app import University
+      from waeup.kofa.app import University
 
       class MyTestCase(unittest.TestCase):
@@ -153,5 +153,5 @@
     Here the component registration is done only once for the whole
     :class:`unittest.TestCase` and no ZODB is needed. That means
-    inside the tests you can expect to have all :mod:`waeup.sirp`
+    inside the tests you can expect to have all :mod:`waeup.kofa`
     components (utilities, adapter, events) registered but as objects
     have here still have no place inside a ZODB things like 'browsing'
@@ -163,5 +163,5 @@
          If you use the Zope testrunner (from :mod:`zope.testing`)
          then you have to use appropriate layers like the
-         :class:`waeup.sirp.testing.SIRPUnitTestLayer`.
+         :class:`waeup.kofa.testing.KOFAUnitTestLayer`.
 
     Usage with :mod:`zope.testing` testrunners
@@ -172,10 +172,10 @@
     like the one defined in this module.
 
-    .. seealso:: :class:`waeup.sirp.testing.SIRPUnitTestLayer`
+    .. seealso:: :class:`waeup.kofa.testing.KOFAUnitTestLayer`
 
     """
     gsm =  getGlobalSiteManager()
     # If there are any event handlers registered already, we assume
-    # that waeup.sirp was grokked already. There might be a batter
+    # that waeup.kofa was grokked already. There might be a batter
     # check, though.
     if len(list(gsm.registeredHandlers())) > 0:
@@ -184,5 +184,5 @@
     addCheckerPublic()
     warnings.simplefilter('ignore') # disable (erraneous) warnings
-    grok.testing.grok('waeup.sirp')
+    grok.testing.grok('waeup.kofa')
     warnings.simplefilter('default') # reenable warnings
     return True
@@ -191,5 +191,5 @@
     """Register a datacenter config utility for non-functional tests.
     """
-    from waeup.sirp.interfaces import IDataCenterConfig
+    from waeup.kofa.interfaces import IDataCenterConfig
     conf = queryUtility(IDataCenterConfig)
     if conf is not None:
@@ -204,5 +204,5 @@
     """Unregister a datacenter config utility for non-functional tests.
     """
-    from waeup.sirp.interfaces import IDataCenterConfig
+    from waeup.kofa.interfaces import IDataCenterConfig
     conf = queryUtility(IDataCenterConfig)
     if conf is None:
@@ -214,10 +214,10 @@
     return
 
-class SIRPUnitTestLayer(object):
-    """A layer for tests that groks `waeup.sirp`.
-
-    A Zope test layer that registers all :mod:`waeup.sirp` components
+class KOFAUnitTestLayer(object):
+    """A layer for tests that groks `waeup.kofa`.
+
+    A Zope test layer that registers all :mod:`waeup.kofa` components
     before attached tests are run and cleans this registrations up
-    afterwards. Also basic (non-waeup.sirp) components like the event
+    afterwards. Also basic (non-waeup.kofa) components like the event
     dispatcher machinery are registered, set up and cleaned up.
 
@@ -237,9 +237,9 @@
 
       import unittest
-      from waeup.sirp.testing import SIRPUnitTestLayer
+      from waeup.kofa.testing import KOFAUnitTestLayer
 
       class MyTestCase(unittest.TestCase):
 
-          layer = SIRPUnitTestLayer
+          layer = KOFAUnitTestLayer
 
           # per-test setups and real tests go here...
@@ -331,5 +331,5 @@
 def clear_logger_collector():
     from zope.component import queryUtility, getGlobalSiteManager
-    from waeup.sirp.interfaces import ILoggerCollector
+    from waeup.kofa.interfaces import ILoggerCollector
     collector = queryUtility(ILoggerCollector)
     if collector is None:
@@ -363,12 +363,12 @@
         If no special `checker` is passed, we use an extended
         :class:`doctest.OutputChecker` as defined in
-        :mod:`waeup.sirp.testing`.
+        :mod:`waeup.kofa.testing`.
 
         If optional `optionflags` are not given, use ``REPORT_NDIFF``,
         ``ELLIPSIS``, and ``NORMALIZE_WHITESPACE``.
 
-        .. seealso:: :data:`waeup.sirp.testing.optionflags`
-
-        .. seealso:: :data:`waeup.sirp.testing.checker`
+        .. seealso:: :data:`waeup.kofa.testing.optionflags`
+
+        .. seealso:: :data:`waeup.kofa.testing.checker`
         """
         if checker.check_output(want, got, optionflags):
@@ -406,5 +406,5 @@
     instance by something like:
 
-      from waeup.sirp.testing import get_doctest_suite
+      from waeup.kofa.testing import get_doctest_suite
       def test_suite():
         suite = get_doctest_suite(['mypkg/foo.txt', 'mypkg/bar.txt'])
Index: /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_app.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_app.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_app.py	(revision 7811)
@@ -22,7 +22,7 @@
 from zope.component.hooks import setSite
 from zope.interface.verify import verifyClass, verifyObject
-from waeup.sirp.app import University
-from waeup.sirp.interfaces import IUniversity
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.app import University
+from waeup.kofa.interfaces import IUniversity
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
 
 class UniversityTests(FunctionalTestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_authentication.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_authentication.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_authentication.py	(revision 7811)
@@ -22,7 +22,7 @@
 from zope.pluggableauth.interfaces import IAuthenticatorPlugin
 from zope.securitypolicy.interfaces import IPrincipalRoleManager
-from waeup.sirp.testing import FunctionalTestCase, FunctionalLayer
-from waeup.sirp.authentication import (
-    UserAuthenticatorPlugin, Account, SIRPPrincipalInfo,
+from waeup.kofa.testing import FunctionalTestCase, FunctionalLayer
+from waeup.kofa.authentication import (
+    UserAuthenticatorPlugin, Account, KOFAPrincipalInfo,
     get_principal_role_manager)
 
@@ -64,5 +64,5 @@
         result2 = plugin.authenticateCredentials(
             dict(login='bob', password='nonsense'))
-        self.assertTrue(isinstance(result1, SIRPPrincipalInfo))
+        self.assertTrue(isinstance(result1, KOFAPrincipalInfo))
         self.assertTrue(result2 is None)
         return
@@ -73,5 +73,5 @@
         result1 = plugin.principalInfo('bob')
         result2 = plugin.principalInfo('manfred')
-        self.assertTrue(isinstance(result1, SIRPPrincipalInfo))
+        self.assertTrue(isinstance(result1, KOFAPrincipalInfo))
         self.assertTrue(result2 is None)
         return
Index: /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_configuration.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_configuration.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_configuration.py	(revision 7811)
@@ -20,8 +20,8 @@
 from zope.component.interfaces import IFactory
 from zope.interface import verify
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.configuration import (
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.configuration import (
     ConfigurationContainer, SessionConfiguration, SessionConfigurationFactory)
-from waeup.sirp.interfaces import(
+from waeup.kofa.interfaces import(
     IConfigurationContainer, ISessionConfiguration, ISessionConfigurationAdd)
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_doctests.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_doctests.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_doctests.py	(revision 7811)
@@ -16,7 +16,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""Register doctests for waeup.sirp.
+"""Register doctests for waeup.kofa.
 """
-from waeup.sirp.testing import get_doctest_suite
+from waeup.kofa.testing import get_doctest_suite
 
 def test_suite():
Index: /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_imagestorage.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_imagestorage.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_imagestorage.py	(revision 7811)
@@ -27,10 +27,10 @@
 from zope.component.hooks import setSite
 from zope.interface.verify import verifyClass, verifyObject
-from waeup.sirp.app import University
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.imagestorage import (
+from waeup.kofa.app import University
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.imagestorage import (
     FileStoreNameChooser, ExtFileStore, DefaultFileStoreHandler,
     DefaultStorage)
-from waeup.sirp.interfaces import (
+from waeup.kofa.interfaces import (
     IFileStoreNameChooser, IExtFileStore, IFileStoreHandler,)
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_interfaces.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_interfaces.py	(revision 7811)
@@ -20,6 +20,6 @@
 import grok
 import unittest
-from waeup.sirp.interfaces import DuplicationError, RoleSource
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.interfaces import DuplicationError, RoleSource
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
 
 class DuplicationErrorTests(unittest.TestCase):
@@ -48,10 +48,10 @@
         # Register a role not visible to waeup portal as its name does
         # not start with 'waeup.'
-        class NonSIRPRole(grok.Role):
+        class NonKOFARole(grok.Role):
             grok.name('nonwaeup.testrole')
             grok.title('Role not suitable for waeup')
             grok.permissions('waeup.Public')
         grok.testing.grok_component('SomeRole', SomeRole)
-        grok.testing.grok_component('NonSIRPRole', NonSIRPRole)
+        grok.testing.grok_component('NonKOFARole', NonKOFARole)
         return
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_objecthistory.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_objecthistory.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_objecthistory.py	(revision 7811)
@@ -25,11 +25,11 @@
 from zope.security.management import newInteraction, endInteraction
 from zope.security.testing import Principal, Participation
-from waeup.sirp.app import University
-from waeup.sirp.interfaces import IObjectHistory, ISIRPObject
-from waeup.sirp.testing import FunctionalTestCase, FunctionalLayer
-from waeup.sirp.objecthistory import ObjectHistory
+from waeup.kofa.app import University
+from waeup.kofa.interfaces import IObjectHistory, IKOFAObject
+from waeup.kofa.testing import FunctionalTestCase, FunctionalLayer
+from waeup.kofa.objecthistory import ObjectHistory
 
 class SampleObject(grok.Model):
-    grok.implements(ISIRPObject)
+    grok.implements(IKOFAObject)
     pass
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_schoolgrades.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_schoolgrades.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_schoolgrades.py	(revision 7811)
@@ -2,6 +2,6 @@
 import unittest
 from zope.interface.verify import verifyObject, verifyClass
-from waeup.sirp.interfaces import IResultEntry, IResultEntryField
-from waeup.sirp.schoolgrades import ResultEntry, ResultEntryField
+from waeup.kofa.interfaces import IResultEntry, IResultEntryField
+from waeup.kofa.schoolgrades import ResultEntry, ResultEntryField
 
 class ResultEntryTests(unittest.TestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_smtp.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_smtp.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_smtp.py	(revision 7811)
@@ -27,10 +27,10 @@
 from zope.component.hooks import setSite
 from zope.sendmail.interfaces import IMailDelivery
-from waeup.sirp.app import University
-from waeup.sirp.interfaces import IMailService
-from waeup.sirp.smtp import (
+from waeup.kofa.app import University
+from waeup.kofa.interfaces import IMailService
+from waeup.kofa.smtp import (
     encode_header_item, encode_address, encode_body, FakeSMTPDelivery,
     send_mail)
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
 
 #
@@ -328,5 +328,5 @@
             'test program', 'no-reply@waeup.org',
             'test mail receiver', EXTERNAL_MAIL_RECEIVER,
-            'Test Mail from WAeUP SIRP',
+            'Test Mail from WAeUP KOFA',
             'Hi from test mailer!\n\nRegards,\nTest Programme\n'
             )
@@ -345,5 +345,5 @@
             'test program', 'no-reply@waeup.org',
             'test mail receiver', EXTERNAL_MAIL_RECEIVER,
-            'Test Mail from WAeUP SIRP',
+            'Test Mail from WAeUP KOFA',
             'Hi from test mailer!\n\nRegards,\nTest Programme\n'
             )
Index: /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_waeup.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_waeup.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/tests/test_waeup.py	(revision 7811)
@@ -17,5 +17,5 @@
 ##
 """
-Test setup for the waeup.sirp package.
+Test setup for the waeup.kofa package.
 """
 import grok
@@ -23,5 +23,5 @@
 import zope.component.eventtesting
 from zope.testing import renormalizing
-from waeup.sirp.testing import FunctionalLayer
+from waeup.kofa.testing import FunctionalLayer
 
 def setUpZope(test):
@@ -32,6 +32,6 @@
         ])
 
-# Register all tests in the waeup.sirp package
+# Register all tests in the waeup.kofa package
 test_suite = grok.testing.register_all_tests(
-    'waeup.sirp', checker=checker, usetup=setUpZope,
+    'waeup.kofa', checker=checker, usetup=setUpZope,
     layer=FunctionalLayer)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/__init__.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/__init__.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/__init__.py	(revision 7811)
@@ -1,10 +1,10 @@
 # Make this a package.
-from waeup.sirp.university.course import Course
-from waeup.sirp.university.coursescontainer import CoursesContainer
-from waeup.sirp.university.certificate import Certificate
-from waeup.sirp.university.certificatescontainer import CertificatesContainer
-from waeup.sirp.university.faculty import Faculty
-from waeup.sirp.university.department import Department
-from waeup.sirp.university.facultiescontainer import FacultiesContainer
+from waeup.kofa.university.course import Course
+from waeup.kofa.university.coursescontainer import CoursesContainer
+from waeup.kofa.university.certificate import Certificate
+from waeup.kofa.university.certificatescontainer import CertificatesContainer
+from waeup.kofa.university.faculty import Faculty
+from waeup.kofa.university.department import Department
+from waeup.kofa.university.facultiescontainer import FacultiesContainer
 __all__ = (
     'Course', 'CoursesContainer',
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/api.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/api.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/api.txt	(revision 7811)
@@ -1,6 +1,6 @@
-:mod:`waeup.sirp.university` -- academic components
+:mod:`waeup.kofa.university` -- academic components
 ***************************************************
 
-.. module:: waeup.sirp.university
+.. module:: waeup.kofa.university
 
 Components that represent academic 'core' stuff like faculties, 
@@ -9,5 +9,5 @@
 ==========
 
-The :mod:`waeup.sirp.university` module provides the following submodules:
+The :mod:`waeup.kofa.university` module provides the following submodules:
 
 .. toctree::
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/batching.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/batching.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/batching.py	(revision 7811)
@@ -26,9 +26,9 @@
 import grok
 from zope.interface import Interface
-from waeup.sirp.interfaces import IBatchProcessor
-from waeup.sirp.university.interfaces import (
+from waeup.kofa.interfaces import IBatchProcessor
+from waeup.kofa.university.interfaces import (
     IFacultiesContainer, IFaculty, ICourse, IDepartment, ICertificate,
     ICertificateCourse)
-from waeup.sirp.utils.batching import BatchProcessor
+from waeup.kofa.utils.batching import BatchProcessor
 
 class FacultyProcessor(BatchProcessor):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/catalog.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/catalog.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/catalog.py	(revision 7811)
@@ -26,7 +26,7 @@
 from zope.index.text.parsetree import ParseError
 from zope.intid import IIntIds
-#from waeup.sirp.catalog import QueryResultItem
-from waeup.sirp.interfaces import IUniversity, IQueryResultItem
-from waeup.sirp.university.interfaces import (
+#from waeup.kofa.catalog import QueryResultItem
+from waeup.kofa.interfaces import IUniversity, IQueryResultItem
+from waeup.kofa.university.interfaces import (
     ICourse, ICertificateCourse, IDepartment,
     ICertificate,
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/certificate.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/certificate.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/certificate.py	(revision 7811)
@@ -16,5 +16,5 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""SIRP certificates
+"""KOFA certificates
 """
 import grok
@@ -24,7 +24,7 @@
 from zope.component.interfaces import IFactory, ComponentLookupError
 from zope.interface import implementedBy
-from waeup.sirp.university.interfaces import (
+from waeup.kofa.university.interfaces import (
     ICertificate, ICertificateAdd, ICertificateCourse)
-from waeup.sirp.university.vocabularies import course_levels
+from waeup.kofa.university.vocabularies import course_levels
 
 class Certificate(grok.Container):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/certificate.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/certificate.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/certificate.txt	(revision 7811)
@@ -1,11 +1,11 @@
-:mod:`waeup.sirp.university.certificate` -- Certificates for SIRP
+:mod:`waeup.kofa.university.certificate` -- Certificates for KOFA
 ******************************************************************
 
-.. module:: waeup.sirp.university.certificate
+.. module:: waeup.kofa.university.certificate
 
 Components that represent and manage certificates.
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
 
@@ -25,10 +25,10 @@
    All parameters are optional:
 
-     >>> from waeup.sirp.university.certificate import Certificate
+     >>> from waeup.kofa.university.certificate import Certificate
      >>> mycertificate = Certificate()
 
    Certificates have the attributes required by the `ICertificate` interface:
 
-     >>> from waeup.sirp.university.interfaces import ICertificate
+     >>> from waeup.kofa.university.interfaces import ICertificate
      >>> ICertificate.providedBy(mycertificate)
      True
@@ -99,5 +99,5 @@
 
       Add a referrer of a course. A course is an object implementing
-      :class:`waeup.sirp.interfaces.ICourse`.
+      :class:`waeup.kofa.interfaces.ICourse`.
 
       Please don't be confused by the term 'referrer'. As course objects 
@@ -159,5 +159,5 @@
      >>> mycertificate = createObject(u'waeup.Certificate')
      >>> mycertificate
-     <waeup.sirp.university.certificate.Certificate object at 0x...>
+     <waeup.kofa.university.certificate.Certificate object at 0x...>
 
    The factory complies with the specifications from the
@@ -166,5 +166,5 @@
      >>> from zope.interface.verify import verifyClass
      >>> from zope.component.interfaces import IFactory
-     >>> from waeup.sirp.university.certificate import CertificateFactory
+     >>> from waeup.kofa.university.certificate import CertificateFactory
      >>> verifyClass(IFactory, CertificateFactory)
      True
@@ -175,5 +175,5 @@
      >>> certificate_factory = CertificateFactory()
      >>> certificate_factory.getInterfaces()
-     <implementedBy waeup.sirp.university.certificate.Certificate>
+     <implementedBy waeup.kofa.university.certificate.Certificate>
 
 
@@ -193,5 +193,5 @@
      >>> mycertificatecourse = createObject(u'waeup.CertificateCourse')
      >>> mycertificatecourse
-     <waeup.sirp.university.certificate.CertificateCourse object at 0x...>
+     <waeup.kofa.university.certificate.CertificateCourse object at 0x...>
 
    The factory complies with the specifications from the
@@ -200,5 +200,5 @@
      >>> from zope.interface.verify import verifyClass
      >>> from zope.component.interfaces import IFactory
-     >>> from waeup.sirp.university.certificate import CertificateCourseFactory
+     >>> from waeup.kofa.university.certificate import CertificateCourseFactory
      >>> verifyClass(IFactory, CertificateCourseFactory)
      True
@@ -209,5 +209,5 @@
      >>> certcourse_factory = CertificateCourseFactory()
      >>> certcourse_factory.getInterfaces()
-     <implementedBy waeup.sirp.university.certificate.CertificateCourse>
+     <implementedBy waeup.kofa.university.certificate.CertificateCourse>
 
 
@@ -244,8 +244,8 @@
 We can create certificates:
 
-    >>> from waeup.sirp.university.certificate import Certificate
+    >>> from waeup.kofa.university.certificate import Certificate
     >>> mycertificate = Certificate()
     >>> mycertificate
-    <waeup.sirp.university.certificate.Certificate object at 0x...>
+    <waeup.kofa.university.certificate.Certificate object at 0x...>
 
 Another way to create certificates is by asking for a factory called
@@ -256,5 +256,5 @@
     >>> mycertificate = createObject(u'waeup.Certificate')
     >>> mycertificate
-    <waeup.sirp.university.certificate.Certificate object at 0x...>
+    <waeup.kofa.university.certificate.Certificate object at 0x...>
 
 CertificateCourses
@@ -264,6 +264,6 @@
 :class:`ICertificateCourse` interface:
 
-    >>> from waeup.sirp.university.interfaces import ICertificateCourse
-    >>> from waeup.sirp.university.certificate import CertificateCourse
+    >>> from waeup.kofa.university.interfaces import ICertificateCourse
+    >>> from waeup.kofa.university.certificate import CertificateCourse
     >>> mycertcourse = CertificateCourse(None, 200, False)
     >>> ICertificateCourse.providedBy(mycertcourse)
@@ -280,5 +280,5 @@
     >>> mycertcourse = createObject(u'waeup.CertificateCourse')
     >>> mycertcourse
-    <waeup.sirp.university.certificate.CertificateCourse object at 0x...>
+    <waeup.kofa.university.certificate.CertificateCourse object at 0x...>
 
 .. _removecertificatecourses:
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/certificatescontainer.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/certificatescontainer.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/certificatescontainer.py	(revision 7811)
@@ -23,6 +23,6 @@
 from zope.component import queryUtility
 from zope.interface import implementedBy
-from waeup.sirp.interfaces import DuplicationError
-from waeup.sirp.university.interfaces import (
+from waeup.kofa.interfaces import DuplicationError
+from waeup.kofa.university.interfaces import (
     ICertificatesContainer, ICertificate)
 
@@ -31,5 +31,5 @@
 
     A :class:`CertificatesContainer` stores
-    :class:`waeup.sirp.university.Certificate` instances.
+    :class:`waeup.kofa.university.Certificate` instances.
 
     It is a :class:`grok.Container` basically acting like a standard
@@ -52,5 +52,5 @@
 
         The `certificate` must be an object implementing
-        :class:`waeup.sirp.university.interfaces.ICertificate`. If
+        :class:`waeup.kofa.university.interfaces.ICertificate`. If
         not, a :exc:`TypeError` is raised.
 
@@ -60,6 +60,6 @@
         If the `code` attribute of `certificate` is already in use by
         another certificate stored in the local site
-        (:class:`waeup.sirp.app.University` instance), then a
-        :exc:`waeup.sirp.interfaces.DuplicationError` will be raised.
+        (:class:`waeup.kofa.app.University` instance), then a
+        :exc:`waeup.kofa.interfaces.DuplicationError` will be raised.
 
         If `name` is already used as a key, a :exc:`KeyError` will be
@@ -92,5 +92,5 @@
 
         The certificate must be an object implementing
-        :class:`waeup.sirp.university.interfaces.ICertificate`. If
+        :class:`waeup.kofa.university.interfaces.ICertificate`. If
         not, a :exc:`TypeError` is raised.
 
@@ -98,6 +98,6 @@
         `code` attribute as key. If this key is already used for
         another certificate stored in the local site
-        (:class:`waeup.sirp.app.University` instance), then a
-        :exc:`waeup.sirp.interfaces.DuplicationError` will be raised.
+        (:class:`waeup.kofa.app.University` instance), then a
+        :exc:`waeup.kofa.interfaces.DuplicationError` will be raised.
         """
         self[getattr(certificate, 'code', None)] = certificate
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/certificatescontainer.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/certificatescontainer.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/certificatescontainer.txt	(revision 7811)
@@ -1,11 +1,11 @@
-:mod:`waeup.sirp.university.certificatescontainer` -- Certificate containers
+:mod:`waeup.kofa.university.certificatescontainer` -- Certificate containers
 ****************************************************************************
 
-.. module:: waeup.sirp.university.certificatescontainer
+.. module:: waeup.kofa.university.certificatescontainer
 
 Containers for certificates.
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
 
@@ -26,14 +26,14 @@
    :class:`CertificatesContainer` instances are instances of
    :class:`grok.Container` that hold and manage instances of
-   :class:`waeup.sirp.university.certificate.Certificate`.
+   :class:`waeup.kofa.university.certificate.Certificate`.
 
-     >>> from waeup.sirp.university.certificatescontainer import CertificatesContainer
+     >>> from waeup.kofa.university.certificatescontainer import CertificatesContainer
      >>> mycontainer = CertificatesContainer()
      >>> mycontainer
-     <waeup.sirp.university.certificatescontainer.CertificatesContainer object at 0x...>
+     <waeup.kofa.university.certificatescontainer.CertificatesContainer object at 0x...>
 
    Certificate containers provide `ICertificatesContainer`:
 
-     >>> from waeup.sirp.university.interfaces import ICertificatesContainer
+     >>> from waeup.kofa.university.interfaces import ICertificatesContainer
      >>> ICertificatesContainer.providedBy(mycontainer)
      True
@@ -57,7 +57,7 @@
 
       *certificate* must be an instance of
-      :class:`waeup.sirp.university.certificate.Certificate`:
+      :class:`waeup.kofa.university.certificate.Certificate`:
 
-        >>> from waeup.sirp.university.certificatescontainer import (
+        >>> from waeup.kofa.university.certificatescontainer import (
         ...   CertificatesContainer)
         >>> mycontainer = CertificatesContainer()
@@ -69,5 +69,5 @@
       The key of added items is the ``code`` attribute:
 
-        >>> from waeup.sirp.university.certificate import Certificate
+        >>> from waeup.kofa.university.certificate import Certificate
         >>> mycertificate = Certificate(code='CERTIFICATE1')
         >>> mycontainer.addCertificate(mycertificate)
@@ -104,5 +104,5 @@
      >>> mycertificatescontainer = createObject(u'waeup.CertificatesContainer')
      >>> mycertificatescontainer
-     <waeup.sirp.university.certificatescontainer.CertificatesContainer object at 0x...>
+     <waeup.kofa.university.certificatescontainer.CertificatesContainer object at 0x...>
 
    The factory complies with the specifications from the
@@ -111,5 +111,5 @@
      >>> from zope.interface.verify import verifyClass
      >>> from zope.component.interfaces import IFactory
-     >>> from waeup.sirp.university.certificatescontainer import (
+     >>> from waeup.kofa.university.certificatescontainer import (
      ...   CertificatesContainerFactory)
      >>> verifyClass(IFactory, CertificatesContainerFactory)
@@ -121,5 +121,5 @@
      >>> certificatescontainer_factory = CertificatesContainerFactory()
      >>> certificatescontainer_factory.getInterfaces()
-     <implementedBy waeup.sirp.university.certificatescontainer.CertificatesContainer>
+     <implementedBy waeup.kofa.university.certificatescontainer.CertificatesContainer>
 
 
@@ -132,5 +132,5 @@
 We can easily create `CertificatesContainers`:
 
-    >>> from waeup.sirp.university.certificatescontainer import CertificatesContainer
+    >>> from waeup.kofa.university.certificatescontainer import CertificatesContainer
     >>> mycontainer = CertificatesContainer()
 
@@ -143,5 +143,5 @@
     >>> from zope.component import createObject
     >>> createObject(u'waeup.CertificatesContainer')
-    <waeup.sirp.university.certificatescontainer.CertificatesContainer object at 0x...>
+    <waeup.kofa.university.certificatescontainer.CertificatesContainer object at 0x...>
 
 This way we get a thing that implements ICertificatesContainer without
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/course.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/course.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/course.py	(revision 7811)
@@ -23,5 +23,5 @@
 from zope.component import getUtility
 from zope.component.interfaces import IFactory, ComponentLookupError
-from waeup.sirp.university.interfaces import ICourse, ICourseAdd
+from waeup.kofa.university.interfaces import ICourse, ICourseAdd
 
 class Course(grok.Model):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/course.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/course.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/course.txt	(revision 7811)
@@ -1,11 +1,11 @@
-:mod:`waeup.sirp.university.course` -- Courses
+:mod:`waeup.kofa.university.course` -- Courses
 **********************************************
 
-.. module:: waeup.sirp.university.course
+.. module:: waeup.kofa.university.course
 
 Components that represent courses.
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
 Content Classes (models and containers)
@@ -23,13 +23,13 @@
    All parameters are optional:
 
-     >>> from waeup.sirp.university.course import Course
+     >>> from waeup.kofa.university.course import Course
      >>> mycourse = Course()
      >>> mycourse
-     <waeup.sirp.university.course.Course object at 0x...>
+     <waeup.kofa.university.course.Course object at 0x...>
 
    Course instances have the attributes required by the
-   :class:`waeup.sirp.interfaces.ICourse` interface:
+   :class:`waeup.kofa.interfaces.ICourse` interface:
 
-     >>> from waeup.sirp.university.interfaces import ICourse
+     >>> from waeup.kofa.university.interfaces import ICourse
      >>> ICourse.providedBy(mycourse)
      True
@@ -101,5 +101,5 @@
      >>> mycourse = createObject(u'waeup.Course')
      >>> mycourse
-     <waeup.sirp.university.course.Course object at 0x...>
+     <waeup.kofa.university.course.Course object at 0x...>
 
    The factory complies with the specifications from the
@@ -108,5 +108,5 @@
      >>> from zope.interface.verify import verifyClass
      >>> from zope.component.interfaces import IFactory
-     >>> from waeup.sirp.university.course import CourseFactory
+     >>> from waeup.kofa.university.course import CourseFactory
      >>> verifyClass(IFactory, CourseFactory)
      True
@@ -117,5 +117,5 @@
      >>> course_factory = CourseFactory()
      >>> course_factory.getInterfaces()
-     <implementedBy waeup.sirp.university.course.Course>
+     <implementedBy waeup.kofa.university.course.Course>
 
 Examples
@@ -128,8 +128,8 @@
 class and calling the constructor:
 
-    >>> from waeup.sirp.university.course import Course
+    >>> from waeup.kofa.university.course import Course
     >>> mycourse = Course()
     >>> mycourse
-    <waeup.sirp.university.course.Course object at 0x...>
+    <waeup.kofa.university.course.Course object at 0x...>
 
 Another way to create courses is by asking for a factory called
@@ -140,4 +140,4 @@
     >>> mycourse = createObject(u'waeup.Course')
     >>> mycourse
-    <waeup.sirp.university.course.Course object at 0x...>
+    <waeup.kofa.university.course.Course object at 0x...>
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/courserefs.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/courserefs.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/courserefs.txt	(revision 7811)
@@ -16,5 +16,5 @@
 As correct deletion of referrer needs support of catalogs (we lookup
 catalogs to find referrers), we need a fully blown ZODB here,
-including an instance of :class:`waeup.sirp.app.University`, as this is our
+including an instance of :class:`waeup.kofa.app.University`, as this is our
 `ISite` object where the catalogs are stored.
 
@@ -23,5 +23,5 @@
 and course certificates:
 
-    >>> from waeup.sirp.app import University
+    >>> from waeup.kofa.app import University
     >>> root = getRootFolder()
     >>> root['app'] = University()
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/coursescontainer.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/coursescontainer.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/coursescontainer.py	(revision 7811)
@@ -23,6 +23,6 @@
 from zope.catalog.interfaces import ICatalog
 from zope.component import queryUtility
-from waeup.sirp.interfaces import DuplicationError
-from waeup.sirp.university.interfaces import ICoursesContainer, ICourse
+from waeup.kofa.interfaces import DuplicationError
+from waeup.kofa.university.interfaces import ICoursesContainer, ICourse
 
 class CoursesContainer(grok.Container):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/coursescontainer.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/coursescontainer.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/coursescontainer.txt	(revision 7811)
@@ -1,11 +1,11 @@
-:mod:`waeup.sirp.university.coursescontainer` -- Course containers
+:mod:`waeup.kofa.university.coursescontainer` -- Course containers
 ******************************************************************
 
-.. module:: waeup.sirp.university.coursescontainer
+.. module:: waeup.kofa.university.coursescontainer
 
 Containers for courses.
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
 
@@ -26,14 +26,14 @@
    :class:`CoursesContainer` instances are instances of
    :class:`grok.Container` that hold and manage instances of
-   :class:`waeup.sirp.university.course.Course`.
+   :class:`waeup.kofa.university.course.Course`.
 
-     >>> from waeup.sirp.university.coursescontainer import CoursesContainer
+     >>> from waeup.kofa.university.coursescontainer import CoursesContainer
      >>> mycontainer = CoursesContainer()
      >>> mycontainer
-     <waeup.sirp.university.coursescontainer.CoursesContainer object at 0x...>
+     <waeup.kofa.university.coursescontainer.CoursesContainer object at 0x...>
 
    Course containers provide `ICoursesContainer`:
 
-     >>> from waeup.sirp.university.interfaces import ICoursesContainer
+     >>> from waeup.kofa.university.interfaces import ICoursesContainer
      >>> ICoursesContainer.providedBy(mycontainer)
      True
@@ -57,7 +57,7 @@
 
       *course* must be an instance of
-      :class:`waeup.sirp.university.course.Course`:
+      :class:`waeup.kofa.university.course.Course`:
 
-        >>> from waeup.sirp.university.coursescontainer import CoursesContainer
+        >>> from waeup.kofa.university.coursescontainer import CoursesContainer
         >>> mycontainer = CoursesContainer()
         >>> mycontainer.addCourse('blah')
@@ -68,5 +68,5 @@
       The key of added items is the ``code`` attribute:
 
-        >>> from waeup.sirp.university.course import Course
+        >>> from waeup.kofa.university.course import Course
         >>> mycourse = Course(code='COURSE1')
         >>> mycontainer.addCourse(mycourse)
@@ -103,5 +103,5 @@
      >>> mycoursescontainer = createObject(u'waeup.CoursesContainer')
      >>> mycoursescontainer
-     <waeup.sirp.university.coursescontainer.CoursesContainer object at 0x...>
+     <waeup.kofa.university.coursescontainer.CoursesContainer object at 0x...>
 
    The factory complies with the specifications from the
@@ -110,5 +110,5 @@
      >>> from zope.interface.verify import verifyClass
      >>> from zope.component.interfaces import IFactory
-     >>> from waeup.sirp.university.coursescontainer import CoursesContainerFactory
+     >>> from waeup.kofa.university.coursescontainer import CoursesContainerFactory
      >>> verifyClass(IFactory, CoursesContainerFactory)
      True
@@ -119,5 +119,5 @@
      >>> coursescontainer_factory = CoursesContainerFactory()
      >>> coursescontainer_factory.getInterfaces()
-     <implementedBy waeup.sirp.university.coursescontainer.CoursesContainer>
+     <implementedBy waeup.kofa.university.coursescontainer.CoursesContainer>
 
 
@@ -130,5 +130,5 @@
 We can easily create `CoursesContainers`:
 
-    >>> from waeup.sirp.university.coursescontainer import CoursesContainer
+    >>> from waeup.kofa.university.coursescontainer import CoursesContainer
     >>> mycontainer = CoursesContainer()
 
@@ -141,5 +141,5 @@
     >>> from zope.component import createObject
     >>> createObject(u'waeup.CoursesContainer')
-    <waeup.sirp.university.coursescontainer.CoursesContainer object at 0x...>
+    <waeup.kofa.university.coursescontainer.CoursesContainer object at 0x...>
 
 This way we get a thing that implements ICoursesContainer without
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/department.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/department.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/department.py	(revision 7811)
@@ -22,8 +22,8 @@
 from zope.interface import implementedBy
 from zope.component import getUtility
-from waeup.sirp.university.coursescontainer import CoursesContainer
-from waeup.sirp.university.certificatescontainer import CertificatesContainer
-from waeup.sirp.interfaces import ISIRPUtils
-from waeup.sirp.university.interfaces import IDepartment, IDepartmentAdd
+from waeup.kofa.university.coursescontainer import CoursesContainer
+from waeup.kofa.university.certificatescontainer import CertificatesContainer
+from waeup.kofa.interfaces import IKOFAUtils
+from waeup.kofa.university.interfaces import IDepartment, IDepartmentAdd
 
 class Department(grok.Container):
@@ -73,5 +73,5 @@
 
     def longtitle(self):
-        insttypes_dict = getUtility(ISIRPUtils).getInstTypeDict()
+        insttypes_dict = getUtility(IKOFAUtils).getInstTypeDict()
         return "%s %s (%s)" % (
             insttypes_dict[self.title_prefix],
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/department.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/department.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/department.txt	(revision 7811)
@@ -1,11 +1,11 @@
-:mod:`waeup.sirp.university.department` -- Departments
+:mod:`waeup.kofa.university.department` -- Departments
 ******************************************************
 
-.. module:: waeup.sirp.university.department
+.. module:: waeup.kofa.university.department
 
 Components that represent university departments.
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
 Content Classes (models and containers)
@@ -20,11 +20,11 @@
    Create a representation of a university department:
 
-     >>> from waeup.sirp.university.department import Department
+     >>> from waeup.kofa.university.department import Department
      >>> mydept = Department()
      >>> mydept
-     <waeup.sirp.university.department.Department object at 0x...>
+     <waeup.kofa.university.department.Department object at 0x...>
 
    Another way to create :class:`Department` instances is by asking
-   for a factory called ``waeup.sirp.Department``. This way we can create a
+   for a factory called ``waeup.kofa.Department``. This way we can create a
    department without importing a class:
 
@@ -32,10 +32,10 @@
      >>> mydept = createObject(u'waeup.Department')
      >>> mydept
-     <waeup.sirp.university.department.Department object at 0x...>
+     <waeup.kofa.university.department.Department object at 0x...>
 
    :class:`Department` instances have the attributes required by the
    `IDepartment` interface:
 
-     >>> from waeup.sirp.university.interfaces import IDepartment
+     >>> from waeup.kofa.university.interfaces import IDepartment
      >>> IDepartment.providedBy(mydept)
      True
@@ -86,5 +86,5 @@
 
         >>> mydept.courses
-        <waeup.sirp.university.coursescontainer.CoursesContainer object at 0x...>
+        <waeup.kofa.university.coursescontainer.CoursesContainer object at 0x...>
 
 
@@ -97,5 +97,5 @@
 
         >>> mydept.certificates
-        <waeup.sirp...certificatescontainer.CertificatesContainer object at 0x...>
+        <waeup.kofa...certificatescontainer.CertificatesContainer object at 0x...>
 
 Utilities
@@ -117,5 +117,5 @@
      >>> mydepartment = createObject(u'waeup.Department')
      >>> mydepartment
-     <waeup.sirp.university.department.Department object at 0x...>
+     <waeup.kofa.university.department.Department object at 0x...>
 
    The factory complies with the specifications from the
@@ -124,5 +124,5 @@
      >>> from zope.interface.verify import verifyClass
      >>> from zope.component.interfaces import IFactory
-     >>> from waeup.sirp.university.department import DepartmentFactory
+     >>> from waeup.kofa.university.department import DepartmentFactory
      >>> verifyClass(IFactory, DepartmentFactory)
      True
@@ -133,3 +133,3 @@
      >>> department_factory = DepartmentFactory()
      >>> department_factory.getInterfaces()
-     <implementedBy waeup.sirp.university.department.Department>
+     <implementedBy waeup.kofa.university.department.Department>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/export.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/export.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/export.py	(revision 7811)
@@ -21,5 +21,5 @@
 import grok
 from cStringIO import StringIO
-from waeup.sirp.interfaces import ICSVExporter
+from waeup.kofa.interfaces import ICSVExporter
 
 class FacultyExporter(grok.GlobalUtility):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/facultiescontainer.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/facultiescontainer.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/facultiescontainer.py	(revision 7811)
@@ -19,6 +19,6 @@
 from zope.component.interfaces import IFactory
 from zope.interface import implementedBy
-from waeup.sirp.interfaces import ISIRPPluggable
-from waeup.sirp.university.interfaces import IFacultiesContainer, IFaculty
+from waeup.kofa.interfaces import IKOFAPluggable
+from waeup.kofa.university.interfaces import IFacultiesContainer, IFaculty
 
 class FacultiesContainer(grok.Container):
@@ -52,10 +52,10 @@
     """A plugin that creates container for faculties inside a university.
     """
-    grok.implements(ISIRPPluggable)
+    grok.implements(IKOFAPluggable)
     grok.name('faculties')
 
     def setup(self, site, name, logger):
         if 'faculties' in site.keys():
-            logger.warn('Could not create container for faculties in SIRP.')
+            logger.warn('Could not create container for faculties in KOFA.')
             return
         site['faculties'] = FacultiesContainer()
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/facultiescontainer.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/facultiescontainer.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/facultiescontainer.txt	(revision 7811)
@@ -1,11 +1,11 @@
-:mod:`waeup.sirp.university.facultiescontainer` -- Faculty Containers
+:mod:`waeup.kofa.university.facultiescontainer` -- Faculty Containers
 *********************************************************************
 
-.. module:: waeup.sirp.university.facultiescontainer
+.. module:: waeup.kofa.university.facultiescontainer
 
 Components that represent faculty containers.
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
 
@@ -20,8 +20,8 @@
    Create a faculty container:
 
-     >>> from waeup.sirp.university.facultiescontainer import FacultiesContainer
+     >>> from waeup.kofa.university.facultiescontainer import FacultiesContainer
      >>> mycontainer = FacultiesContainer()
      >>> mycontainer
-     <waeup.sirp.university.facultiescontainer.FacultiesContainer object at 0x...>
+     <waeup.kofa.university.facultiescontainer.FacultiesContainer object at 0x...>
 
    Another way to create :class:`FacultiesContainer` instances is by asking
@@ -32,10 +32,10 @@
      >>> mycontainer = createObject(u'waeup.FacultiesContainer')
      >>> mycontainer
-     <waeup.sirp.university.facultiescontainer.FacultiesContainer object at 0x...>
+     <waeup.kofa.university.facultiescontainer.FacultiesContainer object at 0x...>
 
    :class:`FacultiesContainer` instances have the attributes required by the
    `IFacultiesContainer` interface:
 
-     >>> from waeup.sirp.university.interfaces import IFacultiesContainer
+     >>> from waeup.kofa.university.interfaces import IFacultiesContainer
      >>> IFacultiesContainer.providedBy(mycontainer)
      True
@@ -60,10 +60,10 @@
       Regular faculties are accepted:
 
-        >>> from waeup.sirp.university.faculty import Faculty
+        >>> from waeup.kofa.university.faculty import Faculty
         >>> mycontainer.addFaculty(Faculty(title='Physics',
         ...                                code='FP'))
 
         >>> list(mycontainer.items())
-        [(u'FP', <waeup.sirp.university.faculty.Faculty object at 0x...>)]
+        [(u'FP', <waeup.kofa.university.faculty.Faculty object at 0x...>)]
 
 
@@ -77,10 +77,10 @@
 .. class:: AcademicsPlugin()
 
-   .. attribute:: grok.implements(ISIRPPluggable)
+   .. attribute:: grok.implements(IKOFAPluggable)
 
    This plugin component tells under which name (``faculties``) an
-   instance of academics stuff should be created in plain SIRP
+   instance of academics stuff should be created in plain KOFA
    instances. It also tells the factory name for FacultiesContainer
-   instances, which serve as root object for academics stuff in SIRP apps.
+   instances, which serve as root object for academics stuff in KOFA apps.
 
 
@@ -100,5 +100,5 @@
      >>> mycontainer = createObject(u'waeup.FacultiesContainer')
      >>> mycontainer
-     <waeup.sirp.university.facultiescontainer.FacultiesContainer object at 0x...>
+     <waeup.kofa.university.facultiescontainer.FacultiesContainer object at 0x...>
 
    The factory complies with the specifications from the
@@ -107,5 +107,5 @@
      >>> from zope.interface.verify import verifyClass
      >>> from zope.component.interfaces import IFactory
-     >>> from waeup.sirp.university.facultiescontainer import (
+     >>> from waeup.kofa.university.facultiescontainer import (
      ...   FacultiesContainerFactory)
      >>> verifyClass(IFactory, FacultiesContainerFactory)
@@ -117,5 +117,5 @@
      >>> fac_container_factory = FacultiesContainerFactory()
      >>> fac_container_factory.getInterfaces()
-     <implementedBy waeup.sirp.university.facultiescontainer.FacultiesContainer>
+     <implementedBy waeup.kofa.university.facultiescontainer.FacultiesContainer>
 
 Examples
@@ -124,10 +124,10 @@
 We can easily create `FacultiesContainers`:
 
-    >>> from waeup.sirp.university.facultiescontainer import FacultiesContainer
+    >>> from waeup.kofa.university.facultiescontainer import FacultiesContainer
     >>> mycontainer = FacultiesContainer()
 
 Faculty containers provide `IFacultiesContainer`:
 
-    >>> from waeup.sirp.university.interfaces import IFacultiesContainer
+    >>> from waeup.kofa.university.interfaces import IFacultiesContainer
     >>> IFacultiesContainer.providedBy(mycontainer)
     True
@@ -139,5 +139,5 @@
     >>> from zope.component import createObject
     >>> createObject(u'waeup.FacultiesContainer')
-    <waeup.sirp.university.facultiescontainer.FacultiesContainer object at 0x...>
+    <waeup.kofa.university.facultiescontainer.FacultiesContainer object at 0x...>
 
 This way we get a thing that implements IFacultiesContainer without
@@ -165,5 +165,5 @@
 Okay, so we have to get a faculty first::
 
-    >>> from waeup.sirp.university.faculty import Faculty
+    >>> from waeup.kofa.university.faculty import Faculty
     >>> myfaculty = Faculty()
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/faculty.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/faculty.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/faculty.py	(revision 7811)
@@ -23,6 +23,6 @@
 from zope.interface import implementedBy
 from zope.component import getUtility
-from waeup.sirp.interfaces import ISIRPUtils
-from waeup.sirp.university.interfaces import (
+from waeup.kofa.interfaces import IKOFAUtils
+from waeup.kofa.university.interfaces import (
     IFaculty, IFacultyAdd, IDepartment)
 
@@ -61,5 +61,5 @@
 
     def longtitle(self):
-        insttypes_dict = getUtility(ISIRPUtils).getInstTypeDict()
+        insttypes_dict = getUtility(IKOFAUtils).getInstTypeDict()
         result = "%s %s (%s)" % (
             insttypes_dict[self.title_prefix],
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/faculty.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/faculty.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/faculty.txt	(revision 7811)
@@ -1,11 +1,11 @@
-:mod:`waeup.sirp.university.faculty` -- Faculties
+:mod:`waeup.kofa.university.faculty` -- Faculties
 *************************************************
 
-.. module:: waeup.sirp.university.faculty
+.. module:: waeup.kofa.university.faculty
 
 Components that represent university faculties.
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
 
@@ -21,8 +21,8 @@
    Create a representation of a university faculty:
 
-     >>> from waeup.sirp.university.faculty import Faculty
+     >>> from waeup.kofa.university.faculty import Faculty
      >>> myfac = Faculty()
      >>> myfac
-     <waeup.sirp.university.faculty.Faculty object at 0x...>
+     <waeup.kofa.university.faculty.Faculty object at 0x...>
 
    Another way to create :class:`Faculty` instances is by asking
@@ -33,10 +33,10 @@
      >>> myfac = createObject(u'waeup.Faculty')
      >>> myfac
-     <waeup.sirp.university.faculty.Faculty object at 0x...>
+     <waeup.kofa.university.faculty.Faculty object at 0x...>
 
    :class:`Faculty` instances have the attributes required by the
    `IFaculty` interface:
 
-     >>> from waeup.sirp.university.interfaces import IFaculty
+     >>> from waeup.kofa.university.interfaces import IFaculty
      >>> IFaculty.providedBy(myfac)
      True
@@ -62,10 +62,10 @@
       Regular departments are accepted:
 
-        >>> from waeup.sirp.university.department import Department
+        >>> from waeup.kofa.university.department import Department
         >>> myfac.addDepartment(Department(title='Physics',
         ...                                code='DP'))
 
         >>> list(myfac.items())
-        [(u'DP', <waeup.sirp.university.department.Department object at 0x...>)]
+        [(u'DP', <waeup.kofa.university.department.Department object at 0x...>)]
 
 
@@ -121,5 +121,5 @@
      >>> myfaculty = createObject(u'waeup.Faculty')
      >>> myfaculty
-     <waeup.sirp.university.faculty.Faculty object at 0x...>
+     <waeup.kofa.university.faculty.Faculty object at 0x...>
 
    The factory complies with the specifications from the
@@ -128,5 +128,5 @@
      >>> from zope.interface.verify import verifyClass
      >>> from zope.component.interfaces import IFactory
-     >>> from waeup.sirp.university.faculty import FacultyFactory
+     >>> from waeup.kofa.university.faculty import FacultyFactory
      >>> verifyClass(IFactory, FacultyFactory)
      True
@@ -137,5 +137,5 @@
      >>> faculty_factory = FacultyFactory()
      >>> faculty_factory.getInterfaces()
-     <implementedBy waeup.sirp.university.faculty.Faculty>
+     <implementedBy waeup.kofa.university.faculty.Faculty>
 
 
@@ -145,8 +145,8 @@
 We can create faculties:
 
-    >>> from waeup.sirp.university.faculty import Faculty
+    >>> from waeup.kofa.university.faculty import Faculty
     >>> myfaculty = Faculty()
     >>> myfaculty
-    <waeup.sirp.university.faculty.Faculty object at 0x...>
+    <waeup.kofa.university.faculty.Faculty object at 0x...>
 
 Another way to create faculties is by asking for a factory called
@@ -157,5 +157,5 @@
     >>> myfaculty = createObject(u'waeup.Faculty')
     >>> myfaculty
-    <waeup.sirp.university.faculty.Faculty object at 0x...>
+    <waeup.kofa.university.faculty.Faculty object at 0x...>
 
 Faculty attributes
@@ -164,5 +164,5 @@
 Faculties have the attributes required by the `IFaculty` interface:
 
-    >>> from waeup.sirp.university.interfaces import IFaculty
+    >>> from waeup.kofa.university.interfaces import IFaculty
     >>> IFaculty.providedBy(myfaculty)
     True
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/interfaces.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/interfaces.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/interfaces.py	(revision 7811)
@@ -21,7 +21,7 @@
 from zope import schema
 from zope.interface import Attribute
-from waeup.sirp.interfaces import (ISIRPObject, ISIRPContainer)
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.university.vocabularies import (
+from waeup.kofa.interfaces import (IKOFAObject, IKOFAContainer)
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.university.vocabularies import (
     course_levels,
     CourseSource,
@@ -32,5 +32,5 @@
     )
 
-class IFaculty(ISIRPContainer):
+class IFaculty(IKOFAContainer):
     """Representation of a university faculty.
     """
@@ -73,5 +73,5 @@
 IFacultyAdd['code'].order =  IFaculty['code'].order
 
-class IFacultiesContainer(ISIRPContainer):
+class IFacultiesContainer(IKOFAContainer):
     """A container for faculties.
     """
@@ -80,5 +80,5 @@
 
         """
-class IDepartment(ISIRPObject):
+class IDepartment(IKOFAObject):
     """Representation of a department.
     """
@@ -124,5 +124,5 @@
 IDepartmentAdd['code'].order =  IDepartment['code'].order
 
-class ICoursesContainer(ISIRPContainer):
+class ICoursesContainer(IKOFAContainer):
     """A container for faculties.
     """
@@ -133,5 +133,5 @@
         """
 
-class ICourse(ISIRPObject):
+class ICourse(IKOFAObject):
     """Representation of a course.
     """
@@ -186,5 +186,5 @@
 ICourseAdd['code'].order =  ICourse['code'].order
 
-class ICertificate(ISIRPObject):
+class ICertificate(IKOFAObject):
     """Representation of a certificate.
     """
@@ -248,5 +248,5 @@
 ICertificateAdd['code'].order =  ICertificate['code'].order
 
-class ICertificatesContainer(ISIRPContainer):
+class ICertificatesContainer(IKOFAContainer):
     """A container for certificates.
     """
@@ -257,5 +257,5 @@
         """
 
-class ICertificateCourse(ISIRPObject):
+class ICertificateCourse(IKOFAObject):
     """A certificatecourse is referring a course and provides some own
        attributes.
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_batching.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_batching.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_batching.py	(revision 7811)
@@ -21,12 +21,12 @@
 
 from zope.interface.verify import verifyClass, verifyObject
-from waeup.sirp.interfaces import IBatchProcessor
-from waeup.sirp.testing import FunctionalTestCase, FunctionalLayer
-from waeup.sirp.university.batching import (
+from waeup.kofa.interfaces import IBatchProcessor
+from waeup.kofa.testing import FunctionalTestCase, FunctionalLayer
+from waeup.kofa.university.batching import (
     FacultyProcessor, DepartmentProcessor, CourseProcessor,
     CertificateProcessor, CertificateCourseProcessor)
-from waeup.sirp.university.certificate import Certificate, CertificateCourse
-from waeup.sirp.university.course import Course
-from waeup.sirp.university.department import Department
+from waeup.kofa.university.certificate import Certificate, CertificateCourse
+from waeup.kofa.university.course import Course
+from waeup.kofa.university.department import Department
 
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_certificatescontainer.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_certificatescontainer.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_certificatescontainer.py	(revision 7811)
@@ -25,11 +25,11 @@
 from zope.interface.verify import verifyClass, verifyObject
 
-from waeup.sirp.app import University
-from waeup.sirp.interfaces import DuplicationError
-from waeup.sirp.testing import (
+from waeup.kofa.app import University
+from waeup.kofa.interfaces import DuplicationError
+from waeup.kofa.testing import (
     FunctionalLayer, doctestsuite_for_module, FunctionalTestCase)
-from waeup.sirp.university.certificate import Certificate
-from waeup.sirp.university.certificatescontainer import CertificatesContainer
-from waeup.sirp.university.interfaces import ICertificatesContainer
+from waeup.kofa.university.certificate import Certificate
+from waeup.kofa.university.certificatescontainer import CertificatesContainer
+from waeup.kofa.university.interfaces import ICertificatesContainer
 
 
@@ -132,5 +132,5 @@
         unittest.makeSuite(CertificatesContainerTests),
         doctestsuite_for_module(
-                'waeup.sirp.university.certificatescontainer'),
+                'waeup.kofa.university.certificatescontainer'),
         ))
     return suite
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_coursescontainer.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_coursescontainer.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_coursescontainer.py	(revision 7811)
@@ -21,6 +21,6 @@
 import unittest
 from zope.interface.verify import verifyClass, verifyObject
-from waeup.sirp.university.interfaces import ICoursesContainer
-from waeup.sirp.university import CoursesContainer, Course
+from waeup.kofa.university.interfaces import ICoursesContainer
+from waeup.kofa.university import CoursesContainer, Course
 
 class CoursesContainerTests(unittest.TestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_export.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_export.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_export.py	(revision 7811)
@@ -22,10 +22,10 @@
 from zope.component import queryUtility
 from zope.interface.verify import verifyObject, verifyClass
-from waeup.sirp.interfaces import ICSVExporter
-from waeup.sirp.testing import SIRPUnitTestLayer
-from waeup.sirp.university import (
+from waeup.kofa.interfaces import ICSVExporter
+from waeup.kofa.testing import KOFAUnitTestLayer
+from waeup.kofa.university import (
     FacultiesContainer, Faculty, Department, Course, Certificate,
     )
-from waeup.sirp.university.export import (
+from waeup.kofa.university.export import (
     FacultyExporter, DepartmentExporter, CourseExporter,
     CertificateExporter, CertificateCourseExporter,
@@ -34,5 +34,5 @@
 class FacultyExporterTest(unittest.TestCase):
 
-    layer = SIRPUnitTestLayer
+    layer = KOFAUnitTestLayer
 
     def setUp(self):
@@ -123,5 +123,5 @@
     # Tests for DepartmentExporter
 
-    layer = SIRPUnitTestLayer
+    layer = KOFAUnitTestLayer
 
     def setUp(self):
@@ -214,5 +214,5 @@
     # Tests for CourseExporter
 
-    layer = SIRPUnitTestLayer
+    layer = KOFAUnitTestLayer
 
     def setUp(self):
@@ -307,5 +307,5 @@
     # Tests for CertificateExporter
 
-    layer = SIRPUnitTestLayer
+    layer = KOFAUnitTestLayer
 
     def setUp(self):
@@ -412,5 +412,5 @@
     # Tests for CertificateCourseExporter
 
-    layer = SIRPUnitTestLayer
+    layer = KOFAUnitTestLayer
 
     def setUp(self):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_facultiescontainer.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_facultiescontainer.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_facultiescontainer.py	(revision 7811)
@@ -22,8 +22,8 @@
 from StringIO import StringIO
 from zope.interface.verify import verifyObject, verifyClass
-from waeup.sirp.testing import FunctionalTestCase, FunctionalLayer
-from waeup.sirp.university.interfaces import IFacultiesContainer
-from waeup.sirp.university import FacultiesContainer
-from waeup.sirp.university.facultiescontainer import AcademicsPlugin
+from waeup.kofa.testing import FunctionalTestCase, FunctionalLayer
+from waeup.kofa.university.interfaces import IFacultiesContainer
+from waeup.kofa.university import FacultiesContainer
+from waeup.kofa.university.facultiescontainer import AcademicsPlugin
 
 class FakeLogger(object):
@@ -90,5 +90,5 @@
         self.assertEqual(
             self._logger_factory.get_messages(),
-            'Could not create container for faculties in SIRP.\n'
+            'Could not create container for faculties in KOFA.\n'
             )
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_faculty.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_faculty.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_faculty.py	(revision 7811)
@@ -22,6 +22,6 @@
 import unittest
 from zope.interface.verify import verifyObject, verifyClass
-from waeup.sirp.university import Faculty, Department
-from waeup.sirp.university.interfaces import IFaculty, IDepartment
+from waeup.kofa.university import Faculty, Department
+from waeup.kofa.university.interfaces import IFaculty, IDepartment
 
 class FacultyAndDepartmentTests(unittest.TestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_university.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_university.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/tests/test_university.py	(revision 7811)
@@ -19,6 +19,6 @@
 # Test the public API part of the university subpackage
 import unittest
-from waeup.sirp.university import *
-from waeup.sirp.testing import get_doctest_suite
+from waeup.kofa.university import *
+from waeup.kofa.testing import get_doctest_suite
 
 class UniversitySubpackageTests(unittest.TestCase):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/university/vocabularies.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/university/vocabularies.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/university/vocabularies.py	(revision 7811)
@@ -22,8 +22,8 @@
 from zope.catalog.interfaces import ICatalog
 from zope.component import getUtility
-from waeup.sirp.interfaces import SimpleSIRPVocabulary, ISIRPUtils
-from waeup.sirp.interfaces import MessageFactory as _
+from waeup.kofa.interfaces import SimpleKOFAVocabulary, IKOFAUtils
+from waeup.kofa.interfaces import MessageFactory as _
 
-course_levels = SimpleSIRPVocabulary(
+course_levels = SimpleKOFAVocabulary(
     (_('Pre-Studies'),10),
     (_('100 (Year 1)'),100),
@@ -41,5 +41,5 @@
     """
     def getValues(self, context):
-        semesters_dict = getUtility(ISIRPUtils).getSemesterDict()
+        semesters_dict = getUtility(IKOFAUtils).getSemesterDict()
         return semesters_dict.keys()
 
@@ -48,5 +48,5 @@
 
     def getTitle(self, context, value):
-        semesters_dict = getUtility(ISIRPUtils).getSemesterDict()
+        semesters_dict = getUtility(IKOFAUtils).getSemesterDict()
         return semesters_dict[value]
 
@@ -56,5 +56,5 @@
     """
     def getValues(self, context):
-        insttypes_dict = getUtility(ISIRPUtils).getInstTypeDict()
+        insttypes_dict = getUtility(IKOFAUtils).getInstTypeDict()
         return sorted(insttypes_dict.keys())
 
@@ -63,5 +63,5 @@
 
     def getTitle(self, context, value):
-        insttypes_dict = getUtility(ISIRPUtils).getInstTypeDict()
+        insttypes_dict = getUtility(IKOFAUtils).getInstTypeDict()
         return insttypes_dict[value]
 
@@ -71,5 +71,5 @@
     """
     def getValues(self, context):
-        appcats_dict = getUtility(ISIRPUtils).getAppCatDict()
+        appcats_dict = getUtility(IKOFAUtils).getAppCatDict()
         return sorted(appcats_dict.keys())
 
@@ -78,5 +78,5 @@
 
     def getTitle(self, context, value):
-        appcats_dict = getUtility(ISIRPUtils).getAppCatDict()
+        appcats_dict = getUtility(IKOFAUtils).getAppCatDict()
         return appcats_dict[value]
 
@@ -86,5 +86,5 @@
     """
     def getValues(self, context):
-        studymodes_dict = getUtility(ISIRPUtils).getStudyModesDict()
+        studymodes_dict = getUtility(IKOFAUtils).getStudyModesDict()
         return sorted(studymodes_dict.keys())
 
@@ -93,5 +93,5 @@
 
     def getTitle(self, context, value):
-        studymodes_dict = getUtility(ISIRPUtils).getStudyModesDict()
+        studymodes_dict = getUtility(IKOFAUtils).getStudyModesDict()
         return studymodes_dict[value]
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/userscontainer.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/userscontainer.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/userscontainer.py	(revision 7811)
@@ -16,11 +16,11 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""Users container for the SIRP portal.
+"""Users container for the KOFA portal.
 """
 import grok
 from zope.event import notify
-from waeup.sirp.authentication import Account
-from waeup.sirp.interfaces import IUsersContainer
-from waeup.sirp.utils.logger import Logger
+from waeup.kofa.authentication import Account
+from waeup.kofa.interfaces import IUsersContainer
+from waeup.kofa.utils.logger import Logger
 
 class UsersContainer(grok.Container, Logger):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/userscontainer.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/userscontainer.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/userscontainer.txt	(revision 7811)
@@ -1,7 +1,7 @@
-User container for the SIRP
+User container for the KOFA
 ***************************
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
 Before we can start, we need some password managers available:
@@ -14,5 +14,5 @@
 us:
 
-    >>> from waeup.sirp.userscontainer import UsersContainer
+    >>> from waeup.kofa.userscontainer import UsersContainer
     >>> myusers = UsersContainer()
 
@@ -31,5 +31,5 @@
     >>> bob = myusers['bob']
     >>> bob
-    <waeup.sirp.authentication.Account object at 0x...>
+    <waeup.kofa.authentication.Account object at 0x...>
 
     >>> bob.name
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/api.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/api.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/api.txt	(revision 7811)
@@ -1,6 +1,6 @@
-:mod:`waeup.sirp.utils` -- misc. helpers
+:mod:`waeup.kofa.utils` -- misc. helpers
 ****************************************
 
-.. module:: waeup.sirp.utils
+.. module:: waeup.kofa.utils
 
 Components and other stuff of general interest.
@@ -9,5 +9,5 @@
 ==========
 
-The :mod:`waeup.sirp.utils` module provides the following submodules:
+The :mod:`waeup.kofa.utils` module provides the following submodules:
 
 .. toctree::
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/batching.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/batching.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/batching.py	(revision 7811)
@@ -16,5 +16,5 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""SIRP components for batch processing.
+"""KOFA components for batch processing.
 
 Batch processors eat CSV files to add, update or remove large numbers
@@ -31,5 +31,5 @@
 from zope.interface import Interface
 from zope.schema import getFields
-from waeup.sirp.interfaces import (
+from waeup.kofa.interfaces import (
     IBatchProcessor, FatalCSVError, DuplicationError, IObjectConverter)
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/batching.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/batching.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/batching.txt	(revision 7811)
@@ -1,3 +1,3 @@
-:mod:`waeup.sirp.utils.batching` -- Batch processing
+:mod:`waeup.kofa.utils.batching` -- Batch processing
 ****************************************************
 
@@ -188,5 +188,5 @@
 All we need, is a batch processor now.
 
-    >>> from waeup.sirp.utils.batching import BatchProcessor
+    >>> from waeup.kofa.utils.batching import BatchProcessor
     >>> class CaveProcessor(BatchProcessor):
     ...   util_name = 'caveprocessor'
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/converters.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/converters.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/converters.py	(revision 7811)
@@ -27,5 +27,5 @@
 from zope.interface import Interface
 from zope.publisher.browser import TestRequest
-from waeup.sirp.interfaces import IObjectConverter
+from waeup.kofa.interfaces import IObjectConverter
 
 class ExtendedCheckBoxWidget(CheckBoxWidget):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/converters.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/converters.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/converters.txt	(revision 7811)
@@ -1,6 +1,6 @@
-:mod:`waeup.sirp.utils.converters` -- Converters
+:mod:`waeup.kofa.utils.converters` -- Converters
 ************************************************
 
-.. module:: waeup.sirp.utils.converters
+.. module:: waeup.kofa.utils.converters
 
 Converters for :mod:`zope.schema` based data.
@@ -10,5 +10,5 @@
 
 .. :NOdoctest:
-.. :NOlayer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :NOlayer: waeup.kofa.testing.KOFAUnitTestLayer
 
 
@@ -21,5 +21,5 @@
    'non-values'. Current setting is:
 
-      >>> from waeup.sirp.utils.converters import NONE_STRING_VALUE
+      >>> from waeup.kofa.utils.converters import NONE_STRING_VALUE
       >>> NONE_STRING_VALUE
       ''
@@ -32,5 +32,5 @@
 ========
 
-The :mod:`waeup.sirp.utils.converters` module is basically a collection of
+The :mod:`waeup.kofa.utils.converters` module is basically a collection of
 adapters for field types of :mod:`zope.schema`.
 
@@ -48,5 +48,5 @@
    `zope.schema.Choice` or similar.
 
-   .. method:: provides(waeup.sirp.interfaces.ISchemaTypeConverter)
+   .. method:: provides(waeup.kofa.interfaces.ISchemaTypeConverter)
 
    .. method:: _convertValueFromString(string)
@@ -111,5 +111,5 @@
    .. method:: adapts(zope.schema.IText)
 
-   .. method:: provides(waeup.sirp.interfaces.ISchemaTypeConverter)
+   .. method:: provides(waeup.kofa.interfaces.ISchemaTypeConverter)
 
    .. method:: fromString(string[, strict=True])
@@ -150,5 +150,5 @@
    .. method:: adapts(zope.schema.IBool)
 
-   .. method:: provides(waeup.sirp.interfaces.ISchemaTypeConverter)
+   .. method:: provides(waeup.kofa.interfaces.ISchemaTypeConverter)
 
    .. method:: fromString(string[, strict=True])
@@ -191,5 +191,5 @@
    .. method:: adapts(zope.schema.IInt)
 
-   .. method:: provides(waeup.sirp.interfaces.ISchemaTypeConverter)
+   .. method:: provides(waeup.kofa.interfaces.ISchemaTypeConverter)
 
    .. method:: fromString(string[, strict=True])
@@ -232,5 +232,5 @@
    .. method:: adapts(zope.schema.IChoice)
 
-   .. method:: provides(waeup.sirp.interfaces.ISchemaTypeConverter)
+   .. method:: provides(waeup.kofa.interfaces.ISchemaTypeConverter)
 
    .. method:: fromString(string[, strict=False])
@@ -272,5 +272,5 @@
 ----------------------
 
-.. autoclass:: waeup.sirp.utils.converters.DateConverter
+.. autoclass:: waeup.kofa.utils.converters.DateConverter
    :members:
    :inherited-members:
@@ -294,10 +294,10 @@
 :class:`TextConverter` instance:
 
-    >>> from waeup.sirp.utils.converters import TextConverter
+    >>> from waeup.kofa.utils.converters import TextConverter
     >>> converter = TextConverter(field)
 
 Or we can just grab a registered adapter:
 
-    >>> from waeup.sirp.interfaces import ISchemaTypeConverter
+    >>> from waeup.kofa.interfaces import ISchemaTypeConverter
     >>> converter = ISchemaTypeConverter(field)
 
@@ -305,5 +305,5 @@
 
     >>> converter
-    <waeup.sirp.utils.converters.TextConverter object at 0x...>
+    <waeup.kofa.utils.converters.TextConverter object at 0x...>
 
 Now we can convert strings to this type:
@@ -382,10 +382,10 @@
 :class:`BoolConverter` instance:
 
-    >>> from waeup.sirp.utils.converters import BoolConverter
+    >>> from waeup.kofa.utils.converters import BoolConverter
     >>> converter = BoolConverter(field)
 
 Or we can just grab a registered adapter:
 
-    >>> from waeup.sirp.interfaces import ISchemaTypeConverter
+    >>> from waeup.kofa.interfaces import ISchemaTypeConverter
     >>> converter = ISchemaTypeConverter(field)
 
@@ -393,5 +393,5 @@
 
     >>> converter
-    <waeup.sirp.utils.converters.BoolConverter object at 0x...>
+    <waeup.kofa.utils.converters.BoolConverter object at 0x...>
 
 Now we can convert strings to this type:
@@ -494,10 +494,10 @@
 :class:`IntConverter` instance:
 
-    >>> from waeup.sirp.utils.converters import IntConverter
+    >>> from waeup.kofa.utils.converters import IntConverter
     >>> converter = IntConverter(field)
 
 Or we can just grab a registered adapter:
 
-    >>> from waeup.sirp.interfaces import ISchemaTypeConverter
+    >>> from waeup.kofa.interfaces import ISchemaTypeConverter
     >>> converter = ISchemaTypeConverter(field)
 
@@ -505,5 +505,5 @@
 
     >>> converter
-    <waeup.sirp.utils.converters.IntConverter object at 0x...>
+    <waeup.kofa.utils.converters.IntConverter object at 0x...>
 
 Now we can convert strings to this type:
@@ -597,10 +597,10 @@
 :class:`ChoiceConverter` instance:
 
-    >>> from waeup.sirp.utils.converters import ChoiceConverter
+    >>> from waeup.kofa.utils.converters import ChoiceConverter
     >>> converter = ChoiceConverter(field)
 
 Or we can just grab a registered adapter:
 
-    >>> from waeup.sirp.interfaces import ISchemaTypeConverter
+    >>> from waeup.kofa.interfaces import ISchemaTypeConverter
     >>> converter = ISchemaTypeConverter(field)
 
@@ -608,5 +608,5 @@
 
     >>> converter
-    <waeup.sirp.utils.converters.ChoiceConverter object at 0x...>
+    <waeup.kofa.utils.converters.ChoiceConverter object at 0x...>
 
 Now we can convert strings to this type:
@@ -672,9 +672,9 @@
     '1'
 
-    >>> from waeup.sirp.interfaces import SimpleSIRPVocabulary
+    >>> from waeup.kofa.interfaces import SimpleKOFAVocabulary
     >>> field = Choice(
     ...   title = u'Favourite Dish',
     ...   default = 0,
-    ...   vocabulary = SimpleSIRPVocabulary(
+    ...   vocabulary = SimpleKOFAVocabulary(
     ...        ('N/A', 0), ('Pizza', 1),
     ...        ('Cake', 2), ('Muffins', 3)),
@@ -730,5 +730,5 @@
 
 We get a converter for this field in the usual way. The
-:meth:`waeup.sirp.utils.converters.fromString()` method will return one of
+:meth:`waeup.kofa.utils.converters.fromString()` method will return one of
 the objects if we feed it with ``'Wilma'`` or ``'Fred'``:
 
@@ -763,10 +763,10 @@
 :class:`IntConverter` instance:
 
-    >>> from waeup.sirp.utils.converters import DateConverter
+    >>> from waeup.kofa.utils.converters import DateConverter
     >>> converter = DateConverter(field)
 
 Or we can just grab a registered adapter:
 
-    >>> from waeup.sirp.interfaces import ISchemaTypeConverter
+    >>> from waeup.kofa.interfaces import ISchemaTypeConverter
     >>> converter = ISchemaTypeConverter(field)
 
@@ -774,5 +774,5 @@
 
     >>> converter
-    <waeup.sirp.utils.converters.DateConverter object at 0x...>
+    <waeup.kofa.utils.converters.DateConverter object at 0x...>
 
 Now we can convert strings to this type:
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/helpers.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/helpers.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/helpers.py	(revision 7811)
@@ -16,5 +16,5 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""General helper functions for SIRP.
+"""General helper functions for KOFA.
 """
 import os
@@ -151,5 +151,5 @@
     instances of certain classes when called.
 
-    In :mod:`waeup.sirp` we use factories extensively for
+    In :mod:`waeup.kofa` we use factories extensively for
     batching. While processing a batch some importer looks up a
     factory to create real-world instances that then get filled with
@@ -163,5 +163,5 @@
 
        >>> import grok
-       >>> from waeup.sirp.utils.helpers import FactoryBase
+       >>> from waeup.kofa.utils.helpers import FactoryBase
        >>> class MyObject(object):
        ...   # Some class we want to get instances of.
@@ -169,5 +169,5 @@
        >>> class MyObjectFactory(FactoryBase):
        ...   # This is the factory for MyObject instances
-       ...   grok.name(u'waeup.sirp.factory.MyObject')
+       ...   grok.name(u'waeup.kofa.factory.MyObject')
        ...   factory = MyObject
 
@@ -176,5 +176,5 @@
     called. The given name must even be unique amongst all utilities
     registered during runtime. While you can pick any name you like
-    you might want to prepend ``waeup.sirp.factory.`` to the name
+    you might want to prepend ``waeup.kofa.factory.`` to the name
     string to make sure it does not clash with names of other
     utilities one day.
@@ -183,8 +183,8 @@
     freshly defined factory. This executes all the component
     registration stuff we don't want to do ourselves. In daily use
-    this is done automatically on startup of a :mod:`waeup.sirp`
+    this is done automatically on startup of a :mod:`waeup.kofa`
     system.
 
-       >>> grok.testing.grok('waeup.sirp.utils.helpers')
+       >>> grok.testing.grok('waeup.kofa.utils.helpers')
        >>> grok.testing.grok_component(
        ...    'MyObjectFactory', MyObjectFactory
@@ -197,5 +197,5 @@
 
        >>> from zope.component import createObject
-       >>> obj = createObject('waeup.sirp.factory.MyObject')
+       >>> obj = createObject('waeup.kofa.factory.MyObject')
        >>> isinstance(obj, MyObject)
        True
@@ -207,5 +207,5 @@
        >>> from zope.component.interfaces import IFactory
        >>> factory = getUtility(
-       ...   IFactory, name='waeup.sirp.factory.MyObject'
+       ...   IFactory, name='waeup.kofa.factory.MyObject'
        ...   )
        >>> isinstance(factory, MyObjectFactory)
@@ -251,5 +251,5 @@
     HTML code:
 
-        >>> from waeup.sirp.utils.helpers import ReST2HTML
+        >>> from waeup.kofa.utils.helpers import ReST2HTML
         >>> source = '''
         ... Headline
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/helpers.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/helpers.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/helpers.txt	(revision 7811)
@@ -1,8 +1,8 @@
-:mod:`waeup.sirp.utils.helpers` -- Helpers for SIRP
+:mod:`waeup.kofa.utils.helpers` -- Helpers for KOFA
 ***************************************************
 
-.. module:: waeup.sirp.utils.helpers
-
-Helper functions for SIRP.
+.. module:: waeup.kofa.utils.helpers
+
+Helper functions for KOFA.
 
 .. :doctest:
@@ -21,5 +21,5 @@
      >>> os.chdir(new_location)
 
-     >>> from waeup.sirp.utils.helpers import remove_file_or_directory
+     >>> from waeup.kofa.utils.helpers import remove_file_or_directory
      >>> open('blah', 'wb').write('nonsense')
      >>> 'blah' in os.listdir('.')
@@ -72,5 +72,5 @@
      >>> open(os.path.join('src', 'blah'), 'wb').write('nonsense')
 
-     >>> from waeup.sirp.utils.helpers import copy_filesystem_tree
+     >>> from waeup.kofa.utils.helpers import copy_filesystem_tree
      >>> result = copy_filesystem_tree('src', 'dst')
 
@@ -179,5 +179,5 @@
    returned with all preceeding/following stuff stripped:
 
-     >>> from waeup.sirp.utils.helpers import get_inner_HTML_part
+     >>> from waeup.kofa.utils.helpers import get_inner_HTML_part
      >>> print get_inner_HTML_part("""<html>
      ... <head>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/importexport.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/importexport.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/importexport.py	(revision 7811)
@@ -22,6 +22,6 @@
 from cStringIO import StringIO
 from zope.interface import Interface
-from waeup.sirp.interfaces import (ISIRPObject, ISIRPExporter,
-                                   ISIRPXMLExporter, ISIRPXMLImporter)
+from waeup.kofa.interfaces import (IKOFAObject, IKOFAExporter,
+                                   IKOFAXMLExporter, IKOFAXMLImporter)
 
 def readFile(f):
@@ -40,11 +40,11 @@
 
 class Exporter(grok.Adapter):
-    """Export a SIRP object as pickle.
+    """Export a KOFA object as pickle.
 
     This all-purpose exporter exports attributes defined in schemata
     and contained objects (if the exported thing is a container).
     """
-    grok.context(ISIRPObject)
-    grok.provides(ISIRPExporter)
+    grok.context(IKOFAObject)
+    grok.provides(IKOFAExporter)
 
     def __init__(self, context):
@@ -61,5 +61,5 @@
 
 class XMLExporter(grok.Adapter):
-    """Export a SIRP object as XML.
+    """Export a KOFA object as XML.
 
     This all-purpose exporter exports XML representations of pickable
@@ -67,9 +67,9 @@
     """
     grok.context(Interface)
-    grok.provides(ISIRPXMLExporter)
+    grok.provides(IKOFAXMLExporter)
 
     def __init__(self, context):
         self.context = context
-    
+
     def export(self, filepath=None):
         pickled_obj = cPickle.dumps(self.context)
@@ -84,12 +84,12 @@
 
 class XMLImporter(grok.Adapter):
-    """Import a SIRP object from XML.
+    """Import a KOFA object from XML.
     """
     grok.context(Interface)
-    grok.provides(ISIRPXMLImporter)
+    grok.provides(IKOFAXMLImporter)
 
     def __init__(self, context):
         self.context = context
-    
+
     def doImport(self, filepath):
         xml = None
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/importexport.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/importexport.txt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/importexport.txt	(revision 7811)
@@ -6,5 +6,5 @@
 
 .. :doctest:
-.. :layer: waeup.sirp.testing.SIRPUnitTestLayer
+.. :layer: waeup.kofa.testing.KOFAUnitTestLayer
 
 As imports and exports of data are a cruical point when doing updates
@@ -60,8 +60,8 @@
 an exporter::
 
-    >>> from waeup.sirp.interfaces import ISIRPXMLExporter
-    >>> exporter = ISIRPXMLExporter(mycave)
+    >>> from waeup.kofa.interfaces import IKOFAXMLExporter
+    >>> exporter = IKOFAXMLExporter(mycave)
     >>> exporter
-    <waeup.sirp.utils.importexport.XMLExporter object at 0x...>
+    <waeup.kofa.utils.importexport.XMLExporter object at 0x...>
 
 All exporters provide an ``export(<obj>)`` method::
@@ -101,6 +101,6 @@
 Now we create an importer for that object:
 
-    >>> from waeup.sirp.interfaces import ISIRPXMLImporter
-    >>> importer = ISIRPXMLImporter(mycave)
+    >>> from waeup.kofa.interfaces import IKOFAXMLImporter
+    >>> importer = IKOFAXMLImporter(mycave)
 
 Importing from filenames
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/logger.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/logger.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/logger.py	(revision 7811)
@@ -19,6 +19,6 @@
 Convenience stuff for logging.
 
-Main component of :mod:`waeup.sirp.utils.logging` is a mix-in class
-:class:`waeup.sirp.utils.logging.Logger`. Classes derived (also) from
+Main component of :mod:`waeup.kofa.utils.logging` is a mix-in class
+:class:`waeup.kofa.utils.logging.Logger`. Classes derived (also) from
 that mix-in provide a `logger` attribute that returns a regular Python
 logger logging to a rotating log file stored in the datacenter storage
@@ -30,5 +30,5 @@
 The `logger_name` tells under which name the logger should be
 registered Python-wise. This is usually a dotted name string like
-``waeup.sirp.${sitename}.mycomponent`` which should be unique. If you
+``waeup.kofa.${sitename}.mycomponent`` which should be unique. If you
 pick a name already used by another component, trouble is ahead. The
 ``${sitename}`` chunk of the name can be set literally like this. The
@@ -46,9 +46,9 @@
 your `logger_name` and `logger_filename` attribute and off you go::
 
-  from waeup.sirp.utils.logger import Logger
+  from waeup.kofa.utils.logger import Logger
 
   class MyComponent(object, Logger):
       # Yes that's a complete working class
-      logger_name = 'waeup.sirp.${sitename}.mycomponent
+      logger_name = 'waeup.kofa.${sitename}.mycomponent
       logger_filename = 'mycomponent.log'
 
@@ -67,5 +67,5 @@
 
 The datacenter and its storage are created automatically when you
-create a :class:`waeup.sirp.app.University`. This also means that
+create a :class:`waeup.kofa.app.University`. This also means that
 logging with the `Logger` mix-in will work only inside so-called sites
 (`University` instances put into ZODB are such `sites`).
@@ -80,7 +80,7 @@
 from zope.component import queryUtility
 from zope.interface import Interface, Attribute, implements
-from waeup.sirp.interfaces import (
+from waeup.kofa.interfaces import (
     IDataCenter, IDataCenterStorageMovedEvent, ILoggerCollector)
-from waeup.sirp.utils.helpers import get_current_principal
+from waeup.kofa.utils.helpers import get_current_principal
 
 #: Default logfile size (5 KB)
@@ -152,8 +152,8 @@
 
     #: The Python logger name used when
-    #: logging. ``'waeup.sirp.${sitename}'`` by default. You can use the
+    #: logging. ``'waeup.kofa.${sitename}'`` by default. You can use the
     #: ``${sitename}`` placeholder in that string, which will be
     #: replaced by the actual used site name.
-    logger_name = 'waeup.sirp.${sitename}'
+    logger_name = 'waeup.kofa.${sitename}'
     implements(ILogger)
 
@@ -378,5 +378,5 @@
     return
 
-from waeup.sirp.interfaces import IUniversity
+from waeup.kofa.interfaces import IUniversity
 @grok.subscribe(IUniversity, grok.IObjectRemovedEvent)
 def handle_site_removed(obj, event):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_batching.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_batching.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_batching.py	(revision 7811)
@@ -27,6 +27,6 @@
 from zope.component.interfaces import IFactory
 from zope.interface import Interface, implements
-from waeup.sirp.app import University
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.app import University
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
 
 optionflags = (
@@ -71,5 +71,5 @@
 stoneville = dict
 
-from waeup.sirp.utils.batching import BatchProcessor
+from waeup.kofa.utils.batching import BatchProcessor
 class CaveProcessor(BatchProcessor):
     util_name = 'caveprocessor'
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_converters.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_converters.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_converters.py	(revision 7811)
@@ -31,17 +31,17 @@
     Interface, implements, invariant, Invalid, implementedBy)
 
-from waeup.sirp.app import University
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-from waeup.sirp.university import Faculty
-from waeup.sirp.utils.converters import IObjectConverter
-from waeup.sirp.utils.helpers import attrs_to_fields
-from waeup.sirp.interfaces import SimpleSIRPVocabulary
-
-colors = SimpleSIRPVocabulary(
+from waeup.kofa.app import University
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+from waeup.kofa.university import Faculty
+from waeup.kofa.utils.converters import IObjectConverter
+from waeup.kofa.utils.helpers import attrs_to_fields
+from waeup.kofa.interfaces import SimpleKOFAVocabulary
+
+colors = SimpleKOFAVocabulary(
     ('Red', u'red'),
     ('Green', u'green'),
     ('Blue', u'blue'),
     )
-car_nums = SimpleSIRPVocabulary(
+car_nums = SimpleKOFAVocabulary(
     ('None', 0),
     ('One', 1),
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_doctests.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_doctests.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_doctests.py	(revision 7811)
@@ -18,5 +18,5 @@
 """Register doctests from utils subpackage.
 """
-from waeup.sirp.testing import get_doctest_suite
+from waeup.kofa.testing import get_doctest_suite
 
 def test_suite():
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_helpers.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_helpers.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_helpers.py	(revision 7811)
@@ -27,5 +27,5 @@
 from zope.security.testing import Principal, Participation
 from zope.security.management import newInteraction, endInteraction
-from waeup.sirp.utils import helpers
+from waeup.kofa.utils import helpers
 
 from zope.interface import Interface, implements
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_logger.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_logger.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/tests/test_logger.py	(revision 7811)
@@ -17,5 +17,5 @@
 ##
 
-# Tests for waeup.sirp.utils.logger
+# Tests for waeup.kofa.utils.logger
 import logging
 import os
@@ -25,8 +25,8 @@
 from zope.component.hooks import setSite, clearSite
 from zope.interface.verify import verifyClass, verifyObject
-from waeup.sirp.app import University
-from waeup.sirp.testing import FunctionalLayer, FunctionalTestCase
-
-from waeup.sirp.utils.logger import (
+from waeup.kofa.app import University
+from waeup.kofa.testing import FunctionalLayer, FunctionalTestCase
+
+from waeup.kofa.utils.logger import (
     Logger, MAX_BYTES, BACKUP_COUNT, ILoggerCollector, LoggerCollector,
     ILogger)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/utils/utils.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/utils/utils.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/utils/utils.py	(revision 7811)
@@ -16,5 +16,5 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""General helper utilities for SIRP.
+"""General helper utilities for KOFA.
 """
 import os
@@ -23,10 +23,10 @@
 from zope.i18n import translate
 from random import SystemRandom as r
-from waeup.sirp.interfaces import ISIRPUtils
-from waeup.sirp.interfaces import MessageFactory as _
-from waeup.sirp.smtp import send_mail as send_mail_internally
+from waeup.kofa.interfaces import IKOFAUtils
+from waeup.kofa.interfaces import MessageFactory as _
+from waeup.kofa.smtp import send_mail as send_mail_internally
 
 def send_mail(from_name,from_addr,rcpt_name,rcpt_addr,subject,body,config):
-    """Wrapper for the real SMTP functionality in :mod:`waeup.sirp.smtp`.
+    """Wrapper for the real SMTP functionality in :mod:`waeup.kofa.smtp`.
 
     Merely here to stay compatible with lots of calls to this place.
@@ -37,8 +37,8 @@
     return True
 
-class SIRPUtils(grok.GlobalUtility):
+class KOFAUtils(grok.GlobalUtility):
     """A collection of parameters and methods subject to customization.
     """
-    grok.implements(ISIRPUtils)
+    grok.implements(IKOFAUtils)
     # This the only place where we define the portal language
     # which is used for the translation of system messages
@@ -131,5 +131,5 @@
             'd':portal,
             'e':body})
-        body = translate(text, 'waeup.sirp',
+        body = translate(text, 'waeup.kofa',
             target_language=self.PORTAL_LANGUAGE)
         return send_mail(
@@ -161,5 +161,5 @@
         Returns True or False to indicate successful operation.
         """
-        subject = 'Your SIRP credentials'
+        subject = 'Your KOFA credentials'
         text = _(u"""Dear ${a},
 
@@ -193,5 +193,5 @@
             'f':login_url})
 
-        body = translate(text, 'waeup.sirp',
+        body = translate(text, 'waeup.kofa',
             target_language=self.PORTAL_LANGUAGE)
         return send_mail(
Index: /main/waeup.kofa/trunk/src/waeup/kofa/widgets/objectwidget.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/widgets/objectwidget.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/widgets/objectwidget.py	(revision 7811)
@@ -25,8 +25,8 @@
 from zope.schema import getFieldNamesInOrder
 
-class SIRPObjectWidgetView(ObjectWidgetView):
+class KOFAObjectWidgetView(ObjectWidgetView):
     template = ViewPageTemplateFile('objectwidget.pt')
 
-class SIRPObjectWidget(ObjectWidget):
+class KOFAObjectWidget(ObjectWidget):
 
     def __init__(self, context, request, factory, **kw):
@@ -58,8 +58,8 @@
 
     def _getView(self, request):
-        return SIRPObjectWidgetView(self, request)
+        return KOFAObjectWidgetView(self, request)
 
 
-class SIRPObjectDisplayWidget(SIRPObjectWidget):
+class KOFAObjectDisplayWidget(KOFAObjectWidget):
 
     implementsOnly(IDisplayWidget)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/widgets/phonewidget.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/widgets/phonewidget.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/widgets/phonewidget.py	(revision 7811)
@@ -31,5 +31,5 @@
 import re
 import copy
-from waeup.sirp.interfaces import MessageFactory as _
+from waeup.kofa.interfaces import MessageFactory as _
 from zope import schema
 from zope.browserpage import ViewPageTemplateFile
Index: /main/waeup.kofa/trunk/src/waeup/kofa/widgets/restwidget.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/widgets/restwidget.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/widgets/restwidget.py	(revision 7811)
@@ -16,10 +16,10 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-"""A widget that renders restructured text. 
+"""A widget that renders restructured text.
 """
 from zope.component import getUtility
 from zope.formlib.widget import renderElement, DisplayWidget
-from waeup.sirp.utils.helpers import ReST2HTML
-from waeup.sirp.interfaces import ISIRPUtils
+from waeup.kofa.utils.helpers import ReST2HTML
+from waeup.kofa.interfaces import IKOFAUtils
 
 
@@ -36,5 +36,5 @@
         language separator - usually the first part has no language
         descriptor - are interpreted as texts in the portal's language.
-        The latter can be configured in waeup.srp.utils.utils.SIRPUtils.
+        The latter can be configured in waeup.srp.utils.utils.KOFAUtils.
         """
         if self._renderedValueSet():
@@ -46,5 +46,5 @@
         parts = value.split('>>')
         elements = {}
-        lang = getUtility(ISIRPUtils).PORTAL_LANGUAGE
+        lang = getUtility(IKOFAUtils).PORTAL_LANGUAGE
         for part in parts:
             if part[2:4] == u'<<':
Index: /main/waeup.kofa/trunk/src/waeup/kofa/widgets/sequencewidget.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/widgets/sequencewidget.pt	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/widgets/sequencewidget.pt	(revision 7811)
@@ -1,4 +1,4 @@
 <table border="0" class="sequencewidget"
-  i18n:domain="waeup.sirp">
+  i18n:domain="waeup.kofa">
   <tr tal:repeat="widget view/widgets">
     <td>
Index: /main/waeup.kofa/trunk/src/waeup/kofa/widgets/sequencewidget.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/widgets/sequencewidget.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/widgets/sequencewidget.py	(revision 7811)
@@ -29,5 +29,5 @@
 from zope.schema.interfaces import IField, IList
 
-class SIRPSequenceWidget(ListSequenceWidget):
+class KOFASequenceWidget(ListSequenceWidget):
     """A sequence widget for lists.
 
@@ -51,5 +51,5 @@
 @grok.implementer(IInputWidget)
 def seq_input_widget(obj, field, req, *args, **kw):
-    return SIRPSequenceWidget(obj, field, req, *args, **kw)
+    return KOFASequenceWidget(obj, field, req, *args, **kw)
 
 @grok.adapter(IList, IField, IBrowserRequest)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/widgets/tests/test_datewidget.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/widgets/tests/test_datewidget.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/widgets/tests/test_datewidget.py	(revision 7811)
@@ -27,5 +27,5 @@
     SimpleInputWidgetTest, BrowserWidgetTest, )
 from zope.formlib.interfaces import IInputWidget, IDisplayWidget
-from waeup.sirp.widgets.datewidget import (
+from waeup.kofa.widgets.datewidget import (
     FormattedDateWidget, FormattedDateDisplayWidget, )
 from zope.formlib.widgets import DateI18nWidget
Index: /main/waeup.kofa/trunk/src/waeup/kofa/widgets/tests/test_objectwidget.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/widgets/tests/test_objectwidget.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/widgets/tests/test_objectwidget.py	(revision 7811)
@@ -37,7 +37,7 @@
 from zope.formlib.interfaces import IWidgetInputErrorView
 
-from waeup.sirp.widgets.objectwidget import SIRPObjectWidget as ObjectWidget
-from waeup.sirp.widgets.objectwidget import (
-    SIRPObjectDisplayWidget as ObjectDisplayWidget)
+from waeup.kofa.widgets.objectwidget import KOFAObjectWidget as ObjectWidget
+from waeup.kofa.widgets.objectwidget import (
+    KOFAObjectDisplayWidget as ObjectDisplayWidget)
 
 class ITestContact(Interface):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/widgets/tests/test_phonewidget.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/widgets/tests/test_phonewidget.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/widgets/tests/test_phonewidget.py	(revision 7811)
@@ -36,5 +36,5 @@
 from zope.publisher.interfaces.browser import IDefaultBrowserLayer
 from zope.schema.interfaces import ITextLine
-from waeup.sirp.widgets.phonewidget import PhoneWidget
+from waeup.kofa.widgets.phonewidget import PhoneWidget
 
 # Dummy content
Index: /main/waeup.kofa/trunk/src/waeup/kofa/workflow.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/workflow.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/workflow.py	(revision 7811)
@@ -25,7 +25,7 @@
 from zope.security.interfaces import NoInteraction
 from zope.security.management import getInteraction
-from waeup.sirp.interfaces import ISIRPWorkflowInfo
+from waeup.kofa.interfaces import IKOFAWorkflowInfo
 
-class SIRPWorkflow(Workflow):
+class KOFAWorkflow(Workflow):
     """A :mod:`hurry.workflow` workflow with more appropriate error
        messages.
@@ -71,9 +71,9 @@
         return False
 
-class SIRPWorkflowInfo(WorkflowInfo):
+class KOFAWorkflowInfo(WorkflowInfo):
     """A workflow info that provides a convenience transition getter.
     """
 
-    grok.provides(ISIRPWorkflowInfo)
+    grok.provides(IKOFAWorkflowInfo)
 
     def getManualTransitions(self):
Index: /main/waeup.kofa/trunk/src/waeup/kofa/zcml.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/zcml.py	(revision 7810)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/zcml.py	(revision 7811)
@@ -21,5 +21,5 @@
 ##
 from zope.component.zcml import handler
-from waeup.sirp.interfaces import IDataCenterConfig
+from waeup.kofa.interfaces import IDataCenterConfig
 
 def data_center_conf(context, path):
@@ -32,8 +32,8 @@
 
     - Add to the header:
-        ``xmlns:sirp="http://namespaces.waeup.org/sirp"``
+        ``xmlns:kofa="http://namespaces.waeup.org/kofa"``
 
-    - Then, after including waeup.sirp:
-        ``<sirp:datacenter path="some/existing/file/path" />``
+    - Then, after including waeup.kofa:
+        ``<kofa:datacenter path="some/existing/file/path" />``
 
     In a running instance (where some directive like above was
@@ -41,5 +41,5 @@
     IDataCenterConfig utility:
 
-      >>> from waeup.sirp.interfaces import IDataCenterConfig
+      >>> from waeup.kofa.interfaces import IDataCenterConfig
       >>> from zope.component import getUtility
       >>> getUtility(IDataCenterConfig)
