source: main/waeup.aaue/trunk/src/waeup/aaue/students/batching.py @ 15482

Last change on this file since 15482 was 15226, checked in by Henrik Bettermann, 6 years ago

Add imported_ts (total score) field and override total_score if imported.

  • Property svn:keywords set to Id
File size: 2.9 KB
RevLine 
[7525]1## $Id: batching.py 15226 2018-11-09 13:35:24Z henrik $
2##
3## Copyright (C) 2012 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"""Batch processing components for student objects.
19
20Batch processors eat CSV files to add, update or remove large numbers
21of certain kinds of objects at once.
22
23Here we define the processors for students specific objects like
24students, studycourses, payment tickets and accommodation tickets.
25"""
[8444]26from waeup.aaue.students.interfaces import (
[8583]27    ICustomStudent, ICustomStudentUpdateByRegNo,
[8911]28    ICustomStudentUpdateByMatricNo,
[13865]29    ICustomStudentOnlinePayment,
30    ICustomCourseTicketImport,
[14206]31    ICustomStudentStudyLevel,
32    ICustomStudentStudyCourse
[7525]33    )
[8911]34from waeup.kofa.students.batching import (
[13865]35    StudentProcessor, StudentOnlinePaymentProcessor,
[14206]36    StudentStudyLevelProcessor,
37    StudentStudyCourseProcessor,
[13865]38    CourseTicketProcessor)
[7525]39
[8204]40class CustomStudentProcessor(StudentProcessor):
[8911]41    """A batch processor for ICustomStudent objects.
[7525]42    """
[8204]43    iface = ICustomStudent
[8583]44    iface_byregnumber = ICustomStudentUpdateByRegNo
45    iface_bymatricnumber = ICustomStudentUpdateByMatricNo
[8911]46
47class CustomStudentOnlinePaymentProcessor(StudentOnlinePaymentProcessor):
48    """A batch processor for ICustomStudentOnlinePayment objects.
49    """
50    iface = ICustomStudentOnlinePayment
[13865]51
[14206]52class CustomStudentStudyCourseProcessor(StudentStudyCourseProcessor):
53    """
54    """
55    iface = ICustomStudentStudyCourse
56
57class CustomStudentStudyLevelProcessor(StudentStudyLevelProcessor):
58    """
59    """
60    iface = ICustomStudentStudyLevel
61
[14624]62    @property
63    def available_fields(self):
64        fields = super(CustomStudentStudyLevelProcessor, self).available_fields
65        fields.remove('total_credits_s1')
66        fields.remove('total_credits_s2')
67        return  fields
68
[13865]69class CustomCourseTicketProcessor(CourseTicketProcessor):
70    """A batch processor for ICourseTicket objects.
71    """
72    iface = ICustomCourseTicketImport
73
74    @property
75    def available_fields(self):
76        fields = [
77            'student_id','reg_number','matric_number',
78            'mandatory', 'score', 'ca', 'carry_over', 'automatic',
[14653]79            'level_session', 'outstanding', 'course_category',
[15226]80            'title', 'credits', 'passmark', 'semester', 'ticket_session',
81            'imported_ts'
[13865]82            ] + self.additional_fields
83        return sorted(fields)
Note: See TracBrowser for help on using the repository browser.