Ignore:
Timestamp:
23 Apr 2015, 12:33:51 (10 years ago)
Author:
Henrik Bettermann
Message:

More docs.

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  
    7878
    7979class ApplicantProcessor(BatchProcessor):
    80     """The Applicant Processor imports application records (applicants).
     80    """The Applicant Processor imports application data (applicants).
    8181
    8282    In create mode `container_code` is required. If `application_number` is
  • main/waeup.kofa/trunk/src/waeup/kofa/students/batching.py

    r12869 r12872  
    5151
    5252class 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!**
    5474    """
    5575    grok.implements(IBatchProcessor)
     
    397417
    398418class 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.
    400453    """
    401454    grok.implements(IBatchProcessor)
     
    465518    def checkUpdateRequirements(self, obj, row, site):
    466519        """Checks requirements the object must fulfill when being updated.
    467 
    468520        Returns error messages as strings in case of requirement
    469521        problems.
     
    494546
    495547class 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.
    497552    """
    498553    grok.implements(IBatchProcessor)
     
    561616        errs, inv_errs, conv_dict = super(
    562617            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.
    566618        try:
    567619            level = int(row['level'])
Note: See TracChangeset for help on using the changeset viewer.