Index: /main/waeup.kofa/trunk/docs/source/userdocs/testing.rst
===================================================================
--- /main/waeup.kofa/trunk/docs/source/userdocs/testing.rst	(revision 12931)
+++ /main/waeup.kofa/trunk/docs/source/userdocs/testing.rst	(revision 12932)
@@ -169,6 +169,6 @@
 .. _test_suspended_officer:
 
-Suspended Officer Account Test
-------------------------------
+Suspended Officer Account
+-------------------------
 
 The first test can be found in
@@ -181,4 +181,4 @@
 proper warning message when trying to login. Furthermore, suspended
 officer accounts are clearly marked and a warning message shows up
-if a manager accesses an suspended account, see :ref:`Officers
+if a manager accesses a suspended account, see :ref:`Officers
 <officers>`.
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py	(revision 12931)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py	(revision 12932)
@@ -59,5 +59,5 @@
     ISessionConfiguration, ISessionConfigurationAdd, IJobManager,
     IPasswordValidator, IContactForm, IKofaUtils, ICSVExporter,
-    academic_sessions_vocab, DOCLINK)
+    academic_sessions_vocab, DOCLINK, registration_states_vocab)
 from waeup.kofa.permissions import (
     get_users_with_local_roles, get_all_roles, get_all_users,
@@ -73,4 +73,5 @@
 from waeup.kofa.students.catalog import StudentQueryResultItem
 from waeup.kofa.students.interfaces import IStudentsUtils
+from waeup.kofa.students.vocabularies import StudyLevelSource
 
 FORBIDDEN_CHARACTERS = (160,)
@@ -493,4 +494,75 @@
             return html
 
+class SourcesOverview(KofaPage):
+    grok.context(IUniversity)
+    grok.name('sources')
+    grok.require('waeup.Public')
+    label = _(u'Sources & Vocabularies')
+    pnav = 0
+
+    def _set_inst_types(self):
+        study_modes = getUtility(IKofaUtils).INST_TYPES_DICT
+        self.inst_types = study_modes.items()
+        return
+
+    def _set_sessions(self):
+        vocab_terms = academic_sessions_vocab.by_value.values()
+        self.sessions = [(x.token, x.title,) for x in vocab_terms]
+        return
+
+    def _set_levels(self):
+        studylevelsource = StudyLevelSource().factory
+        self.levels = []
+        for code in studylevelsource.getValues(None):
+            title = studylevelsource.getTitle(None, code)
+            self.levels.append((code, title))
+        return
+
+    def _set_study_modes(self):
+        study_modes = getUtility(IKofaUtils).STUDY_MODES_DICT
+        self.study_modes = study_modes.items()
+        return
+
+    def _set_student_states(self):
+        vocab_terms = registration_states_vocab.by_value.values()
+        self.student_states = [(x.token, x.title) for x in vocab_terms]
+        return
+
+    def _set_verdicts(self):
+        verdicts = getUtility(IStudentsUtils).VERDICTS_DICT
+        self.verdicts = verdicts.items()
+        return
+
+    def _set_exam_subjects(self):
+        exam_subjects = getUtility(IKofaUtils).EXAM_SUBJECTS_DICT
+        self.exam_subjects = exam_subjects.items()
+        return
+
+    def _set_exam_grades(self):
+        self.exam_grades = getUtility(IKofaUtils).EXAM_GRADES
+        return
+
+    def _set_app_cats(self):
+        app_cats = getUtility(IKofaUtils).APP_CATS_DICT
+        self.app_cats = app_cats.items()
+        return
+
+    def _set_payment_cats(self):
+        payment_cats = getUtility(IKofaUtils).PAYMENT_CATEGORIES
+        self.payment_cats = payment_cats.items()
+        return
+
+    def update(self):
+        self._set_inst_types()
+        self._set_sessions()
+        self._set_levels()
+        self._set_study_modes()
+        self._set_student_states()
+        self._set_verdicts()
+        self._set_exam_subjects()
+        self._set_exam_grades()
+        self._set_app_cats()
+        self._set_payment_cats()
+
 class AdministrationPage(KofaPage):
     """ The administration overview page.
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_browser.py	(revision 12931)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_browser.py	(revision 12932)
@@ -500,2 +500,7 @@
             'This account has been suspended.' in self.browser.contents)
         return
+
+    def test_sources_overview(self):
+        self.browser.open('http://localhost/app/sources')
+        self.assertEqual(self.browser.headers['Status'], '200 Ok')
+        self.assertTrue('id="headingStudentStates"' in self.browser.contents)
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/viewlets.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/viewlets.py	(revision 12931)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/viewlets.py	(revision 12932)
@@ -59,4 +59,10 @@
     grok.name('widgets')
 
+class SourcesLeft(grok.ViewletManager):
+    grok.name('sources_left')
+
+class SourcesRight(grok.ViewletManager):
+    grok.name('sources_right')
+
 
 #
@@ -853,2 +859,112 @@
             '<input class="text-right" type="submit" value="remove" />' + \
             '</form></div>'
+
+class InstTypesSource(grok.Viewlet):
+    """Avalable institution types for the sources overview page.
+    """
+    grok.order(1)
+    grok.viewletmanager(SourcesLeft)
+    grok.require('waeup.Public')
+    grok.template('source')
+    column = 'left'
+    name = 'InstTypes'
+    source_name = 'inst_types'
+    title = _('Institution Types')
+
+    def heading(self):
+        return 'heading%s' % self.name
+
+    def accordion(self):
+        return '#accordion-%s' % self.column
+
+    def collapse(self):
+        return 'collapse%s' % self.name
+
+    def hash_collapse(self):
+        return '#collapse%s' % self.name
+
+    def source(self):
+        return getattr(self.view, self.source_name)
+
+class SessionSource(InstTypesSource):
+    """Avalable sessions for the sources overview page.
+    """
+    grok.order(2)
+    name = 'Sessions'
+    source_name = 'sessions'
+    title = _('Academic Sessions')
+
+class StudyLevelSource(InstTypesSource):
+    """Avalable study levels for the sources overview page.
+    """
+    grok.order(3)
+    name = 'Levels'
+    source_name = 'levels'
+    title = _('Study Levels')
+
+class StudyModeSource(InstTypesSource):
+    """Avalable study modes for the sources overview page.
+    """
+    grok.order(4)
+    name = 'StudyModes'
+    source_name = 'study_modes'
+    title = _('Study Modes')
+
+class AppCatsSource(InstTypesSource):
+    """Avalable application categories for the sources overview page.
+    """
+    grok.order(5)
+    name = 'AppCats'
+    source_name = 'app_cats'
+    title = _('Application Categories')
+
+class StudentStatesSource(InstTypesSource):
+    """Avalable student sates for the sources overview page.
+    """
+    grok.order(1)
+    grok.viewletmanager(SourcesRight)
+    column = 'right'
+    name = 'StudentStates'
+    source_name = 'student_states'
+    title = _('Student Registration States')
+
+class VerdictsSource(InstTypesSource):
+    """Avalable verdicts for the sources overview page.
+    """
+    grok.order(2)
+    grok.viewletmanager(SourcesRight)
+    column = 'right'
+    name = 'Verdicts'
+    source_name = 'verdicts'
+    title = _('Verdicts')
+
+class PaymentCatsSource(InstTypesSource):
+    """Avalable payment categories for the sources overview page.
+    """
+    grok.order(3)
+    grok.viewletmanager(SourcesRight)
+    column = 'right'
+    name = 'PaymentCats'
+    source_name = 'payment_cats'
+    title = _('Payment Categories')
+
+class ExamSubjectsSource(InstTypesSource):
+    """Avalable exam subjects for the sources overview page.
+    """
+    grok.order(4)
+    grok.viewletmanager(SourcesRight)
+    column = 'right'
+    name = 'ExamSubjects'
+    source_name = 'exam_subjects'
+    title = _('Exam Subjects')
+
+class ExamGradesSource(InstTypesSource):
+    """Avalable exam grades for the sources overview page.
+    """
+    grok.order(5)
+    grok.viewletmanager(SourcesRight)
+    column = 'right'
+    name = 'ExamGrades'
+    source_name = 'exam_grades'
+    title = _('Exam Grades')
+
