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