Changeset 18098


Ignore:
Timestamp:
28 Jun 2025, 17:02:33 (4 hours ago)
Author:
Henrik Bettermann
Message:

Customize DataForLecturerExporter?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.uniben/trunk/src/waeup/uniben/students/export.py

    r17929 r18098  
    4141    )
    4242from waeup.kofa.students.export import (
    43     SchoolFeePaymentsOverviewExporter, StudentExporterBase)
     43    get_tickets_for_lecturer,
     44    SchoolFeePaymentsOverviewExporter,
     45    StudentExporterBase,
     46    DataForLecturerExporter)
    4447from waeup.kofa.utils.helpers import iface_names
    4548
     
    151154            'entry_session', 'entry_mode',
    152155            'faccode', 'depcode','certcode')
     156
     157class CustomDataForLecturerExporter(DataForLecturerExporter):
     158    """
     159    """
     160
     161    fields = ('matric_number', 'student_id', 'display_fullname',
     162              'level', 'code', 'level_session',
     163              'ca', 'exam',
     164              'score',
     165              )
     166
     167    def filter_func(self, x, **kw):
     168        tickets = get_tickets_for_lecturer(x, **kw)
     169        return sorted([ticket for ticket in tickets],
     170            key=lambda ticket: str(ticket.fcode) + str(ticket.dcode)
     171                + str(ticket.certcode)
     172                + str(ticket.student.matric_number))
     173
     174    def mangle_value(self, value, name, context=None):
     175        """The mangler determines the student's id and fullname.
     176        """
     177        if context is not None:
     178            student = context.student
     179            if name in ('matric_number',
     180                        'reg_number',
     181                        'student_id',
     182                        'display_fullname',) and student is not None:
     183                value = getattr(student, name, None)
     184            if name in ('ca','exam',):
     185                value =''
     186        return super(
     187            DataForLecturerExporter, self).mangle_value(
     188            value, name, context=context)
    153189
    154190class CustomSchoolFeePaymentsOverviewExporter(SchoolFeePaymentsOverviewExporter):
Note: See TracChangeset for help on using the changeset viewer.