Index: /main/kofacustom.pcn/trunk/src/kofacustom/pcn/applicants/browser.py
===================================================================
--- /main/kofacustom.pcn/trunk/src/kofacustom/pcn/applicants/browser.py	(revision 11839)
+++ /main/kofacustom.pcn/trunk/src/kofacustom/pcn/applicants/browser.py	(revision 11840)
@@ -21,4 +21,23 @@
 from waeup.kofa.applicants.browser import (
     ApplicantRegistrationPage, ApplicantsContainerPage)
+from waeup.kofa.applicants.viewlets import (
+    StudentCreateActionButton,
+    ApplicantsRootCreateStudentsActionButton
+    )
 from kofacustom.pcn.interfaces import MessageFactory as _
 
+class StudentCreateActionButton(StudentCreateActionButton):
+
+    @property
+    def target_url(self):
+        """Get a URL to the target...
+        """
+        return
+
+class ApplicantsRootCreateStudentsActionButton(ApplicantsRootCreateStudentsActionButton):
+
+    @property
+    def target_url(self):
+        """Get a URL to the target...
+        """
+        return
Index: /main/kofacustom.pcn/trunk/src/kofacustom/pcn/browser/pages.py
===================================================================
--- /main/kofacustom.pcn/trunk/src/kofacustom/pcn/browser/pages.py	(revision 11839)
+++ /main/kofacustom.pcn/trunk/src/kofacustom/pcn/browser/pages.py	(revision 11840)
@@ -20,8 +20,11 @@
     SessionConfigurationAddFormPage, SessionConfigurationManageFormPage,
     LoginPage, CertificatePage, CertificateManageFormPage, DepartmentPage,
-    DepartmentManageFormPage, CertificateAddFormPage, DepartmentAddFormPage)
-from waeup.kofa.university.interfaces import IDepartment, ICertificate
+    DepartmentManageFormPage, CertificateAddFormPage, DepartmentAddFormPage,
+    FacultyManageFormPage, FacultyAddFormPage)
+from waeup.kofa.university.interfaces import ICertificate
 from kofacustom.pcn.interfaces import (
     ICustomSessionConfiguration, ICustomSessionConfigurationAdd)
+
+from kofacustom.pcn.university.faculty import IDepartment, IFaculty
 
 grok.templatedir('templates')
