Index: /main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/browser/pages.py
===================================================================
--- /main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/browser/pages.py	(revision 14741)
+++ /main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/browser/pages.py	(revision 14742)
@@ -20,8 +20,14 @@
 
 import grok
+from waeup.kofa.browser.pages import (
+    SessionConfigurationAddFormPage,
+    SessionConfigurationManageFormPage,
+    ConfigurationContainerManageFormPage,
+    SourcesOverview)
 from waeup.kofa.browser.layout import KofaPage
-from waeup.kofa.browser.pages import SourcesOverview
 from kofacustom.nigeria.interfaces import (
-    high_qual, high_grade, exam_types, LGASource)
+    high_qual, high_grade, exam_types, LGASource,
+    ICustomSessionConfiguration,
+    ICustomSessionConfigurationAdd)
 from kofacustom.nigeria.interfaces import MessageFactory as _
 
@@ -59,5 +65,4 @@
         return
 
-
 class NigeriaSourcesOverviewPage(KofaPage, NigeriaSourcesOverview):
     grok.name('sources')
@@ -65,2 +70,13 @@
     label = _(u'Sources & Vocabularies')
     pnav = 0
+
+class CustomSessionConfigurationAddFormPage(SessionConfigurationAddFormPage):
+    """Add a session configuration object to configuration container.
+    """
+    form_fields = grok.AutoFields(ICustomSessionConfigurationAdd)
+
+class CustomSessionConfigurationManageFormPage(
+    SessionConfigurationManageFormPage):
+    """Manage session configuration object.
+    """
+    form_fields = grok.AutoFields(ICustomSessionConfiguration)
Index: /main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/configuration.py
===================================================================
--- /main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/configuration.py	(revision 14742)
+++ /main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/configuration.py	(revision 14742)
@@ -0,0 +1,46 @@
+## $Id$
+##
+## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##
+"""
+Containers for session configuration objects.
+"""
+import grok
+from zope.interface import implementedBy
+from waeup.kofa.utils.helpers import attrs_to_fields
+from waeup.kofa.configuration import (
+    SessionConfigurationFactory, SessionConfiguration)
+from kofacustom.nigeria.interfaces import (
+    ICustomSessionConfiguration, ICustomSessionConfigurationAdd)
+
+class CustomSessionConfiguration(SessionConfiguration):
+    """
+    Customized session configuration model
+    """
+
+    grok.implements(ICustomSessionConfiguration, ICustomSessionConfigurationAdd)
+
+CustomSessionConfiguration = attrs_to_fields(CustomSessionConfiguration)
+
+class CustomSessionConfigurationFactory(SessionConfigurationFactory):
+    """A customized factory for session configuration objects.
+    """
+
+    def __call__(self, *args, **kw):
+        return CustomSessionConfiguration(*args, **kw)
+
+    def getInterfaces(self):
+        return implementedBy(CustomSessionConfiguration)
Index: /main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/interfaces.py
===================================================================
--- /main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/interfaces.py	(revision 14741)
+++ /main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/interfaces.py	(revision 14742)
@@ -92,2 +92,27 @@
         return self.lga_dict.get(value,
             _('Invalid key: ${a}', mapping = {'a':value}))
+
+class ICustomSessionConfiguration(ISessionConfiguration):
+    """A session configuration object.
+    """
+
+    remita_enabled = schema.Bool(
+        title = _(u'Remita integration enabled'),
+        default = False,
+        )
+
+class ICustomSessionConfigurationAdd(ICustomSessionConfiguration):
+    """A session configuration object in add mode.
+    """
+
+    academic_session = schema.Choice(
+        title = _(u'Academic Session'),
+        source = academic_sessions_vocab,
+        default = None,
+        required = True,
+        readonly = False,
+        )
+
+ICustomSessionConfigurationAdd[
+    'academic_session'].order =  ICustomSessionConfiguration[
+    'academic_session'].order
