Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/breadcrumbs.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/breadcrumbs.py	(revision 12185)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/breadcrumbs.py	(revision 12186)
@@ -24,5 +24,5 @@
 
 from waeup.ikoba.interfaces import (
-    IConfigurationContainer, ISessionConfiguration, IExportJobContainer)
+    IConfigurationContainer, IExportJobContainer)
 from waeup.ikoba.interfaces import MessageFactory as _
 from waeup.ikoba.browser.interfaces import (
@@ -126,15 +126,4 @@
     title = _(u'Portal Configuration')
     parent_viewname = 'administration'
-
-class SessionConfigurationBreadcrumb(Breadcrumb):
-    """A breadcrumb for the configuration container.
-    """
-    grok.context(ISessionConfiguration)
-    title = u'Portal Session Configuration'
-
-    @property
-    def title(self):
-        session_string = self.context.getSessionString()
-        return 'Session %s' % session_string
 
 class UsersContainerBreadcrumb(Breadcrumb):
Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/pages.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/pages.py	(revision 12185)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/pages.py	(revision 12186)
@@ -53,7 +53,6 @@
     IIkobaXMLImporter, IIkobaXMLExporter, IBatchProcessor,
     ILocalRolesAssignable, DuplicationError, IConfigurationContainer,
-    ISessionConfiguration, ISessionConfigurationAdd, IJobManager,
-    IPasswordValidator, IContactForm, IIkobaUtils, ICSVExporter,
-    application_sessions_vocab)
+    IJobManager,
+    IPasswordValidator, IContactForm, IIkobaUtils, ICSVExporter)
 from waeup.ikoba.permissions import (
     get_users_with_local_roles, get_all_roles, get_all_users,
@@ -743,11 +742,6 @@
     grok.name('index')
     grok.context(IConfigurationContainer)
-    grok.template('configurationmanagepage')
     pnav = 0
     label = _(u'Edit portal configuration')
-    taboneactions = [_('Save'), _('Update plugins')]
-    tabtwoactions = [
-        _('Add session configuration'),
-        _('Remove selected')]
     form_fields = grok.AutoFields(IConfigurationContainer).omit(
         'frontpage_dict')
@@ -763,25 +757,4 @@
         msave(self, **data)
         self.context.frontpage_dict = self._frontpage()
-        return
-
-    @action(_('Add session configuration'), validator=NullValidator,
-            style='primary')
-    def addSubunit(self, **data):
-        self.redirect(self.url(self.context, '@@add'))
-        return
-
-    def getSessionConfigurations(self):
-        """Get a list of all stored session configuration objects.
-        """
-        for key, val in self.context.items():
-            url = self.url(val)
-            session_string = val.getSessionString()
-            title = _('Session ${a} Configuration',
-                      mapping = {'a':session_string})
-            yield(dict(url=url, name=key, title=title))
-
-    @jsaction(_('Remove selected'))
-    def delSessonConfigurations(self, **data):
-        delSubobjects(self, redirect='@@index', tab='2')
         return
 
@@ -794,61 +767,4 @@
         grok.getSite().updatePlugins()
         self.flash(_('Plugins were updated. See log file for details.'))
-        return
-
-class SessionConfigurationAddFormPage(IkobaAddFormPage):
-    """Add a session configuration object to configuration container.
-    """
-    grok.context(IConfigurationContainer)
-    grok.name('add')
-    grok.require('waeup.managePortalConfiguration')
-    label = _('Add session configuration')
-    form_fields = grok.AutoFields(ISessionConfigurationAdd)
-    pnav = 0
-
-    @action(_('Add Session Configuration'), style='primary')
-    def addSessionConfiguration(self, **data):
-        sessionconfiguration = createObject(u'waeup.SessionConfiguration')
-        self.applyData(sessionconfiguration, **data)
-        try:
-            self.context.addSessionConfiguration(sessionconfiguration)
-            ob_class = self.__implemented__.__name__.replace('waeup.ikoba.','')
-            self.context.__parent__.logger.info(
-                '%s - added: %s' % (
-                ob_class, sessionconfiguration.application_session))
-        except KeyError:
-            self.flash(_('The session chosen already exists.'), type='danger')
-            return
-        self.redirect(self.url(self.context, '@@index')+'#tab2')
-        return
-
-    @action(_('Cancel'), validator=NullValidator)
-    def cancel(self):
-        self.redirect(self.url(self.context, '@@index')+'#tab2')
-        return
-
-class SessionConfigurationManageFormPage(IkobaEditFormPage):
-    """Manage session configuration object.
-    """
-    grok.context(ISessionConfiguration)
-    grok.name('index')
-    grok.require('waeup.managePortalConfiguration')
-    form_fields = grok.AutoFields(ISessionConfiguration)
-    pnav = 0
-
-    @property
-    def label(self):
-        session_string = self.context.getSessionString()
-        return _('Edit academic session ${a} configuration',
-            mapping = {'a':session_string})
-
-    @action(_('Save'), style='primary')
-    def save(self, **data):
-        msave(self, **data)
-        self.redirect(self.url(self.context.__parent__, '@@index')+'#tab2')
-        return
-
-    @action(_('Cancel'), validator=NullValidator)
-    def cancel(self):
-        self.redirect(self.url(self.context.__parent__, '@@index')+'#tab2')
         return
 
Index: in/waeup.ikoba/trunk/src/waeup/ikoba/browser/templates/configurationmanagepage.pt
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/browser/templates/configurationmanagepage.pt	(revision 12185)
+++ 	(revision )
@@ -1,56 +1,0 @@
-<form action="." tal:attributes="action request/URL" method="POST"
-      enctype="multipart/form-data" i18n:domain="waeup.ikoba">
-  <ul class="tabs nav nav-tabs" data-tabs="tabs">
-    <li class="active">
-      <a href="#tab1" data-toggle="tab"
-         i18n:translate="">Site Settings</a>
-    </li>
-    <li>
-      <a href="#tab2"  data-toggle="tab"
-         i18n:translate="">Session Configurations</a>
-    </li>
-  </ul>
-  <div class="tab-content">
-    <div id="tab1" class="active tab-pane">
-      <table class="form-table">
-        <tbody>
-          <tal:widgets content="structure provider:widgets" />
-        </tbody>
-      </table>
-      <div tal:condition="view/availableActions">
-        <span tal:repeat="action view/actions" tal:omit-tag="">
-          <input tal:condition="python:action.label in view.taboneactions"
-                 tal:replace="structure action/render"/>
-        </span>
-      </div>
-    </div>
-    <div id="tab2" class="tab-pane">
-      <br />
-      <table class="ikoba-data-table dataTableManage">
-        <thead>
-          <tr>
-            <th>&nbsp;
-            </th>
-            <th i18n:translate="">Name
-            </th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr tal:repeat="entry view/getSessionConfigurations">
-            <td>
-            <input type="checkbox" name="val_id"
-                   tal:attributes="value entry/name" /> </td> <td>
-            <a href="" tal:attributes="href entry/url"
-               tal:content="entry/title">Name</a> </td>
-          </tr>
-        </tbody>
-      </table>
-      <div tal:condition="view/availableActions">
-        <span tal:repeat="action view/actions" tal:omit-tag="">
-          <input tal:condition="python:action.label in view.tabtwoactions"
-                 tal:replace="structure action/render"/>
-        </span>
-      </div>
-    </div><!-- /tab2 -->
-  </div><!-- /tab-content -->
-</form>
Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/configuration.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/configuration.py	(revision 12185)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/configuration.py	(revision 12186)
@@ -22,52 +22,13 @@
 from zope.component.interfaces import IFactory
 from zope.interface import implementedBy
-from waeup.ikoba.interfaces import (
-    ISessionConfiguration, IConfigurationContainer, ISessionConfigurationAdd,
-    application_sessions_vocab)
+from waeup.ikoba.interfaces import IConfigurationContainer
 from waeup.ikoba.utils.helpers import attrs_to_fields
 
 class ConfigurationContainer(grok.Container):
     """
-    The node containing the session configuration models
+    The node which may contain further configuration models (see waeup.kofa).
     """
 
     grok.implements(IConfigurationContainer)
 
-    def addSessionConfiguration(self, sessionconfiguration):
-        """Add a session configuration object.
-        """
-        if not ISessionConfiguration.providedBy(sessionconfiguration):
-            raise TypeError(
-                'ConfigurationContainers contain only '
-                'ISessionConfiguration instances')
-        code = unicode(sessionconfiguration.application_session)
-        self[code] = sessionconfiguration
-        return
-
 ConfigurationContainer = attrs_to_fields(ConfigurationContainer)
-
-class SessionConfiguration(grok.Model):
-    """
-    Session configuration model
-    """
-
-    grok.implements(ISessionConfiguration, ISessionConfigurationAdd)
-
-    def getSessionString(self):
-        return application_sessions_vocab.getTerm(self.application_session).title
-
-SessionConfiguration = attrs_to_fields(SessionConfiguration)
-
-class SessionConfigurationFactory(grok.GlobalUtility):
-    """A factory for session configuration objects.
-    """
-    grok.implements(IFactory)
-    grok.name(u'waeup.SessionConfiguration')
-    title = u"Create a new session configuration object.",
-    description = u"This factory instantiates new session configurations."
-
-    def __call__(self, *args, **kw):
-        return SessionConfiguration(*args, **kw)
-
-    def getInterfaces(self):
-        return implementedBy(SessionConfiguration)
Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_browser.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_browser.py	(revision 12185)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/customers/tests/test_browser.py	(revision 12186)
@@ -141,6 +141,4 @@
 
         self.app['configuration'].carry_over = True
-        configuration = createObject('waeup.SessionConfiguration')
-        self.app['configuration'].addSessionConfiguration(configuration)
 
         # Update the catalog
Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/interfaces.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/interfaces.py	(revision 12185)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/interfaces.py	(revision 12186)
@@ -85,10 +85,4 @@
             SimpleTerm(value, value, title) for title, value in terms])
 
