Changeset 11730 for main/waeup.kofa/trunk/src/waeup/kofa/students/export.py
- Timestamp:
- 4 Jul 2014, 07:46:16 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/trunk/src/waeup/kofa/students/export.py
r11702 r11730 92 92 return tickets 93 93 94 def get_payments(students): 95 """Get all payments of `students`. 96 """ 94 def get_payments(students, paid=False, **kw): 95 """Get all payments of `students` within given payment_date period. 96 97 """ 98 date_format = '%d/%m/%Y' 97 99 payments = [] 98 for student in students: 99 for payment in student.get('payments', {}).values(): 100 payments.append(payment) 101 return payments 102 103 def get_paid_payments(students): 104 """Get all paid payments of `students`. 105 """ 106 payments = [] 107 for student in students: 108 for payment in student.get('payments', {}).values(): 109 if payment.p_state == 'paid': 110 payments.append(payment) 100 payments_start = kw.get('payments_start') 101 payments_end = kw.get('payments_end') 102 if payments_start and payments_end: 103 # Payment period given 104 payments_start = datetime.strptime(payments_start, date_format) 105 payments_end = datetime.strptime(payments_end, date_format) 106 if paid: 107 # Only paid tickets in payment period are considered 108 for student in students: 109 for payment in student.get('payments', {}).values(): 110 if payment.p_state == 'paid' and \ 111 payment.payment_date > payments_start and \ 112 payment.payment_date < payments_end: 113 payments.append(payment) 114 else: 115 # All tickets in payment period are considered 116 for student in students: 117 for payment in student.get('payments', {}).values(): 118 if payment.payment_date > payments_start and \ 119 payment.payment_date < payments_end: 120 payments.append(payment) 121 else: 122 # Payment period not given 123 if paid: 124 # Only paid tickets are considered 125 for student in students: 126 for payment in student.get('payments', {}).values(): 127 if payment.p_state == 'paid': 128 payments.append(payment) 129 else: 130 # All tickets are considered 131 for student in students: 132 for payment in student.get('payments', {}).values(): 133 payments.append(payment) 111 134 return payments 112 135 … … 156 179 students.append(ticket.student) 157 180 return list(set(students)) 181 # Payments can be filtered by payment_date. The period boundaries 182 # are not keys of the catalog and must thus be removed from kw. 183 try: 184 del kw['payments_start'] 185 del kw['payments_end'] 186 except KeyError: 187 pass 158 188 query = StudentsQuery(**kw) 159 189 return query.query() … … 316 346 317 347 def filter_func(self, x, **kw): 318 return get_payments(x )348 return get_payments(x, **kw) 319 349 320 350 def mangle_value(self, value, name, context=None): … … 336 366 337 367 def filter_func(self, x, **kw): 338 return get_pa id_payments(x)368 return get_payments(x, paid=True, **kw) 339 369 340 370 #: Fieldnames considered by this exporter
Note: See TracChangeset for help on using the changeset viewer.