source: main/waeup.aaue/trunk/src/waeup/aaue/students/export.py @ 14066

Last change on this file since 14066 was 13963, checked in by Henrik Bettermann, 8 years ago

Resolve ticket #228:

  1. The first column should be the Serial number.
  2. Under the column for Full name, surname should come first in capital letter with a coma before the other names.
  3. The heading for ‘score’ column should be renamed ‘exam score’.
  4. CA column should come before exam score column
  5. The column for Total should be added after exam score column.
  6. Extra column for letter grade should come after the ‘total’ column.
  • Property svn:keywords set to Id
File size: 3.4 KB
Line 
1## $Id: export.py 13963 2016-06-21 06:30:07Z henrik $
2##
3## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
4## This program is free software; you can redistribute it and/or modify
5## it under the terms of the GNU General Public License as published by
6## the Free Software Foundation; either version 2 of the License, or
7## (at your option) any later version.
8##
9## This program is distributed in the hope that it will be useful,
10## but WITHOUT ANY WARRANTY; without even the implied warranty of
11## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12## GNU General Public License for more details.
13##
14## You should have received a copy of the GNU General Public License
15## along with this program; if not, write to the Free Software
16## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17##
18"""Exporters for student related stuff.
19"""
20from waeup.kofa.utils.batching import ExporterBase
21from waeup.kofa.utils.helpers import iface_names
22from waeup.kofa.students.export import DataForLecturerExporter
23from waeup.aaue.students.interfaces import (
24    ICustomStudent, ICustomStudentStudyCourse,
25    ICustomStudentStudyLevel,
26    ICustomCourseTicket,
27    ICustomStudentOnlinePayment)
28from kofacustom.nigeria.students.export import (
29    NigeriaStudentExporter, NigeriaStudentStudyCourseExporter,
30    NigeriaStudentStudyLevelExporter,
31    NigeriaCourseTicketExporter, NigeriaStudentPaymentExporter)
32
33
34class CustomStudentExporter(NigeriaStudentExporter):
35    """Exporter for Students.
36    """
37
38    fields = tuple(sorted(iface_names(
39        ICustomStudent, omit=['loggerInfo']))) + (
40        'password', 'state', 'history', 'certcode', 'is_postgrad',
41        'current_level', 'current_session')
42
43class CustomStudentStudyCourseExporter(NigeriaStudentStudyCourseExporter):
44    """Exporter for StudentStudyCourses.
45    """
46
47    fields = tuple(
48        sorted(iface_names(ICustomStudentStudyCourse))) + ('student_id',)
49
50class CustomCourseTicketExporter(NigeriaCourseTicketExporter):
51    """Exporter for CourseTickets.
52    """
53
54    fields = tuple(sorted(iface_names(ICustomCourseTicket) +
55        ['level', 'code', 'level_session'])) + ('student_id',
56        'certcode', 'display_fullname', 'matric_number')
57
58    def mangle_value(self, value, name, context=None):
59        """The mangler determines the student's id and fullname.
60        """
61        if context is not None:
62            student = context.student
63            if name in ('student_id', 'display_fullname', 'matric_number') \
64                and student is not None:
65                value = getattr(student, name, None)
66        return ExporterBase().mangle_value(value, name, context=context)
67
68class CustomStudentStudyLevelExporter(NigeriaStudentStudyLevelExporter):
69    """Exporter for StudentStudyLevels.
70    """
71    #: Fieldnames considered by this exporter
72    fields = tuple(sorted(iface_names(
73        ICustomStudentStudyLevel))) + (
74        'student_id', 'number_of_tickets','certcode')
75
76class CustomStudentPaymentExporter(NigeriaStudentPaymentExporter):
77    """Exporter for OnlinePayment instances.
78    """
79
80    fields = tuple(
81        sorted(iface_names(
82            ICustomStudentOnlinePayment, exclude_attribs=False,
83            omit=['display_item']))) + (
84            'student_id','state','current_session')
85
86class CustomDataForLecturerExporter(DataForLecturerExporter):
87    """
88    """
89
90    fields = ('matric_number', 'student_id',
91              'level', 'code', 'level_session', 'ca', 'score')
92
Note: See TracBrowser for help on using the repository browser.