Changeset 12872 for main/waeup.kofa/trunk/src/waeup
- Timestamp:
- 23 Apr 2015, 12:33:51 (10 years ago)
- Location:
- main/waeup.kofa/trunk/src/waeup/kofa
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/trunk/src/waeup/kofa/applicants/batching.py
r12870 r12872 78 78 79 79 class ApplicantProcessor(BatchProcessor): 80 """The Applicant Processor imports application records(applicants).80 """The Applicant Processor imports application data (applicants). 81 81 82 82 In create mode `container_code` is required. If `application_number` is -
main/waeup.kofa/trunk/src/waeup/kofa/students/batching.py
r12869 r12872 51 51 52 52 class StudentProcessor(BatchProcessor): 53 """A batch processor for IStudent objects. 53 """The Student Processor imports student base data. 54 55 In create mode no locator is required. If no `student_id` is given, 56 the portal automatically assigns a new student id. 57 58 In update or remove mode the processor uses 59 either the `student_id`, `reg_number` or `matric_number` to localize the 60 student object, exactly in this order. If `student_id` is given and an 61 object can be found, `reg_number` and `matric_number` will be overwritten 62 by the values provided in the import file. If `student_id` is missing, 63 `reg_number` is used to localize the object and only `matric_number` 64 will be overwritten. `matric_number` is used as locator only if both 65 `student_id` and `reg_number` are missing. `student_id` can't be changed 66 by the batch processor. 67 68 There are two ways to change the registration state of the student, 69 an unsafe and a safe way. The safe way makes use of workflow transitions. 70 Transitions are only possible between allowed workflow states. Only 71 transitions ensure that the registration workflow is maintained. 72 73 **Always prefer the safe way!** 54 74 """ 55 75 grok.implements(IBatchProcessor) … … 397 417 398 418 class StudentStudyCourseProcessor(StudentProcessorBase): 399 """A batch processor for IStudentStudyCourse objects. 419 """The Student Study Course Processor imports data which refer 420 to the student's course of study. The study course container data 421 describe the current state of the course of study and it stores the 422 entry conditions, i.e. when the student started the course. 423 424 Most important is the `certificate` attribute which tells us which course 425 the student is studying. The terms 'study course' and 'course of study' 426 are used synonymously. The 'certificate' is the study programme described 427 in the acadmic section. The study course object stores a referrer to a 428 certificate in the acadmic section. 429 430 When importing a new certificate code, `checkConversion` does not only 431 check whether a certificate with the same code exists, it also 432 proves if `current_level` is inside the level range of the certificate. 433 For example, some study programmes start at level 200. The imported 434 current level must thus be 200 or higher. 435 436 `checkUpdateRequirements` looks up if the imported values match the 437 certificate already stored with the study course object. The imported 438 `current_level` must be in the range of the certificate already 439 stored. 440 441 .. note:: 442 443 The processor does only offer an update mode. An 'empty' study course 444 object is automatically created when the student object is added. So this 445 object always exists. It can neither be added a second time nor 446 be removed. 447 448 Students can be transferred by import. A transfer is initialized if the 449 `entry_mode` value is ``transfer``. In this case `checkConversion` uses a 450 different interface for data validation and `checkUpdateRequirements` 451 ensures that a student can only be transferred twice. The student transfer 452 process is described elsewhere. 400 453 """ 401 454 grok.implements(IBatchProcessor) … … 465 518 def checkUpdateRequirements(self, obj, row, site): 466 519 """Checks requirements the object must fulfill when being updated. 467 468 520 Returns error messages as strings in case of requirement 469 521 problems. … … 494 546 495 547 class StudentStudyLevelProcessor(StudentProcessorBase): 496 """A batch processor for IStudentStudyLevel objects. 548 """The Student Study Level Processor imports study level data. 549 It overwrites the container attributes but not the content of the container, 550 i.e. the course tickets stored inside the container. There is nothing 551 special about this processor. 497 552 """ 498 553 grok.implements(IBatchProcessor) … … 561 616 errs, inv_errs, conv_dict = super( 562 617 StudentStudyLevelProcessor, self).checkConversion(row, mode=mode) 563 564 # We have to check if level is a valid integer.565 # This is not done by the converter.566 618 try: 567 619 level = int(row['level'])
Note: See TracChangeset for help on using the changeset viewer.