Index: main/waeup.kofa/trunk/docs/source/userdocs/students.rst
===================================================================
--- main/waeup.kofa/trunk/docs/source/userdocs/students.rst	(revision 13022)
+++ main/waeup.kofa/trunk/docs/source/userdocs/students.rst	(revision 13023)
@@ -172,8 +172,5 @@
 -----------------------
 
-`waeup.kofa.students.interfaces.IStudentOnlinePayment` inherits from `waeup.kofa.payments.interfaces.IOnlinePayment` and has only two additional schema fields: `p_current` and `p_level` which are student-specific. It also promises three additional methods which
-
-
-xxxxxxxxxxxxxxxx
+`waeup.kofa.students.interfaces.IStudentOnlinePayment` inherits from `waeup.kofa.payments.interfaces.IOnlinePayment` and has only two additional schema fields: `p_current` and `p_level` which are student-specific. It also promises three additional methods which process student data after successful or approved payment.
 
 .. literalinclude:: ../../../src/waeup/kofa/students/interfaces.py
@@ -186,11 +183,80 @@
 ------------
 
+A bed ticket confirms that a bed space in a hostel has been allocated to the student for the period of an academic session (`booking_session`). The `bed_coordinates` specify which bed space has been booked. Sometimes this value is too cryptic and inappropriate to guide the student to the bed space. The `display_coordinates` property can be used to 'translate' the coordinates and display a customary description of the bed space. Much like some study level attributes, also `display_coordinates` is defined as a read-only schema field in order to automatically display the field on form pages. It is excluded by the `attrs_to_fields` function and thus not stored in the database.
+
 .. literalinclude:: ../../../src/waeup/kofa/students/interfaces.py
    :pyobject: IBedTicket
-
 
 Registration Workflow
 =====================
 
+Studying at a higher education institution means following orchestrated and repeatable patterns of activities or, in other words, following a workflow prescribed by the school regulations. This process starts with application for studying a programme offered by the school, and may end with de-registration of a student. But even after de-registration, former students can be kept in the system as alumni so that they can still access their records or can apply for official transcripts.
+
+Kofa divides these 'repeatable patterns of activities' into two different and strictly seperated workflows: an application and a student registration workflow. The latter, which presupposes the admission of the student, will be described here.
+
+A worflow defines states and transitions between the states. The following diagram shows the entire student registration workflow. Workflow states are connected with dashed lines which symbolize workflow transitions. There are no arrows at the end of each line because in most cases, Kofa provides transitions in both directions. Transitions are denoted by lower-case characters, reverse transitions additionally by a preceded dash. A few transitions do not make sense and are thus not available (N/A)::
+
+              a
+   created ------- admitted
+              b       |
+     +----------------+
+     |                         e
+     +------------------------------------------------------+
+     |                  c                            d      |
+   clearance started ------- clearance requested  ------- cleared
+                                                            |
+                                f                           |
+     +--------+---------------------------------------------+
+     |        |
+     | h    school fee paid -------- returning -------------+
+     |        |             \   l        |                  |
+     +--------+ g            \ _ _ _ m   | k                |
+              |                      \   |                  |
+           courses registered ------ courses validated      |
+                          |      i       |                  |
+                          |              | n                |
+                          | j            |                  |
+                          |          graduated              |
+                          |              |                  |
+                          |              | o                |
+                          |              |                  |
+                          |          transcript requested   |
+     a: admit             |                                 |
+    -a: reset1            +---------------------------------+
+     b: start_clearance
+    -b: reset2
+     c: request_clearance
+    -c: reset3 (= reject request)
+     d: clear
+    -d: N/A
+     e: N/A
+    -e: reset4 (= annul clearance)
+     f: pay_first_school_fee, approve_first_school_fee
+    -f: reset5 (= annul payment)
+     g: register_courses
+    -g: reset7 (= reject request)
+     h: pay_pg_fee, approve_pg_fee
+    -h: N/A
+     i: validate_courses
+    -i: N/A
+     j: bypass_validation
+    -j: N/A
+     k: return
+    -k: reset9
+     l: pay_school_fee, approve_school_fee
+    -l: reset6 (= annul payment)
+     m: N/A
+    -m: reset8 (= annul validation)
+     n: N/A
+    -n: N/A
+     o: request_transcript
+    -o: process_transcript
+
+
+Student registration starts with the first login of the student into state ``admitted``. After filling the email adress and phone number field, and also uploading a passport picture, the student immediately proceeds with the clearance sub-workflow. S/he starts clearance (**b**) either directly or by using a clearance activation code, depending on the configuration of the portal. After filling the clearance form and uploading all necessary documents, the student requests clearance (**c**) which can be either accepted (**d**) or rejected (**-c**) by a clearance officer. A cleared student can enter the 'cyclical' part of the workflow which starts after first school fee payment (**f**).
+
+A properly registering undergraduate student creates a new study level (course list) at the beginning of each academic session, adds the necessary course tickets and finally registers the list (**g**). The student's course adviser subsequently validates the list (**i**). At the end of the session, when all exams have been taken, course results (scores) are either entered by lecturers or imported by an import officer, a verdict is announced and the student is finally enabled to return (**k**). In Kofa the last two steps are automatically performed by the Verdict Batch Processor. The student is now in state ``returning`` but still in the same session. Also the current level has not changed. The new academic year starts only if the student the pays school fee for the subsequent session (**l**). `current_session` increases by one, `current_level` is set according to the verdict obtained, the old verdict is copied into `previous_verdict` and `current_verdict` is cleared. The student has arrived in the new academic session in state ``school_fee_paid``. This ccle is repeatedly passed through till the student is ready for graduation.
+
+
 Browser Pages
 =============
