Ignore:
Timestamp:
17 Apr 2015, 14:43:42 (9 years ago)
Author:
Henrik Bettermann
Message:

More documentation.

Location:
main/waeup.kofa/trunk/src/waeup/kofa
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/trunk/src/waeup/kofa/applicants/export.py

    r12859 r12861  
    6464
    6565class ApplicantExporter(grok.GlobalUtility, ExporterBase):
    66     """The Applicant Exporter exports all application records (= applicants)
     66    """The Applicant Exporter exports application records (= applicants)
    6767    stored in the database. In contrast to the exporters in the academics
    6868    section this exporter does not iterate over the items of containers
    69     but searches the Applicants Catalog instead.
     69    but searches the :class:`ApplicantsCatalog` instead.
     70
     71    The exporter exports all applicants if started in the Data Center
     72    which means in the context of the `DataCenter` object. The exporter can also
     73    be started 'locally' which means in the context of an `ApplicantsContainer`
     74    container. Then the :meth:`export_filtered()` instead of the
     75    :meth:`export_all()` method is applied which searches for applicants
     76    in the respective container.
    7077    """
    7178    grok.implements(ICSVExporter)
     
    98105    def export(self, applicants, filepath=None):
    99106        """Export `applicants`, an iterable, as CSV file.
    100 
    101107        If `filepath` is ``None``, a raw string with CSV data is returned.
    102108        """
     
    107113
    108114    def export_all(self, site, filepath=None):
    109         """Export applicants into filepath as CSV data.
    110 
     115        """Export all applicants into filepath as CSV data.
    111116        If `filepath` is ``None``, a raw string with CSV data is returned.
    112117        """
     
    122127
    123128    def export_filtered(self, site, filepath=None, **kw):
    124         """Export applicants in container.
    125 
     129        """Export filtered applicants in container denoted by keywords (`kw`).
    126130        If `filepath` is ``None``, a raw string with CSV data should
    127131        be returned.
  • main/waeup.kofa/trunk/src/waeup/kofa/students/export.py

    r12568 r12861  
    5656def get_tickets(students, **kw):
    5757    """Get course tickets of `students`.
    58 
    5958    If code is passed through, filter course tickets
    6059    which belong to this course code and meets level
     
    8988def get_payments(students, paid=False, **kw):
    9089    """Get all payments of `students` within given payment_date period.
    91 
    9290    """
    9391    date_format = '%d/%m/%Y'
     
    146144class StudentExporterBase(ExporterBase):
    147145    """Exporter for students or related objects.
    148 
    149146    This is a baseclass.
    150147    """
     
    158155    def get_filtered(self, site, **kw):
    159156        """Get students from a catalog filtered by keywords.
    160 
    161157        students_catalog is the default catalog. The keys must be valid
    162158        catalog index names.
     
    192188    def get_selected(self, site, selected):
    193189        """Get set of selected students.
    194 
    195190        Returns a simple empty list or a list with `Student`
    196191        objects.
     
    206201    def export(self, values, filepath=None):
    207202        """Export `values`, an iterable, as CSV file.
    208 
    209203        If `filepath` is ``None``, a raw string with CSV data is returned.
    210204        """
     
    216210    def export_all(self, site, filepath=None):
    217211        """Export students into filepath as CSV data.
    218 
    219212        If `filepath` is ``None``, a raw string with CSV data is returned.
    220213        """
     
    226219    def export_filtered(self, site, filepath=None, **kw):
    227220        """Export items denoted by `kw`.
    228 
    229221        If `filepath` is ``None``, a raw string with CSV data should
    230222        be returned.
     
    242234
    243235class StudentExporter(grok.GlobalUtility, StudentExporterBase):
    244     """Exporter for Students.
     236    """The Student Exporter first filters the set of students by searching the
     237    students catalog. Then it exports student base data of this set of students.
    245238    """
    246239    grok.name('students')
    247240
    248     #: Fieldnames considered by this exporter
    249241    fields = tuple(sorted(iface_names(IStudent))) + (
    250242        'password', 'state', 'history', 'certcode', 'is_postgrad',
    251243        'current_level', 'current_session')
    252 
    253     #: The title under which this exporter will be displayed
    254244    title = _(u'Students')
    255245
    256246    def mangle_value(self, value, name, context=None):
     247        """The mangler prepares the history messages and adds a hash symbol at
     248        the end of the phone number to avoid annoying automatic number
     249        transformation by Excel or Calc."""
    257250        if name == 'history':
    258251            value = value.messages
     
    267260
    268261class StudentStudyCourseExporter(grok.GlobalUtility, StudentExporterBase):
    269     """Exporter for StudentStudyCourses.
     262    """The Student Study Course Exporter first filters the set of students
     263    by searching the students catalog. Then it exports the data of the current
     264    study course container of each student from this set. It does
     265    not export their content.
    270266    """
    271267    grok.name('studentstudycourses')
    272268
    273     #: Fieldnames considered by this exporter
    274269    fields = tuple(sorted(iface_names(IStudentStudyCourse))) + ('student_id',)
    275 
    276     #: The title under which this exporter will be displayed
    277270    title = _(u'Student Study Courses')
    278271
     
    281274
    282275    def mangle_value(self, value, name, context=None):
    283         """Treat location values special.
     276        """The mangler determines the certificate code and the student id.
    284277        """
    285278        if name == 'certificate' and value is not None:
     
    295288
    296289class StudentStudyLevelExporter(grok.GlobalUtility, StudentExporterBase):
    297     """Exporter for StudentStudyLevels.
     290    """The Student Study Level Exporter first filters the set of students
     291    by searching the students catalog. Then it exports the data of the student's
     292    study level containers but not their content (course tickets).
     293    The exporter iterates over all objects in the students' ``studycourse``
     294    containers.
    298295    """
    299296    grok.name('studentstudylevels')
    300297
    301     #: Fieldnames considered by this exporter
    302298    fields = tuple(sorted(iface_names(
    303299        IStudentStudyLevel) + ['level'])) + (
    304300        'student_id', 'number_of_tickets','certcode')
    305 
    306     #: The title under which this exporter will be displayed
    307301    title = _(u'Student Study Levels')
    308302
     
    311305
    312306    def mangle_value(self, value, name, context=None):
    313         """Treat location values special.
     307        """The mangler determines the student id, nothing else.
    314308        """
    315309        if name == 'student_id' and context is not None:
     
    321315
    322316class CourseTicketExporter(grok.GlobalUtility, StudentExporterBase):
    323     """Exporter for CourseTickets.
     317    """The Course Ticket  Exporter exports course tickets. Usually,
     318    the exporter first filters the set of students by searching the
     319    students catalog. Then it collects and iterates over all ``studylevel``
     320    containers of the filtered student set and finally
     321    iterates over all items inside these containers.
     322
     323    If the course code is passed through, the exporter uses a different
     324    catalog. It searches for students in the course tickets catalog and
     325    exports those course tickets which belong to the given course code and
     326    also meet level and level_session passed through at the same time.
     327    This happens if the exporter is called at course level in the academics
     328    section.
    324329    """
    325330    grok.name('coursetickets')
    326331
    327     #: Fieldnames considered by this exporter
    328332    fields = tuple(sorted(iface_names(ICourseTicket) +
    329333        ['level', 'code', 'level_session'])) + ('student_id',
    330334        'certcode', 'display_fullname')
    331 
    332     #: The title under which this exporter will be displayed
    333335    title = _(u'Course Tickets')
    334336
     
    337339
    338340    def mangle_value(self, value, name, context=None):
    339         """Treat location values special.
     341        """The mangler determines the student's id and fullname.
    340342        """
    341343        if context is not None:
     
    343345            if name in ('student_id', 'display_fullname') and student is not None:
    344346                value = getattr(student, name, None)
    345             #if name == 'level':
    346             #    value = getattr(context, 'level', lambda: None)
    347             #if name == 'level_session':
    348             #    value = getattr(context, 'level_session', lambda: None)
    349347        return super(
    350348            CourseTicketExporter, self).mangle_value(
  • main/waeup.kofa/trunk/src/waeup/kofa/utils/batching.py

    r12857 r12861  
    493493    def close_outfile(self, filepath, outfile):
    494494        """Close outfile.
    495 
    496495        If filepath is None, the contents of outfile is returned.
    497496        """
     
    504503    def get_filtered(self, site, **kw):
    505504        """Get datasets to export filtered by keyword arguments.
    506 
    507505        Returns an iterable.
    508506        """
     
    512510        """Get datasets to export for selected items
    513511        specified by a list of identifiers.
    514 
    515512        Returns an iterable.
    516513        """
     
    519516    def export(self, iterable, filepath=None):
    520517        """Export `iterable` as CSV file.
    521 
    522518        If `filepath` is ``None``, a raw string with CSV data should
    523519        be returned.
     
    528524        """Export all appropriate objects in `site` into `filepath` as
    529525        CSV data.
    530 
    531526        If `filepath` is ``None``, a raw string with CSV data should
    532527        be returned.
     
    535530
    536531    def export_filtered(self, site, filepath=None, **kw):
    537         """Export items denoted by `args` and `kw`.
    538 
     532        """Export items denoted by `kw`.
    539533        If `filepath` is ``None``, a raw string with CSV data should
    540534        be returned.
     
    546540        """Export those items specified by a list of identifiers
    547541        called `selected`.
    548 
    549542        If `filepath` is ``None``, a raw string with CSV data should
    550543        be returned.
Note: See TracChangeset for help on using the changeset viewer.