-def application_sessions():
-    curr_year = datetime.now().year
-    year_range = range(1995, curr_year + 2)
-    return [('%s/%s' % (year,year+1), year) for year in year_range]
-
-application_sessions_vocab = SimpleIkobaVocabulary(*application_sessions())
 
 class ContextualDictSourceFactoryBase(SmartBasicContextualSourceFactory):
@@ -633,37 +627,4 @@
 
 
-class ISessionConfiguration(IIkobaObject):
-    """A session configuration object.
-    """
-
-    application_session = schema.Choice(
-        title = _(u'Period'),
-        source = application_sessions_vocab,
-        default = None,
-        required = True,
-        readonly = True,
-        )
-
-
-    def getSessionString():
-        """Returns the session string from the vocabulary.
-        """
-
-
-class ISessionConfigurationAdd(ISessionConfiguration):
-    """A session configuration object in add mode.
-    """
-
-    application_session = schema.Choice(
-        title = _(u'Academic Session'),
-        source = application_sessions_vocab,
-        default = None,
-        required = True,
-        readonly = False,
-        )
-
-ISessionConfigurationAdd['application_session'].order =  ISessionConfiguration[
-    'application_session'].order
-
 class IDataCenter(IIkobaObject):
     """A data center.
Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/payments/catalog.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/payments/catalog.py	(revision 12185)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/payments/catalog.py	(revision 12186)
@@ -30,5 +30,4 @@
 
     p_id = grok.index.Field(attribute='p_id')
-    p_session = grok.index.Field(attribute='p_session')
     p_category = grok.index.Field(attribute='p_category')
     p_item = grok.index.Field(attribute='p_item')
Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/payments/interfaces.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/payments/interfaces.py	(revision 12185)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/payments/interfaces.py	(revision 12186)
@@ -19,5 +19,5 @@
 from zope import schema
 from waeup.ikoba.interfaces import (
-    IIkobaObject, SimpleIkobaVocabulary, application_sessions_vocab,
+    IIkobaObject, SimpleIkobaVocabulary,
     ContextualDictSourceFactoryBase)
 from waeup.ikoba.interfaces import MessageFactory as _
@@ -64,10 +64,4 @@
         required = False,
         readonly = True,
-        )
-
-    p_session = schema.Choice(
-        title = _(u'Payment Session'),
-        source = application_sessions_vocab,
-        required = True,
         )
 
Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/products/tests/test_browser.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/products/tests/test_browser.py	(revision 12185)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/products/tests/test_browser.py	(revision 12186)
@@ -97,7 +97,4 @@
         # Add session configuration
         self.app['configuration'].carry_over = True
-        configuration = createObject('waeup.SessionConfiguration')
-
-        self.app['configuration'].addSessionConfiguration(configuration)
         self.login_path = 'http://localhost/app/login'
         self.container_path = 'http://localhost/app/products'
Index: /main/waeup.ikoba/trunk/src/waeup/ikoba/tests/test_configuration.py
===================================================================
--- /main/waeup.ikoba/trunk/src/waeup/ikoba/tests/test_configuration.py	(revision 12185)
+++ /main/waeup.ikoba/trunk/src/waeup/ikoba/tests/test_configuration.py	(revision 12186)
@@ -21,8 +21,6 @@
 from zope.interface import verify
 from waeup.ikoba.testing import FunctionalLayer, FunctionalTestCase
-from waeup.ikoba.configuration import (
-    ConfigurationContainer, SessionConfiguration, SessionConfigurationFactory)
-from waeup.ikoba.interfaces import(
-    IConfigurationContainer, ISessionConfiguration, ISessionConfigurationAdd)
+from waeup.ikoba.configuration import ConfigurationContainer
+from waeup.ikoba.interfaces import IConfigurationContainer
 
 class ConfigurationTest(FunctionalTestCase):
@@ -33,5 +31,4 @@
         super(ConfigurationTest, self).setUp()
         self.confcontainer = ConfigurationContainer()
-        self.sessionconf = SessionConfiguration()
         return
 
@@ -43,29 +40,2 @@
         verify.verifyClass(IConfigurationContainer, ConfigurationContainer)
         verify.verifyObject(IConfigurationContainer, self.confcontainer)
-        verify.verifyClass(ISessionConfiguration, SessionConfiguration)
-        verify.verifyObject(ISessionConfiguration, self.sessionconf)
-        verify.verifyClass(ISessionConfigurationAdd, SessionConfiguration)
-        verify.verifyObject(ISessionConfigurationAdd, self.sessionconf)
-
-class SessionConfigurationFactoryTest(FunctionalTestCase):
-
-    layer = FunctionalLayer
-
-    def setUp(self):
-        super(SessionConfigurationFactoryTest, self).setUp()
-        self.factory = SessionConfigurationFactory()
-
-    def tearDown(self):
-        super(SessionConfigurationFactoryTest, self).tearDown()
-
-    def test_interfaces(self):
-        verify.verifyClass(IFactory, SessionConfigurationFactory)
-        verify.verifyObject(IFactory, self.factory)
-
-    def test_factory(self):
-        obj = self.factory()
-        assert isinstance(obj, SessionConfiguration)
-
-    def test_getInterfaces(self):
-        implemented_by = self.factory.getInterfaces()
-        assert implemented_by.isOrExtends(ISessionConfiguration)
