Import of data into the portal ++++++++++++++++++++++++++++++ General procedure ----------------- 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. 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). The following import modes are recognized: edit, create and remove. The latter deletes the whole record. This mode is available for course results only. Single fields can be cleared in edit mode by inserting 'XXX' in the respective field. Empty fields are ignored. The following import layouts are available: 1. Student Section ++++++++++++++++++ import_application ------------------ 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. :: import_mode String course1 String course2 String course3a String course_admitted String department String faculty String firstname String eng_score Int subj1 Int subj1score Int subj2 Int subj2score Int subj3 Int subj3score Int aggregate Int lastname String middlenames String email String phone String pin String reg_no String date_of_birth DateTime jamb_age String jamb_state String jamb_lga String application_date DateTime sex Boolean lga String screening_date DateTime screening_type String passport String status String screening_venue String aos String screening_score String notice String student_id String fst_sit_fname String fst_sit_no String fst_sit_date DateTime fst_sit_type String fst_sit_results StringList scd_sit_fname String scd_sit_no String scd_sit_date DateTime scd_sit_type String scd_sit_results StringList hq_type String hq_grade String hq_school String hq_matric_no String hq_session String hq_disc String serial String import_student -------------- 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. :: id String import_mode String reg_transition String firstname String middlename String lastname String sex String birthday String matric_no String jamb_reg_no String entry_mode String entry_session String jamb_score Int jamb_age String jamb_lga String jamb_state String jamb_sex String lga String state String study_course String nationality String lga String phone String email String app_email String current_level String current_session String current_verdict String previous_verdict String current_mode String perm_address String import_student_study_level -------------------------- 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'. :: import_mode String id String matric_no String code String session String verdict String validated_by String validation_date DateTime import_verdict -------------- 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'. :: import_mode String id String matric_no String current_level String current_session String current_verdict String course_result ------------- 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. :: import_mode String id String matric_no String code String session_id String level_id String credits Int score String grade String carry_over Boolean core_or_elective Boolean semester Int 2. Academic Section +++++++++++++++++++ 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. import_faculty -------------- :: import_mode String code String title String title_prefix String import_department ----------------- :: import_mode String code String faculty_code String title String title_prefix String certificate ----------- :: import_mode String title String admin_status String category String department_code String code String end_level String max_load Int max_pass Int nr_years Int probation_credits Int promotion_credits Int start_level String study_mode String application_category String certificate_course ------------------ :: import_mode String code String certificate_code String level String core_or_elective Boolean course ------ :: import_mode String title String department_code String code String credits Int passmark Int semester Int level String