source: main/waeup.kofa/branches/uli-rm-bootstrap/docs/source/userdocs/students/workflow.rst @ 15284

Last change on this file since 15284 was 13610, checked in by Henrik Bettermann, 9 years ago

Add button and view which allow students to unregister their
current course list unless the courses have not been validated.

File size: 7.8 KB
Line 
1.. _registration_workflow:
2
3Registration Workflow
4=====================
5
6Studying at a higher education institution means following
7orchestrated and repeatable patterns of activities or, in other
8words, following a process workflow prescribed by the school
9regulations. This process starts with application for studying a
10programme offered by the school, and may end with de-registration of
11a student. But even after de-registration, former students can be
12kept in the system as alumni so that they can still access their
13records or can apply for official transcripts.
14
15Kofa divides these 'repeatable patterns of activities' into two
16different and strictly seperated process workflows: an application
17and a student registration workflow. The latter, which presupposes
18the admission of the student, will be described here.
19
20A worflow defines states and transitions between the states. The
21following diagram shows the entire student registration workflow.
22Workflow states are connected with dashed lines which symbolize
23workflow transitions. There are no arrows at the end of each line
24because in most cases, Kofa provides transitions in both directions.
25Transitions are denoted by lower-case characters, reverse
26transitions additionally by a preceded dash. A few transitions do
27not make sense and are thus not available (N/A)::
28
29              a
30   created ------- admitted
31              b       |
32     +----------------+
33     |                         e
34     +------------------------------------------------------+
35     |                  c                            d      |
36   clearance started ------- clearance requested  ------- cleared
37                                                            |
38                                f                           |
39     +--------+---------------------------------------------+
40     |        |
41     | h    school fee paid -------- returning -------------+
42     |        |             \   l        |                  |
43     +--------+ g            \ _ _ _ m   | k                |
44              |                      \   |                  |
45           courses registered ------ courses validated      |
46                          |      i       |                  |
47                          |              | n                |
48                          | j            |                  |
49                          |          graduated              |
50                          |              |                  |
51                          |              | o                |
52                          |              |                  |
53                          |          transcript requested   |
54     a: admit             |                                 |
55    -a: reset1            +---------------------------------+
56     b: start_clearance
57    -b: reset2
58     c: request_clearance
59    -c: reset3 (= reject request)
60     d: clear
61    -d: N/A
62     e: N/A
63    -e: reset4 (= annul clearance)
64     f: pay_first_school_fee, approve_first_school_fee
65    -f: reset5 (= annul payment)
66     g: register_courses
67    -g: reset7 (= unregister)
68     h: pay_pg_fee, approve_pg_fee
69    -h: N/A
70     i: validate_courses
71    -i: N/A
72     j: bypass_validation
73    -j: N/A
74     k: return
75    -k: reset9
76     l: pay_school_fee, approve_school_fee
77    -l: reset6 (= annul payment)
78     m: N/A
79    -m: reset8 (= annul validation)
80     n: N/A
81    -n: N/A
82     o: request_transcript
83    -o: process_transcript
84
85
86Student registration starts with the first login of the student into
87state ``admitted``. After filling the email adress and phone number
88field, and also uploading a passport picture, the student
89immediately proceeds with the clearance sub-workflow. S/he starts
90clearance **(b)** either directly or by using a clearance access
91code, depending on the configuration of the portal. After filling
92the clearance form and uploading all necessary documents, the
93student requests clearance **(c)** which can be either accepted **(d)**
94or rejected **(-c)** by a clearance officer. A cleared student
95can enter the 'cyclical' part of the workflow which starts after
96first school fee payment **(f)**.
97
98A properly registering undergraduate student creates a new study
99level (course list) at the beginning of each academic session, adds
100the necessary course tickets and finally registers the list **(g)**.
101The student's course adviser subsequently validates the list **(i)**,
102or rejects the course registration request **(-g)** so that the
103student has to register again. Even after validation there is an
104option to annul the already validated course list **(-m)** so that
105the student can revise the list. At the end of the session, when all
106exams have been taken, course results (scores) are either entered by
107lecturers or imported by an import officer, a verdict is announced
108and the student is finally enabled to return **(k)**. In Kofa the
109last two steps are automatically performed by the Verdict Batch
110Processor. In some cases, course validators are not available or
111course validation is not necessary. Then validation can be skipped
112**(j)** by setting `bypass_validation` in the processor's import
113file to ``True``. In both cases the student arrives in state
114``returning`` but is still in the same session. Also the current
115level has not changed. The new session starts only if the student
116pays school fee for the subsequent session **(l)**. Then
117`current_session` increases by one, `current_level` is set according
118to the verdict obtained, the old verdict is copied into
119`previous_verdict` and `current_verdict` is cleared. The student has
120arrived in the new academic session in state ``school_fee_paid``.
121The **gikl** cycle is repeatedly passed through till the student is
122ready for graduation.
123
124So far we have spoken about undergraduate students. The same
125sequence of transitions also applies to postgraduate students if
126they have to pass several levels (e.g. 700 and 800). Very often the
127level model does not apply to postgraduates. The students remain in
128the same (999) level but pay for each year of studying. In this case
129the **gikl** cycle collapses to the **h** cycle. Students may add
130course tickets whenever they like, but cannot register their course
131list.
132
133
134.. _registration_workflow_batch_processing:
135
136Workflow Batch Processing
137=========================
138
139The :py:class:`StudentProcessor
140<waeup.kofa.students.batching.StudentProcessor>` allows to import
141either workflow states or transitions. As already emphasized in the
142description of the processor class, we refer to them as unsafe and
143safe respectively. Transitions are only possible between allowed
144workflow states. Only transitions ensure that the registration
145workflow is maintained. Setting the workflow state by import is
146considered brute and must be avoided.
147
148
149.. _student_history:
150
151Student History
152===============
153
154All transitions are automatically logged in ``students.log``. And
155also the import of workflow states is recorded in the logfile.
156However, these logfiles can only be accessed by some officers and
157are hidden from students. Since Kofa takes up the cause of
158transparancy, we are of the opinion, that also students must know,
159when and by whom the state of their record was changed. Therefore we
160store all workflow-relevant changes additionally in the student
161history which is attached to the student object. The history is a
162list of messages. Each message contains the local time, the workflow
163transition message and the public name of the user who triggered the
164transition, either online or by import::
165
166  2015-05-16 05:11:34 UTC - Record created by System Admin
167  2015-05-30 07:34:09 UTC - Admitted by System Admin
168  2015-05-30 08:34:11 UTC - Clearance started by John Doe
169  2015-05-30 09:34:15 UTC - Clearance requested by John Doe
170  2015-05-30 10:37:27 UTC - Cleared by Clearance Officer
171
172If the workflow state is set by import, the following message would
173have been added instead::
174
175  2015-05-30 10:37:27 UTC - State 'cleared' set by Import Officer
176
177Student histories are exportable but cannot be imported.
Note: See TracBrowser for help on using the repository browser.