@@ -36,4 +39,15 @@
     """
     form_fields = grok.AutoFields(ICustomSessionConfiguration)
+
+
+class FacultyAddFormPage(FacultyAddFormPage):
+    """ Page form to add a new faculty to a faculty container.
+    """
+    form_fields = grok.AutoFields(IFaculty)
+
+class FacultyManageFormPage(FacultyManageFormPage):
+    """Manage the basic properties of a `Faculty` instance.
+    """
+    form_fields = grok.AutoFields(IFaculty).omit('code')
 
 class DepartmentPage(DepartmentPage):
Index: /main/kofacustom.pcn/trunk/src/kofacustom/pcn/university/batching.py
===================================================================
--- /main/kofacustom.pcn/trunk/src/kofacustom/pcn/university/batching.py	(revision 11840)
+++ /main/kofacustom.pcn/trunk/src/kofacustom/pcn/university/batching.py	(revision 11840)
@@ -0,0 +1,7 @@
+from waeup.kofa.university.batching import FacultyProcessor
+from kofacustom.pcn.university.faculty import IFaculty
+
+class FacultyProcessor(FacultyProcessor):
+    """A batch processor for IFaculty objects.
+    """
+    iface = IFaculty
Index: /main/kofacustom.pcn/trunk/src/kofacustom/pcn/university/faculty.py
===================================================================
--- /main/kofacustom.pcn/trunk/src/kofacustom/pcn/university/faculty.py	(revision 11839)
+++ /main/kofacustom.pcn/trunk/src/kofacustom/pcn/university/faculty.py	(revision 11840)
@@ -1,4 +1,7 @@
 import grok
-from waeup.kofa.university.interfaces import IDepartment, ICertificate
+from zope import schema
+from zope.interface import Attribute, invariant, Invalid
+from waeup.kofa.interfaces import (IKofaObject, IKofaContainer, validate_email)
+from waeup.kofa.university.interfaces import ICertificate
 from waeup.kofa.university.faculty import (
     Faculty, FacultyFactory)
@@ -7,13 +10,73 @@
 from waeup.kofa.university.certificate import (
     Certificate, CertificateFactory)
+from waeup.kofa.university.vocabularies import (
+    course_levels,
+    CourseSource,
+    StudyModeSource,
+    AppCatSource,
+    InstTypeSource,
+    SemesterSource,
+    )
 
+
+from waeup.kofa.interfaces import MessageFactory as _
+
+
+class IFaculty(IKofaContainer):
+    """Representation of a university faculty.
+    """
+
+    code = schema.TextLine(
+        title = _(u'Code'),
+        default = u'NA',
+        required = True,
+        )
+
+    title = schema.TextLine(
+        title = _(u'Name of faculty'),
+        default = u'Unnamed',
+        required = True,
+        )
+
+    title_prefix = schema.Choice(
+        title = _(u'Name prefix'),
+        default = u'faculty',
+        source = InstTypeSource(),
+        required = True,
+        )
+
+    address = schema.Text(
+        title = _(u'Permanent Address'),
+        required = False,
+        )
+
+    email = schema.ASCIILine(
+        title = _(u'Email'),
+        required = False,
+        constraint=validate_email,
+        )
 
 class CustomFaculty(Faculty):
     """A university faculty.
     """
+    grok.implements(IFaculty)
+
     local_roles = [
         'waeup.local.DepartmentOfficer',
         'waeup.local.DepartmentManager',
         ]
+
+    def __init__(self,
+                 title=u'Unnamed Faculty',
+                 title_prefix=u'faculty',
+                 address=None,
+                 email=None,
+                 code=u'NA', **kw):
+        super(Faculty, self).__init__(**kw)
+        self.title = title
+        self.title_prefix = title_prefix
+        self.code = code
+        self.address = address
+        self.email = email
 
 class CustomFacultyFactory(FacultyFactory):
@@ -27,4 +90,39 @@
         return implementedBy(CustomFaculty)
 
+class IDepartment(IKofaObject):
+    """Representation of a department.
+    """
+    code = schema.TextLine(
+        title = _(u'Code'),
+        default = u'NA',
+        required = True,
+        )
+
+    title = schema.TextLine(
+        title = _(u'Name of department'),
+        default = u'Unnamed',
+        required = True,
+        )
+
+    title_prefix = schema.Choice(
+        title = _(u'Name prefix'),
+        source = InstTypeSource(),
+        default = u'department',
+        required = True,
+        )
+
+    address = schema.Text(
+        title = _(u'Permanent Address'),
+        required = False,
+        )
+
+    email = schema.ASCIILine(
+        title = _(u'Email'),
+        required = False,
+        constraint=validate_email,
+        )
+
+    certificates = Attribute("A container for certificates.")
+
 class CustomDepartment(Department):
     """A university department.
@@ -37,4 +135,24 @@
         'waeup.local.DepartmentManager',
         ]
+
+    def __init__(self,
+                 title=u'Unnamed Department',
+                 title_prefix=u'department',
+                 address=None,
+                 email=None,
+                 code=u"NA", **kw):
+        super(Department, self).__init__(**kw)
+        self.title = title
+        self.title_prefix = title_prefix
+        self.code = code
+        self.courses = CoursesContainer()
+        self.courses.__parent__ = self
+        self.courses.__name__ = 'courses'
+        self.certificates = CertificatesContainer()
+        self.certificates.__parent__ = self
+        self.certificates.__name__ = 'certificates'
+        self.score_editing_disabled = False
+        self.address = address
+        self.email = email
 
 class CustomDepartmentFactory(DepartmentFactory):
