Changeset 16827 for main/waeup.kofa/trunk/src/waeup/kofa/students/export.py
- Timestamp:
- 22 Feb 2022, 12:48:36 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/trunk/src/waeup/kofa/students/export.py
r16812 r16827 41 41 return stud_filter.query() 42 42 43 def get_studycourses(students ):43 def get_studycourses(students, previous=0): 44 44 """Get studycourses of `students`. 45 45 """ 46 return [x.get('studycourse', None) for x in students 47 if x is not None] 48 49 def get_levels(students, **kw): 46 studycourse = 'studycourse' 47 if previous == 1: 48 studycourse = 'studycourse_1' 49 elif previous == 2: 50 studycourse = 'studycourse_2' 51 for x in students: 52 if x.get(studycourse, None) is None: 53 continue 54 yield x.get(studycourse, None) 55 56 def get_levels(students, previous=0, **kw): 50 57 """Get all studylevels of `students`. 51 58 """ 52 59 levels = [] 53 60 level_session = kw.get('level_session', None) 54 for course in get_studycourses(students ):61 for course in get_studycourses(students, previous): 55 62 for level in course.values(): 56 63 if level_session not in ('all', None) and \ … … 60 67 return levels 61 68 62 def get_tickets(students, **kw):69 def get_tickets(students, previous=0, **kw): 63 70 """Get course tickets of `students`. 64 71 If code is passed through, filter course tickets … … 78 85 ct_semester = kw.get('ct_semester', None) 79 86 if code is None: 80 for level_obj in get_levels(students, **kw):87 for level_obj in get_levels(students, previous, **kw): 81 88 for ticket in level_obj.values(): 82 89 if ct_level not in ('all', None): … … 95 102 tickets.append(ticket) 96 103 else: 97 for level_obj in get_levels(students, **kw):104 for level_obj in get_levels(students, previous, **kw): 98 105 for ticket in level_obj.values(): 99 106 if ticket.code != code: … … 112 119 return tickets 113 120 114 def get_tickets_for_lecturer(students, **kw):121 def get_tickets_for_lecturer(students, previous=0, **kw): 115 122 """Get course tickets of `students`. 116 123 Filter course tickets which belong to this course code and … … 122 129 level_session = kw.get('session', None) 123 130 level = kw.get('level', None) 124 for level_obj in get_levels(students, **kw):131 for level_obj in get_levels(students, previous, **kw): 125 132 for ticket in level_obj.values(): 126 133 if ticket.code != code: … … 428 435 value, name, context=context) 429 436 437 class FirstStudentStudyCourseExporter(StudentStudyCourseExporter): 438 """The First Student Study Course Exporter exports the first 439 study course if student was transferred. 440 """ 441 grok.name('studentstudycourses_1') 442 443 title = _(u'First Student Study Courses (Data Backup)') 444 445 def filter_func(self, x, **kw): 446 return get_studycourses(x, 1) 447 448 class SecondStudentStudyCourseExporter(StudentStudyCourseExporter): 449 """The Second Student Study Course Exporter exports the second 450 study course if student was transferred twice. 451 """ 452 grok.name('studentstudycourses_2') 453 454 title = _(u'Second Student Study Courses (Data Backup)') 455 456 def filter_func(self, x, **kw): 457 return get_studycourses(x, 2) 430 458 431 459 class StudentStudyLevelExporter(grok.GlobalUtility, StudentExporterBase): … … 456 484 value, name, context=context) 457 485 486 class FirstStudentStudyLevelExporter(StudentStudyLevelExporter): 487 """The First Student Study Level Exporter exports study levels of the 488 first study course if the student was transferred. 489 """ 490 grok.name('studentstudylevels_1') 491 492 title = _(u'First Course Student Study Levels (Data Backup)') 493 494 def filter_func(self, x, **kw): 495 return get_levels(x, 1, **kw) 496 497 class SecondStudentStudyLevelExporter(StudentStudyLevelExporter): 498 """The Second Student Study Level Exporter exports study levels of the 499 second tudy course if the student was transferred twice. 500 """ 501 grok.name('studentstudylevels_2') 502 503 title = _(u'Second Course Student Study Levels (Data Backup)') 504 505 def filter_func(self, x, **kw): 506 return get_levels(x, 2, **kw) 507 458 508 class CourseTicketExporter(grok.GlobalUtility, StudentExporterBase): 459 509 """The Course Ticket Exporter exports course tickets. Usually, … … 490 540 CourseTicketExporter, self).mangle_value( 491 541 value, name, context=context) 542 543 class FirstCourseTicketExporter(CourseTicketExporter): 544 """The First Course Ticket Exporter exports course tickets of 545 first study courses if the student was transferred. 546 """ 547 grok.name('coursetickets_1') 548 549 title = _(u'First Course Course Tickets (Data Backup)') 550 551 def filter_func(self, x, **kw): 552 return get_tickets(x, 1, **kw) 553 554 class SecondCourseTicketExporter(CourseTicketExporter): 555 """The Second Course Ticket Exporter exports course tickets of 556 second study courses if the student was transferred twice. 557 """ 558 grok.name('coursetickets_2') 559 560 title = _(u'Second Course Course Tickets (Data Backup)') 561 562 def filter_func(self, x, **kw): 563 return get_tickets(x, 2, **kw) 492 564 493 565 class StudentPaymentExporter(grok.GlobalUtility, StudentExporterBase):
Note: See TracChangeset for help on using the changeset viewer.