source: WAeUP_Doc/NewDocumentation/ImportData.html @ 3625

Last change on this file since 3625 was 3514, checked in by Henrik Bettermann, 17 years ago
File size: 15.0 KB
Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
7<title></title>
8<style type="text/css">
9
10/*
11:Author: David Goodger
12:Contact: goodger@users.sourceforge.net
13:Date: $Date: 2005-12-18 01:56:14 +0100 (Sun, 18 Dec 2005) $
14:Revision: $Revision: 4224 $
15:Copyright: This stylesheet has been placed in the public domain.
16
17Default cascading style sheet for the HTML output of Docutils.
18
19See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
20customize this style sheet.
21*/
22
23/* used to remove borders from tables and images */
24.borderless, table.borderless td, table.borderless th {
25  border: 0 }
26
27table.borderless td, table.borderless th {
28  /* Override padding for "table.docutils td" with "! important".
29     The right padding separates the table cells. */
30  padding: 0 0.5em 0 0 ! important }
31
32.first {
33  /* Override more specific margin styles with "! important". */
34  margin-top: 0 ! important }
35
36.last, .with-subtitle {
37  margin-bottom: 0 ! important }
38
39.hidden {
40  display: none }
41
42a.toc-backref {
43  text-decoration: none ;
44  color: black }
45
46blockquote.epigraph {
47  margin: 2em 5em ; }
48
49dl.docutils dd {
50  margin-bottom: 0.5em }
51
52/* Uncomment (and remove this text!) to get bold-faced definition list terms
53dl.docutils dt {
54  font-weight: bold }
55*/
56
57div.abstract {
58  margin: 2em 5em }
59
60div.abstract p.topic-title {
61  font-weight: bold ;
62  text-align: center }
63
64div.admonition, div.attention, div.caution, div.danger, div.error,
65div.hint, div.important, div.note, div.tip, div.warning {
66  margin: 2em ;
67  border: medium outset ;
68  padding: 1em }
69
70div.admonition p.admonition-title, div.hint p.admonition-title,
71div.important p.admonition-title, div.note p.admonition-title,
72div.tip p.admonition-title {
73  font-weight: bold ;
74  font-family: sans-serif }
75
76div.attention p.admonition-title, div.caution p.admonition-title,
77div.danger p.admonition-title, div.error p.admonition-title,
78div.warning p.admonition-title {
79  color: red ;
80  font-weight: bold ;
81  font-family: sans-serif }
82
83/* Uncomment (and remove this text!) to get reduced vertical space in
84   compound paragraphs.
85div.compound .compound-first, div.compound .compound-middle {
86  margin-bottom: 0.5em }
87
88div.compound .compound-last, div.compound .compound-middle {
89  margin-top: 0.5em }
90*/
91
92div.dedication {
93  margin: 2em 5em ;
94  text-align: center ;
95  font-style: italic }
96
97div.dedication p.topic-title {
98  font-weight: bold ;
99  font-style: normal }
100
101div.figure {
102  margin-left: 2em ;
103  margin-right: 2em }
104
105div.footer, div.header {
106  clear: both;
107  font-size: smaller }
108
109div.line-block {
110  display: block ;
111  margin-top: 1em ;
112  margin-bottom: 1em }
113
114div.line-block div.line-block {
115  margin-top: 0 ;
116  margin-bottom: 0 ;
117  margin-left: 1.5em }
118
119div.sidebar {
120  margin-left: 1em ;
121  border: medium outset ;
122  padding: 1em ;
123  background-color: #ffffee ;
124  width: 40% ;
125  float: right ;
126  clear: right }
127
128div.sidebar p.rubric {
129  font-family: sans-serif ;
130  font-size: medium }
131
132div.system-messages {
133  margin: 5em }
134
135div.system-messages h1 {
136  color: red }
137
138div.system-message {
139  border: medium outset ;
140  padding: 1em }
141
142div.system-message p.system-message-title {
143  color: red ;
144  font-weight: bold }
145
146div.topic {
147  margin: 2em }
148
149h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
150h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
151  margin-top: 0.4em }
152
153h1.title {
154  text-align: center }
155
156h2.subtitle {
157  text-align: center }
158
159hr.docutils {
160  width: 75% }
161
162img.align-left {
163  clear: left }
164
165img.align-right {
166  clear: right }
167
168ol.simple, ul.simple {
169  margin-bottom: 1em }
170
171ol.arabic {
172  list-style: decimal }
173
174ol.loweralpha {
175  list-style: lower-alpha }
176
177ol.upperalpha {
178  list-style: upper-alpha }
179
180ol.lowerroman {
181  list-style: lower-roman }
182
183ol.upperroman {
184  list-style: upper-roman }
185
186p.attribution {
187  text-align: right ;
188  margin-left: 50% }
189
190p.caption {
191  font-style: italic }
192
193p.credits {
194  font-style: italic ;
195  font-size: smaller }
196
197p.label {
198  white-space: nowrap }
199
200p.rubric {
201  font-weight: bold ;
202  font-size: larger ;
203  color: maroon ;
204  text-align: center }
205
206p.sidebar-title {
207  font-family: sans-serif ;
208  font-weight: bold ;
209  font-size: larger }
210
211p.sidebar-subtitle {
212  font-family: sans-serif ;
213  font-weight: bold }
214
215p.topic-title {
216  font-weight: bold }
217
218pre.address {
219  margin-bottom: 0 ;
220  margin-top: 0 ;
221  font-family: serif ;
222  font-size: 100% }
223
224pre.literal-block, pre.doctest-block {
225  margin-left: 2em ;
226  margin-right: 2em ;
227  background-color: #eeeeee }
228
229span.classifier {
230  font-family: sans-serif ;
231  font-style: oblique }
232
233span.classifier-delimiter {
234  font-family: sans-serif ;
235  font-weight: bold }
236
237span.interpreted {
238  font-family: sans-serif }
239
240span.option {
241  white-space: nowrap }
242
243span.pre {
244  white-space: pre }
245
246span.problematic {
247  color: red }
248
249span.section-subtitle {
250  /* font-size relative to parent (h1..h6 element) */
251  font-size: 80% }
252
253table.citation {
254  border-left: solid 1px gray;
255  margin-left: 1px }
256
257table.docinfo {
258  margin: 2em 4em }
259
260table.docutils {
261  margin-top: 0.5em ;
262  margin-bottom: 0.5em }
263
264table.footnote {
265  border-left: solid 1px black;
266  margin-left: 1px }
267
268table.docutils td, table.docutils th,
269table.docinfo td, table.docinfo th {
270  padding-left: 0.5em ;
271  padding-right: 0.5em ;
272  vertical-align: top }
273
274table.docutils th.field-name, table.docinfo th.docinfo-name {
275  font-weight: bold ;
276  text-align: left ;
277  white-space: nowrap ;
278  padding-left: 0 }
279
280h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
281h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
282  font-size: 100% }
283
284tt.docutils {
285  background-color: #eeeeee }
286
287ul.auto-toc {
288  list-style-type: none }
289
290</style>
291</head>
292<body>
293<div class="document">
294<div class="section">
295<h1><a id="import-of-data-into-the-portal" name="import-of-data-into-the-portal">Import of data into the portal</a></h1>
296<div class="section">
297<h2><a id="general-procedure" name="general-procedure">General procedure</a></h2>
298<p>A record is read from the input source file located in the import folder of the Zope instance (or uploaded by the upload manager in the Upload Section). The data format is validated against the import data layout selected. If the record can be imported, it is appended to the file [layout]_imported.csv (in the same folder), otherwise it's appended to [layout]_pending.csv, if no record with exactly the same data already exists. Technically speaking, the md5-digests of the new record is being compared with the existing records.</p>
299<p>The report files have four additional columns: imported_by (the member who did the import), import_date, import_from (input source file name) and error (error message).</p>
300<p>The following import modes are recognized: edit, create and remove. The latter deletes the whole record. This mode is available for course results only.</p>
301<p>Single fields can be cleared in edit mode by inserting 'XXX' in the respective field. Empty fields are ignored.</p>
302<p>The following import layouts are available:</p>
303</div>
304</div>
305<div class="section">
306<h1><a id="student-section" name="student-section">1. Student Section</a></h1>
307<div class="section">
308<h2><a id="import-application" name="import-application">import_application</a></h2>
309<p>This data layout is meant for updating the applicants_catalog which is completely separated from the object-based part of the portal. An important role has the field 'status'. It should be either 'admitted', 'not admitted' or empty. If student objects have already been created, the status field can no longer be modified. If student_id and matric_no are specified, it is checked, if the student_id and matric_no belong to the same student.</p>
310<pre class="literal-block">
311import_mode        String
312course1            String
313course2            String
314course3a           String
315course_admitted    String
316department         String
317faculty            String
318firstname          String
319eng_score          Int
320subj1              Int
321subj1score         Int
322subj2              Int
323subj2score         Int
324subj3              Int
325subj3score         Int
326aggregate          Int
327lastname           String
328middlenames        String
329email              String
330phone              String
331pin                String
332reg_no             String
333date_of_birth      DateTime
334jamb_age           String
335jamb_state         String
336jamb_lga           String
337application_date   DateTime
338sex                Boolean
339lga                String
340screening_date     DateTime
341screening_type     String
342passport           String
343status             String
344screening_venue    String
345aos                String
346screening_score    String
347notice             String
348student_id         String
349fst_sit_fname      String
350fst_sit_no         String
351fst_sit_date       DateTime
352fst_sit_type       String
353fst_sit_results    StringList
354scd_sit_fname      String
355scd_sit_no         String
356scd_sit_date       DateTime
357scd_sit_type       String
358scd_sit_results    StringList
359hq_type            String
360hq_grade           String
361hq_school          String
362hq_matric_no       String
363hq_session         String
364hq_disc            String
365serial             String
366</pre>
367</div>
368<div class="section">
369<h2><a id="import-student" name="import-student">import_student</a></h2>
370<p>This is the most powerful import layout. It's a brute-force method which can be used to create student objects or to overwrite existing student objects (and the associated records in the students_catalog). The reg_transition can be either 'admit' or 'return'. The students will be in state admitted or returning respectively. Don't use this method to import current verdicts. Use the import_verdict layout instead.</p>
371<pre class="literal-block">
372id                 String
373import_mode        String
374reg_transition     String
375firstname          String
376middlename         String
377lastname           String
378sex                String
379birthday           String
380matric_no          String
381jamb_reg_no        String
382entry_mode         String
383entry_session      String
384jamb_score         Int
385jamb_age           String
386jamb_lga           String
387jamb_state         String
388jamb_sex           String
389lga                String
390state              String
391study_course       String
392nationality        String
393lga                String
394phone              String
395email              String
396app_email          String
397current_level      String
398current_session    String
399current_verdict    String
400previous_verdict   String
401current_mode       String
402perm_address       String
403</pre>
404</div>
405<div class="section">
406<h2><a id="import-student-study-level" name="import-student-study-level">import_student_study_level</a></h2>
407<p>This layout can be used to create or overwrite old study levels and to import their verdicts. The field 'code' corresponds with the study level. It can be either '000', '100', ..., '900'.</p>
408<pre class="literal-block">
409import_mode        String
410id                 String
411matric_no          String
412code               String
413session            String
414verdict            String
415validated_by       String
416validation_date    DateTime
417</pre>
418</div>
419<div class="section">
420<h2><a id="import-verdict" name="import-verdict">import_verdict</a></h2>
421<p>The import_verdict layout should be used to import the current verdict, i.e. the verdict of the current session and current level. This layout is special. It does not only import data but also performs a workflow transition. The student must be in state 'courses_validated' (all other states will be rejected) and will be moved to state 'return'.</p>
422<pre class="literal-block">
423import_mode        String
424id                 String
425matric_no          String
426current_level      String
427current_session    String
428current_verdict    String
429</pre>
430</div>
431<div class="section">
432<h2><a id="course-result" name="course-result">course_result</a></h2>
433<p>This layout creates or edits course results. The 'create' mode should only be used in old levels rather than in current levels which have been validated by course advisers. Creating course results in validated course lists is possible but counteracts the whole course registration policy.</p>
434<pre class="literal-block">
435import_mode        String
436id                 String
437matric_no          String
438code               String
439session_id         String
440level_id           String
441credits            Int
442score              String
443grade              String
444carry_over         Boolean
445core_or_elective   Boolean
446semester           Int
447</pre>
448</div>
449</div>
450<div class="section">
451<h1><a id="academic-section" name="academic-section">2. Academic Section</a></h1>
452<p>The following import layouts can be used to create or edit faculties, departments, certificates, certificates courses and or course objects respectively. There are quite a few dependencies which result from the nature of the academic section. For example, a certificate can only be created, if the respective department exists.</p>
453<div class="section">
454<h2><a id="import-faculty" name="import-faculty">import_faculty</a></h2>
455<pre class="literal-block">
456import_mode        String
457code               String
458title              String
459title_prefix       String
460</pre>
461</div>
462<div class="section">
463<h2><a id="import-department" name="import-department">import_department</a></h2>
464<pre class="literal-block">
465import_mode        String
466code               String
467faculty_code       String
468title              String
469title_prefix       String
470</pre>
471</div>
472<div class="section">
473<h2><a id="certificate" name="certificate">certificate</a></h2>
474<pre class="literal-block">
475import_mode        String
476title              String
477admin_status       String
478category           String
479department_code    String
480code               String
481end_level          String
482max_load           Int
483max_pass           Int
484nr_years           Int
485probation_credits  Int
486promotion_credits  Int
487start_level        String
488study_mode         String
489application_category  String
490</pre>
491</div>
492<div class="section">
493<h2><a id="certificate-course" name="certificate-course">certificate_course</a></h2>
494<pre class="literal-block">
495import_mode        String
496code               String
497certificate_code   String
498level              String
499core_or_elective   Boolean
500</pre>
501</div>
502<div class="section">
503<h2><a id="course" name="course">course</a></h2>
504<pre class="literal-block">
505import_mode        String
506title              String
507department_code    String
508code               String
509credits            Int
510passmark           Int
511semester           Int
512level              String
513</pre>
514</div>
515</div>
516</div>
517</body>
518</html>
Note: See TracBrowser for help on using the repository browser.