Index: /main/waeup.sirp/trunk/src/waeup/sirp/app.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/app.py	(revision 6086)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/app.py	(revision 6087)
@@ -40,9 +40,9 @@
     # The default frontpage.
     frontpage= """
-This is the default frontpage of the portal which is written
-in in the `reStructuredText <http://docutils.sourceforge.net/docs/user/rst/quickref.html>`_ 
+This is the default frontpage of the portal written
+in `reStructuredText (reST) <http://docutils.sourceforge.net/docs/user/rst/quickref.html>`_ 
 markup language. 
 
-Some reST examples for getting started:
+Some more reST examples for getting started:
 
 1. Heading
Index: /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser.py	(revision 6086)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser.py	(revision 6087)
@@ -52,5 +52,5 @@
     IApplicant, IApplicantPrincipal, IApplicantPDEEditData,
     IApplicantsRoot, IApplicantsContainer, IApplicantsContainerProvider,
-    IApplicantsContainerAdd
+    IApplicantsContainerAdd, application_types_vocab
     )
 
@@ -150,6 +150,10 @@
     @grok.action('Add applicants container')
     def addApplicantsContainer(self, **data):
-        if data['code'] in self.context.keys():
-            self.status = Invalid('The name chosen already exists '
+        year1 = unicode(data['year'])
+        year2 = unicode(data['year']+1)
+        code = unicode(data['prefix']) + year1
+        title = unicode(application_types_vocab.getTerm(data['prefix']).title) + u' ' + year1 + u'/' + year2        
+        if code in self.context.keys():
+            self.status = Invalid('The code chosen already exists '
                                   'in the database')
             return
@@ -158,6 +162,9 @@
         container = provider.factory()
         self.applyData(container, **data)
-        self.context[data['code']] = container
-        self.flash('Added "%s".' % data['code'])
+        container.code = code
+        container.title = title
+        #import pdb; pdb.set_trace()
+        self.context[code] = container
+        self.flash('Added "%s".' % code)
         self.redirect(self.url(self.context, u'@@manage')+'#tab-1')
         return
@@ -210,11 +217,9 @@
     @property
     def title(self):
-        return "Applicants Container: %s" % getattr(
-            self.context, '__name__', 'unnamed')
+        return "Applicants Container: %s" % self.context.title
 
     @property
     def label(self):
-        return self.title
-
+        return self.context.title
 
 class ManageApplicantsContainerActionButton(ManageActionButton):
@@ -235,10 +240,9 @@
     @property
     def title(self):
-        return "Manage applicants container: %s" % getattr(
-            self.context, '__name__', 'unnamed')
+        return "Applicants Container: %s" % self.context.title
 
     @property
     def label(self):
-        return self.title
+        return 'Manage applicants container'
 
     pnav = 3
Index: /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantscontainerpage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantscontainerpage.pt	(revision 6086)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantscontainerpage.pt	(revision 6087)
@@ -1,3 +1,3 @@
-<h2 tal:content="context/title">Title</h2>
+<h2 tal:content="view/label">Title</h2>
 
 <span tal:replace="structure view/widgets/description">Title</span>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantsrootpage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantsrootpage.pt	(revision 6086)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantsrootpage.pt	(revision 6087)
@@ -6,5 +6,5 @@
   <thead>
     <tr>
-      <th>Code</th><th>Title</th>
+      <th>Year</th><th>Code</th><th>Title</th>
     </tr>
   </thead>
@@ -12,12 +12,12 @@
     <tr tal:repeat="entry context/values"
 	class="gradeB">
+      <td tal:content="entry/year">Year
+      </td>	
       <td>
 	<a href=""
 	   tal:attributes="href python:view.url(entry)"
-	   tal:content="entry/__name__"
-	   >Name</a>
+	   tal:content="entry/__name__">Code</a>
       </td>
-      <td tal:content="entry/title">
-	Title
+      <td tal:content="entry/title">Title
       </td>
     </tr>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/form_manage_applicants_container.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/form_manage_applicants_container.pt	(revision 6086)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/form_manage_applicants_container.pt	(revision 6087)
@@ -31,4 +31,5 @@
 	<tbody>
 	  <tal:block repeat="widget view/widgets">
+	    <tal:condition condition="python:widget.name not in ['form.title']">
 	    <tr>
 	      <td class="label" tal:define="hint widget/hint">
@@ -55,4 +56,5 @@
 	      </td>
 	    </tr>
+	    </tal:condition>
 	  </tal:block>
 	</tbody>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/applicants/interfaces.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/applicants/interfaces.py	(revision 6086)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/applicants/interfaces.py	(revision 6087)
@@ -5,5 +5,5 @@
 ## $Id$
 ##
-## Copyright (C) 2011 Uli Fouquet
+## 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
@@ -34,4 +34,5 @@
 from waeup.sirp.image.image import WAeUPImageFile
 from waeup.sirp.interfaces import IWAeUPObject, SimpleWAeUPVocabulary
+from waeup.sirp.university.vocabularies import FutureYearsSource
 
 
@@ -49,17 +50,20 @@
     )
 
-#: Categories of applications we support.
-#: Yet not complete nor correct.
-APPLICATION_CATEGORIES = (
-    ('Direct Entry Screening Exam (PDE)', 'pde'),
-    ('Post-UME', 'pume'),
-    ('Post-UDE', 'pude'),
-    ('PCE', 'pce'),
+#: Types of applications we support.
+APPLICATION_TYPES = (
+    ('Pre-NCE Programme', 'prence'),
+    ('Post UME Screening Test', 'pume'),
+    ('Post UDE Screening', 'pude'),
+    ('Part Time Degree in Education', 'sandwich'),
+    ('Part-Time Degree Programmes', 'pt'),
+    ('Diploma Programmes', 'dp'),
+    ('PCE Screening', 'pce'),
+    ('Certificate Programmes', 'ct'),
     ('Common Entry Screening Test (CEST)', 'cest'),
     )
 
 #: A :class:`waeup.sirp.interfaces.SimpleWAeUPVocabulary` of supported
-#: application categories.
-application_categories_vocab = SimpleWAeUPVocabulary(*APPLICATION_CATEGORIES)
+#: application or screening types.
+application_types_vocab = SimpleWAeUPVocabulary(*APPLICATION_TYPES)
 
 class GenderSource(BasicSourceFactory):
@@ -152,9 +156,31 @@
     code = schema.TextLine(
         title = u'Code',
-        description = u'Abbreviated code of applicants container',
-        default = u'NA',
-        required = True,
-        readonly = True,
-        )
+        default = u'-',
+        required = True,
+        readonly = True,
+        )
+        
+    title = schema.TextLine(
+        title = u'Title',
+        required = True,
+        default = u'-',
+        readonly = True,
+        )        
+        
+    prefix = schema.Choice(
+        title = u'Application target',
+        required = True,
+        default = None,
+        source = application_types_vocab,
+        readonly = True,
+        )
+
+    year = schema.Choice(
+        title = u'Year of entrance',
+        required = True,
+        default = None,
+        source = FutureYearsSource(),
+        readonly = True,
+        )                
 
     provider = schema.Choice(
@@ -163,10 +189,5 @@
         default = None,
         source = ApplicantContainerProviderSource(),
-        )
-
-    title = schema.TextLine(
-        title = u'Title of the type of applicants stored here',
-        required = True,
-        default = u'Untitled',
+        readonly = True,
         )
 
@@ -228,13 +249,31 @@
     """An applicants container contains university applicants.
     """
-    code = schema.TextLine(
-        title = u'Code',
-        description = u'Abbreviated code of applicants container',
-        default = u'NA',
-        required = True,
+    prefix = schema.Choice(
+        title = u'Application target',
+        required = True,
+        default = None,
+        source = application_types_vocab,
         readonly = False,
         )
 
-IApplicantsContainerAdd['code'].order =  IApplicantsContainer['code'].order
+    year = schema.Choice(
+        title = u'Year of entrance',
+        required = True,
+        default = None,
+        source = FutureYearsSource(),
+        readonly = False,
+        )                
+
+    provider = schema.Choice(
+        title = u'Applicants container type',
+        required = True,
+        default = None,
+        source = ApplicantContainerProviderSource(),
+        readonly = False,
+        )
+
+IApplicantsContainerAdd['prefix'].order =  IApplicantsContainer['prefix'].order
+IApplicantsContainerAdd['year'].order =  IApplicantsContainer['year'].order
+IApplicantsContainerAdd['provider'].order =  IApplicantsContainer['provider'].order
 
 class IApplicantBaseData(IWAeUPObject):
Index: /main/waeup.sirp/trunk/src/waeup/sirp/applicants/tests/test_interfaces.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/applicants/tests/test_interfaces.py	(revision 6086)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/applicants/tests/test_interfaces.py	(revision 6087)
@@ -31,5 +31,5 @@
 from waeup.sirp.applicants import interfaces
 from waeup.sirp.applicants.interfaces import (
-    APPLICATION_CATEGORIES, application_categories_vocab, GenderSource,
+    APPLICATION_TYPES, application_types_vocab, GenderSource,
     )
 
@@ -37,5 +37,5 @@
 
     def setUp(self):
-        self.vocab = application_categories_vocab
+        self.vocab = application_types_vocab
         return
     
Index: /main/waeup.sirp/trunk/src/waeup/sirp/university/vocabularies.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/university/vocabularies.py	(revision 6086)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/university/vocabularies.py	(revision 6087)
@@ -10,4 +10,5 @@
     from zope.app.catalog.interfaces import ICatalog
 from zope.component import getUtility
+import datetime
 
 inst_types = SimpleWAeUPVocabulary(
@@ -74,3 +75,18 @@
         return "%s - %s" % (value.code, value.title[:64])
         
+        
+        
+class FutureYearsSource(BasicSourceFactory):
+    """
+    """
+    def getValues(self):
+        cy = datetime.datetime.now().year
+        return [x for x in range(cy-2,cy+5)] 
+
+    def getToken(self, value):
+        return str(value)
+
+    def getTitle(self, value):
+      return str(value)     
+        
                                                              
