## $Id: export.py 17997 2025-01-29 16:10:23Z henrik $ ## ## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## """Exporters for student related stuff. """ from waeup.kofa.students.export import DataForLecturerExporter from kofacustom.unidel.students.interfaces import ( ICustomStudent, ICustomStudentStudyCourse, ICustomStudentStudyLevel, ICustomCourseTicket, ICustomStudentOnlinePayment) from kofacustom.nigeria.students.export import ( NigeriaStudentExporter, NigeriaStudentStudyCourseExporter, NigeriaStudentStudyLevelExporter, NigeriaCourseTicketExporter, NigeriaStudentPaymentExporter) from waeup.kofa.utils.helpers import iface_names class CustomStudentExporter(NigeriaStudentExporter): """Exporter for Students. """ fields = tuple(sorted(iface_names( ICustomStudent, omit=['loggerInfo']))) + ( 'password', 'state', 'history', 'certcode', 'is_postgrad', 'current_level', 'current_session') class CustomStudentStudyCourseExporter(NigeriaStudentStudyCourseExporter): """Exporter for StudentStudyCourses. """ fields = tuple( sorted(iface_names(ICustomStudentStudyCourse))) + ('student_id',) class CustomStudentStudyLevelExporter(NigeriaStudentStudyLevelExporter): """Exporter for StudentStudyLevels. """ #: Fieldnames considered by this exporter fields = tuple(sorted(iface_names( ICustomStudentStudyLevel))) + ( 'student_id', 'number_of_tickets','certcode') class CustomCourseTicketExporter(NigeriaCourseTicketExporter): """Exporter for CourseTickets. """ fields = tuple(sorted(iface_names(ICustomCourseTicket) + ['level', 'code', 'level_session'])) + ('student_id', 'certcode', 'display_fullname') class CustomStudentPaymentExporter(NigeriaStudentPaymentExporter): """Exporter for OnlinePayment instances. """ fields = tuple( sorted(iface_names( ICustomStudentOnlinePayment, exclude_attribs=False, omit=['display_item']))) + ( 'student_id','state','current_session') class CustomDataForLecturerExporter(DataForLecturerExporter): """The Data for Lecturer Exporter searches for students in the course tickets catalog and exports those course tickets which belong to the given course code, meet level and session passed through at the same time, and which are editable by lecturers (disabled on 10/03/21). This exporter can only be called at course level in the academic section. """ fields = ('matric_number', 'student_id', 'display_fullname', 'faccode', 'certcode', 'state', 'level', 'code', 'level_session', 'score') def mangle_value(self, value, name, context=None): """The mangler determines the student's id and fullname. """ if context is not None: student = context.student if name in ('matric_number', 'reg_number', 'student_id', 'display_fullname', 'faccode', 'certcode', 'state',) and student is not None: value = getattr(student, name, None) return super( DataForLecturerExporter, self).mangle_value( value, name, context=context)