Changeset 14227
- Timestamp:
- 25 Oct 2016, 06:19:20 (8 years ago)
- Location:
- main/waeup.aaue/trunk/src/waeup/aaue
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.aaue/trunk/src/waeup/aaue/locales/en/LC_MESSAGES/waeup.kofa.po
r14152 r14227 137 137 msgid "<b>Credits: ${a}</b>" 138 138 msgstr "<b>Units: ${a}</b>" 139 140 msgid "Course ${a} cannot be registered." 141 msgstr "" 142 "Course ${a} cannot be registered. You have to pay for the 2nd semester first." -
main/waeup.aaue/trunk/src/waeup/aaue/students/studylevel.py
r14206 r14227 28 28 from waeup.kofa.utils.helpers import attrs_to_fields 29 29 from waeup.kofa.interfaces import CREATED 30 from waeup.kofa.students.browser import TicketError 30 31 from waeup.kofa.students.studylevel import ( 31 32 StudentStudyLevel, CourseTicket, … … 160 161 return 'N/A' 161 162 163 def _schoolfeePaymentMade(self): 164 if len(self.student['payments']): 165 for ticket in self.student['payments'].values(): 166 if ticket.p_state == 'paid' and \ 167 ticket.p_category in ( 168 'schoolfee', 'schoolfee_incl', 'schoolfee_2',) and \ 169 ticket.p_session == self.student[ 170 'studycourse'].current_session: 171 return True 172 return False 173 162 174 def addCourseTicket(self, ticket, course): 163 175 """Add a course ticket object. … … 166 178 raise TypeError( 167 179 'StudentStudyLeves contain only ICourseTicket instances') 180 # Raise TicketError if course is in 2nd semester but 181 # schoolfee has not yet been fully paid. 182 if course.semester == 2 and not self._schoolfeePaymentMade(): 183 raise TicketError 168 184 ticket.code = course.code 169 185 ticket.title = course.title … … 179 195 return 180 196 197 def addCertCourseTickets(self, cert): 198 """Collect all certificate courses and create course 199 tickets automatically. 200 """ 201 if cert is not None: 202 for key, val in cert.items(): 203 if val.level != self.level: 204 continue 205 ticket = createObject(u'waeup.CourseTicket') 206 ticket.automatic = True 207 ticket.mandatory = val.mandatory 208 ticket.carry_over = False 209 try: 210 self.addCourseTicket(ticket, val.course) 211 except TicketError: 212 pass 213 return 214 181 215 CustomStudentStudyLevel = attrs_to_fields( 182 216 CustomStudentStudyLevel, omit=[ -
main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_browser.py
r14206 r14227 709 709 print "Sample PDF pg_course_registration_slip.pdf written to %s" % path 710 710 711 def test_student_2nd_semester_course_registration(self): 712 IWorkflowState(self.student).setState('school fee paid') 713 self.course.semester = 2 714 self.browser.open(self.login_path) 715 self.browser.getControl(name="form.login").value = self.student_id 716 self.browser.getControl(name="form.password").value = 'spwd' 717 self.browser.getControl("Login").click() 718 self.browser.getLink("Study Course").click() 719 self.browser.getLink("Add course list").click() 720 self.browser.getControl("Create course list now").click() 721 self.assertFalse('COURSE1' in self.browser.contents) 722 # 2nd semester tickets can't be added manually 723 self.browser.getLink("Edit course list").click() 724 self.browser.getLink("here").click() 725 self.browser.getControl(name="form.course").value = ['COURSE1'] 726 self.browser.getControl("Add course ticket").click() 727 self.assertTrue( 728 'Course COURSE1 cannot be registered. ' 729 'You have to pay for the 2nd semester first.' 730 in self.browser.contents) 731 # 2nd instalment has to be paid first 732 self.certificate.school_fee_3 = 678.0 733 self.browser.open(self.payments_path + '/addop') 734 self.browser.getControl(name="form.p_category").value = ['schoolfee_2'] 735 self.browser.getControl("Create ticket").click() 736 self.student['payments'].values()[0].approve() 737 self.browser.open(self.studycourse_path + '/100/ctadd') 738 self.browser.getControl(name="form.course").value = ['COURSE1'] 739 self.browser.getControl("Add course ticket").click() 740 self.assertTrue('Successfully added COURSE1' in self.browser.contents) 741 return 742 711 743 def test_student_clearance(self): 712 744 # Student cant login if their password is not set
Note: See TracChangeset for help on using the changeset viewer.