Changeset 7459 for main/waeup.sirp/trunk/src/waeup/sirp/students
- Timestamp:
- 12 Jan 2012, 16:19:57 (13 years ago)
- Location:
- main/waeup.sirp/trunk/src/waeup/sirp/students
- Files:
-
- 29 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py
r7424 r7459 36 36 SIRPPage, SIRPEditFormPage, SIRPAddFormPage, SIRPDisplayFormPage, 37 37 ContactAdminForm, SIRPForm) 38 from waeup.sirp.browser.interfaces import ICaptchaManager 38 from waeup.sirp.browser.interfaces import ICaptchaManager, IBreadcrumbIgnorable 39 39 from waeup.sirp.browser.breadcrumbs import Breadcrumb 40 40 from waeup.sirp.browser.resources import datepicker, datatable, tabs, warning 41 41 from waeup.sirp.browser.viewlets import ( 42 42 ManageActionButton, AddActionButton) 43 from waeup.sirp.browser.layout import jsaction, JSAction43 from waeup.sirp.browser.layout import jsaction, action, UtilityView 44 44 from waeup.sirp.interfaces import ( 45 45 ISIRPObject, IUserAccount, IExtFileStore, IPasswordValidator, IContactForm, … … 64 64 from waeup.sirp.applicants.interfaces import IApplicantBaseData 65 65 from waeup.sirp.hostels.hostel import NOT_OCCUPIED 66 from waeup.sirp.utils.helpers import get_current_principal 66 67 67 68 def write_log_message(view, message): … … 96 97 grok.context(IStudentsContainer) 97 98 title = 'Students' 99 #grok.implements(IBreadcrumbIgnorable) 100 101 @property 102 def target(self): 103 user = get_current_principal() 104 #import pdb; pdb.set_trace() 105 if getattr(user, 'user_type', None) == 'student': 106 return None 107 return self.viewname 98 108 99 109 class StudentBreadcrumb(Breadcrumb): … … 131 141 grok.context(IStudentAccommodation) 132 142 title = 'Accommodation' 133 134 #@property135 #def target(self):136 # prm = get_principal_role_manager()137 # principal = get_current_principal()138 # roles = [x[0] for x in prm.getRolesForPrincipal(principal.id)]139 # if 'waeup.Student' in roles:140 # return 'index'141 # else:142 # return 'manage'143 143 144 144 class BedTicketBreadcrumb(Breadcrumb): … … 293 293 if not self.hitlist: 294 294 self.flash('No student found.') 295 if 'remove' in form: 296 self.flash('No item selected.') 295 297 return 296 298 entries = form['entries'] … … 328 330 pnav = 4 329 331 330 @ grok.action('Create student record')332 @action('Create student record', style='primary') 331 333 def addStudent(self, **data): 332 334 student = createObject(u'waeup.Student') … … 383 385 return u'Send message to %s' % self.context.display_fullname 384 386 385 @ grok.action('Send message now')387 @action('Send message now', style='primary') 386 388 def send(self, *args, **data): 387 389 try: … … 442 444 dict(name=x, title=y) for x, y in allowed_transitions] 443 445 444 @ grok.action('Save')446 @action('Save', style='primary') 445 447 def save(self, **data): 446 448 form = self.request.form … … 576 578 return super(StudentClearanceManageFormPage, self).update() 577 579 578 @ grok.action('Save')580 @action('Save', style='primary') 579 581 def save(self, **data): 580 582 msave(self, **data) 581 583 return 582 584 583 class StudentClearPage( grok.View):585 class StudentClearPage(UtilityView, grok.View): 584 586 """ Clear student by clearance officer 585 587 """ … … 600 602 return 601 603 602 class StudentRejectClearancePage( grok.View):604 class StudentRejectClearancePage(UtilityView, grok.View): 603 605 """ Reject clearance by clearance officers 604 606 """ … … 662 664 pnav = 4 663 665 664 @ grok.action('Save')666 @action('Save', style='primary') 665 667 def save(self, **data): 666 668 msave(self, **data) … … 732 734 return 733 735 734 @ grok.action('Save')736 @action('Save', style='primary') 735 737 def save(self, **data): 736 738 msave(self, **data) … … 744 746 yield(dict(code=code, title=title)) 745 747 746 @ grok.action('Add study level')748 @action('Add study level') 747 749 def addStudyLevel(self, **data): 748 750 level_code = self.request.form.get('addlevel', None) … … 754 756 except KeyError: 755 757 self.flash('This level exists.') 758 self.flash('Study level has been added.') 756 759 self.redirect(self.url(self.context, u'@@manage')+'#tab-2') 757 760 return … … 821 824 target = 'course_registration.pdf' 822 825 823 class ExportPDFCourseRegistrationSlipPage( grok.View):826 class ExportPDFCourseRegistrationSlipPage(UtilityView, grok.View): 824 827 """Deliver a PDF slip of the context. 825 828 """ … … 921 924 return 'Manage study level %s' % self.context.level_title 922 925 923 @ grok.action('Save')926 @action('Save', style='primary') 924 927 def save(self, **data): 925 928 msave(self, **data) 926 929 return 927 930 928 @ grok.action('Add course ticket')931 @action('Add course ticket') 929 932 def addCourseTicket(self, **data): 930 933 self.redirect(self.url(self.context, '@@add')) … … 954 957 return 955 958 956 class ValidateCoursesPage( grok.View):959 class ValidateCoursesPage(UtilityView, grok.View): 957 960 """ Validate course list by course adviser 958 961 """ … … 975 978 return 976 979 977 class RejectCoursesPage( grok.View):980 class RejectCoursesPage(UtilityView, grok.View): 978 981 """ Reject course list by course adviser 979 982 """ … … 1022 1025 return 'Study Level %s' % self.context.level_title 1023 1026 1024 @ grok.action('Add course ticket')1027 @action('Add course ticket') 1025 1028 def addCourseTicket(self, **data): 1026 1029 ticket = CourseTicket() … … 1046 1049 return 1047 1050 1048 @ grok.action('Cancel')1051 @action('Cancel') 1049 1052 def cancel(self, **data): 1050 1053 self.redirect(self.url(self.context)) … … 1095 1098 return 'Manage course ticket %s' % self.context.code 1096 1099 1097 @ grok.action('Save')1100 @action('Save', style='primary') 1098 1101 def save(self, **data): 1099 1102 msave(self, **data) … … 1176 1179 return 1177 1180 1178 @ grok.action('Add online payment ticket')1181 @action('Add online payment ticket') 1179 1182 def addPaymentTicket(self, **data): 1180 1183 self.redirect(self.url(self.context, '@@addop')) … … 1200 1203 pnav = 4 1201 1204 1202 @ grok.action('Create ticket')1205 @action('Create ticket', style='primary') 1203 1206 def createTicket(self, **data): 1204 1207 p_category = data['p_category'] … … 1296 1299 return self.view.url(self.view.context, self.target) 1297 1300 1298 class OnlinePaymentCallbackPage( grok.View):1301 class OnlinePaymentCallbackPage(UtilityView, grok.View): 1299 1302 """ Callback view 1300 1303 """ … … 1345 1348 return 1346 1349 1347 class ExportPDFPaymentSlipPage( grok.View):1350 class ExportPDFPaymentSlipPage(UtilityView, grok.View): 1348 1351 """Deliver a PDF slip of the context. 1349 1352 """ … … 1576 1579 target = 'bed_allocation.pdf' 1577 1580 1578 class ExportPDFBedTicketSlipPage( grok.View):1581 class ExportPDFBedTicketSlipPage(UtilityView, grok.View): 1579 1582 """Deliver a PDF slip of the context. 1580 1583 """ … … 1608 1611 target = 'relocate' 1609 1612 1610 class BedTicketRelocationPage( grok.View):1613 class BedTicketRelocationPage(UtilityView, grok.View): 1611 1614 """ Callback view 1612 1615 """ … … 1735 1738 pnav = 4 1736 1739 1737 @ grok.action('Save')1740 @action('Save', style='primary') 1738 1741 def save(self, **data): 1739 1742 msave(self, **data) … … 1751 1754 pnav = 4 1752 1755 1753 @ grok.action('Save')1756 @action('Save', style='primary') 1754 1757 def save(self, **data): 1755 1758 form = self.request.form … … 1898 1901 return super(StudentClearanceEditFormPage, self).update() 1899 1902 1900 @ grok.action('Save')1903 @action('Save', style='primary') 1901 1904 def save(self, **data): 1902 1905 self.applyData(self.context, **data) … … 1911 1914 return False 1912 1915 1913 @ grok.action('Save and request clearance')1916 @action('Save and request clearance', style='primary') 1914 1917 def requestClearance(self, **data): 1915 1918 self.applyData(self.context, **data) … … 2063 2066 return 2064 2067 2065 @ grok.action('Create course list now')2068 @action('Create course list now', style='primary') 2066 2069 def addStudyLevel(self, **data): 2067 2070 studylevel = StudentStudyLevel() … … 2127 2130 return total_credits 2128 2131 2129 @ grok.action('Add course ticket')2132 @action('Add course ticket') 2130 2133 def addCourseTicket(self, **data): 2131 2134 self.redirect(self.url(self.context, 'ctadd')) … … 2157 2160 return 2158 2161 2159 @ grok.action('Register course list')2162 @action('Register course list', style='primary') 2160 2163 def RegisterCourses(self, **data): 2161 2164 IWorkflowInfo(self.context.getStudent()).fireTransition('register_courses') … … 2172 2175 'grade', 'score', 'core_or_elective', 'automatic') 2173 2176 2174 @ grok.action('Add course ticket')2177 @action('Add course ticket') 2175 2178 def addCourseTicket(self, **data): 2176 2179 ticket = CourseTicket() … … 2211 2214 return 2212 2215 2213 @ grok.action('Get login credentials')2216 @action('Get login credentials', style='primary') 2214 2217 def request(self, **data): 2215 2218 if not self.captcha_result.is_valid: -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/accommodationmanagepage.pt
r7254 r7459 3 3 tal:content="view/label">Label</h2> 4 4 5 <div class=" form-status"5 <div class="alert-message error" 6 6 tal:define="status view/status" 7 7 tal:condition="status"> … … 13 13 14 14 <form action="." tal:attributes="action request/URL" method="POST" 15 class="edit-form" enctype="multipart/form-data">15 enctype="multipart/form-data"> 16 16 17 17 <table class="display dataTableManage"> … … 41 41 </table> 42 42 43 <div class="actionButtons"tal:condition="view/availableActions">43 <div tal:condition="view/availableActions"> 44 44 <span tal:repeat="action view/selected_actions" 45 45 tal:omit-tag=""> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/basemanagepage.pt
r7134 r7459 4 4 5 5 <form action="." tal:attributes="action request/URL" method="post" 6 class="edit-form"enctype="multipart/form-data">6 enctype="multipart/form-data"> 7 7 8 <div class=" form-status"8 <div class="alert-message error" 9 9 tal:define="status view/status" 10 10 tal:condition="status"> … … 15 15 </div> 16 16 17 <div id="tabs"> 18 <ul> 19 <li><a href="#tab-1"><span>Base Data</span></a></li> 20 <li><a href="#tab-2"><span>Passport Picture</span></a></li> 21 </ul> 17 <ul class="tabs" data-tabs="tabs"> 18 <li class="active"><a href="#tab-1"><span>Base Data</span></a></li> 19 <li><a href="#tab-2"><span>Passport Picture</span></a></li> 20 </ul> 22 21 23 <div id="tab-1"> 24 <table class="form-fields zebra"> 22 <div class="tab-content"> 23 <div id="tab-1" class="active"> 24 <table class="form-table"> 25 25 <tbody> 26 26 <tal:block repeat="widget view/widgets"> 27 27 <tr> 28 <td class="label"> 29 <label tal:attributes="for widget/name"> 30 <span class="required" tal:condition="widget/required">*</span> 31 <span i18n:translate="" tal:content="widget/label">label</span>: 32 </label> 28 <td class="fieldname"> 29 <span tal:condition="widget/required">*</span> 30 <span i18n:translate="" tal:content="widget/label">label</span>: 33 31 </td> 34 <td class="field">35 <span class="widget"tal:content="structure widget">32 <td> 33 <span tal:content="structure widget"> 36 34 <input type="text" /> 37 35 </span> … … 40 38 </tal:error> 41 39 <tal:hint tal:condition="widget/hint"> 42 <span class="hint"tal:content="structure widget/hint">hint</span>40 <span tal:content="structure widget/hint">hint</span> 43 41 </tal:hint> 44 42 </td> … … 46 44 </tal:block> 47 45 <tr> 48 <td class=" label"><label>Password:</label></td>46 <td class="fieldname">Password:</td> 49 47 <td> 50 48 <input name="password" type="password" /> … … 52 50 </tr> 53 51 <tr> 54 <td class=" label"><label>Retype password:</label></td>52 <td class="fieldname">Retype password:</td> 55 53 <td> 56 54 <input name="control_password" type="password" /> … … 58 56 </tr> 59 57 <tr> 60 <td class=" label"><label>Registration Transition:</label></td>58 <td class="fieldname">Registration Transition:</td> 61 59 <td> 62 60 <select id="transition" name="transition"> … … 72 70 </table> 73 71 74 <div class="actionButtons"tal:condition="view/availableActions">72 <div tal:condition="view/availableActions"> 75 73 <input tal:repeat="action view/actions" 76 74 tal:replace="structure action/render" … … 80 78 81 79 <div id="tab-2"> 82 <h2>Upload passport picture</h2> 83 <table class="form-fields zebra"> 80 <table class="form-table"> 84 81 <tbody> 85 82 <tal:files content="structure provider:files" /> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/basepage.pt
r7384 r7459 3 3 tal:content="view/label">Label</h2> 4 4 5 <table class=" zebra">5 <table class="form-table"> 6 6 <tbody> 7 7 <tal:block repeat="widget view/widgets"> … … 16 16 </tal:block> 17 17 <tr> 18 <td class="fieldname" width="33%">18 <td class="fieldname"> 19 19 Password: 20 20 </td> … … 26 26 </tbody> 27 27 <tfoot> 28 <tr class="controls">29 <td colspan="2" class="align-right">28 <tr> 29 <td> 30 30 <input tal:repeat="action view/actions" 31 31 tal:replace="structure action/render" /> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/change_password.pt
r7144 r7459 4 4 5 5 <form action="." tal:attributes="action request/URL" method="post" 6 class="edit-form"enctype="multipart/form-data">6 enctype="multipart/form-data"> 7 7 8 8 <input type="hidden" name="student_id" value="" 9 9 tal:attributes="value context/student_id" /> 10 10 11 <table class="form- fields zebra">11 <table class="form-table"> 12 12 <tbody> 13 13 <tr> 14 <td class=" label"><label>Password:</label></td>14 <td class="fieldname">Password:</td> 15 15 <td> 16 16 <input name="change_password" type="password" /> … … 18 18 </tr> 19 19 <tr> 20 <td class=" label"><label>Retype password:</label></td>20 <td class="fieldname">Retype password:</td> 21 21 <td> 22 22 <input name="change_password_repeat" type="password" /> … … 26 26 </table> 27 27 28 <div class="actionButtons"tal:condition="view/availableActions">28 <div tal:condition="view/availableActions"> 29 29 <input tal:repeat="action view/actions" 30 30 tal:replace="structure action/render" -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/changepw.pt
r7369 r7459 1 1 <form action="." tal:attributes="action request/URL" method="post" 2 class="edit-form"enctype="multipart/form-data">2 enctype="multipart/form-data"> 3 3 4 4 <h2 i18n:translate="" … … 6 6 tal:content="view/label">Label</h2> 7 7 8 <div class=" form-status"8 <div class="alert-message error" 9 9 tal:define="status view/status" 10 10 tal:condition="status"> … … 15 15 </div> 16 16 17 <table class=" zebra">17 <table class="form-table"> 18 18 <tbody> 19 19 <tal:block repeat="widget view/widgets"> 20 20 <tr> 21 <td class="label"> 22 <label tal:attributes="for widget/name"> 23 <span class="required" tal:condition="widget/required">*</span> 21 <td class="fieldname"> 22 <span tal:condition="widget/required">*</span> 24 23 <span i18n:translate="" tal:content="widget/label">label</span>: 25 </label>26 24 </td> 27 <td class="field">28 <span class="widget"tal:content="structure widget">25 <td> 26 <span tal:content="structure widget"> 29 27 <input type="text" /> 30 28 </span> … … 33 31 </tal:error> 34 32 <tal:hint tal:condition="widget/hint"> 35 <span class="hint"tal:content="structure widget/hint">hint</span>33 <span tal:content="structure widget/hint">hint</span> 36 34 </tal:hint> 37 35 </td> … … 51 49 </table> 52 50 53 <div class="actionButtons"tal:condition="view/availableActions">51 <div tal:condition="view/availableActions"> 54 52 <input tal:repeat="action view/actions" 55 53 tal:replace="structure action/render" -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/clearanceeditpage.pt
r7134 r7459 4 4 5 5 <form action="." tal:attributes="action request/URL" method="post" 6 class="edit-form"enctype="multipart/form-data">6 enctype="multipart/form-data"> 7 7 8 <div class=" form-status"8 <div class="alert-message error" 9 9 tal:define="status view/status" 10 10 tal:condition="status"> … … 15 15 </div> 16 16 17 <div id="tabs"> 18 <ul> 19 <li><a href="#tab-1"><span>Clearance Data</span></a></li> 20 <li><a href="#tab-2"><span>Scans</span></a></li> 21 </ul> 22 23 <div id="tab-1"> 24 <table class="form-fields zebra"> 17 <ul class="tabs" data-tabs="tabs"> 18 <li class="active"><a href="#tab-1"><span>Clearance Data</span></a></li> 19 <li><a href="#tab-2"><span>Scans</span></a></li> 20 </ul> 21 <div class="tab-content"> 22 <div id="tab-1" class="active"> 23 <table class="form-table"> 25 24 <tbody> 26 25 <tal:block repeat="widget view/widgets"> 27 26 <tr> 28 <td class="label"> 29 <label tal:attributes="for widget/name"> 30 <span class="required" tal:condition="widget/required">*</span> 27 <td class="fieldname"> 28 <span tal:condition="widget/required">*</span> 31 29 <span i18n:translate="" tal:content="widget/label">label</span>: 32 </label>33 30 </td> 34 <td class="field">35 <span class="widget"tal:content="structure widget">31 <td> 32 <span tal:content="structure widget"> 36 33 <input type="text" /> 37 34 </span> … … 40 37 </tal:error> 41 38 <tal:hint tal:condition="widget/hint"> 42 <span class="hint"tal:content="structure widget/hint">hint</span>39 <span tal:content="structure widget/hint">hint</span> 43 40 </tal:hint> 44 41 </td> … … 48 45 </table> 49 46 50 <div class="actionButtons"tal:condition="view/availableActions">47 <div tal:condition="view/availableActions"> 51 48 <input tal:repeat="action view/actions" 52 49 tal:replace="structure action/render" … … 56 53 57 54 <div id="tab-2"> 58 <h2>Upload scans</h2> 59 <table class="form-fields zebra"> 55 <table class="form-table"> 60 56 <tbody> 61 57 <tal:files content="structure provider:files" /> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/containermanagepage.pt
r7364 r7459 4 4 <br /> 5 5 6 <input type="submit" name="search" value="Search" />6 <input class="btn primary" type="submit" name="search" value="Search" /> 7 7 for students 8 8 … … 48 48 </table> 49 49 50 <div class="actionButtons"> 51 <input type="submit" name="remove" value="Remove selected" 52 onclick="return confirmPost('Are you sure?')"/> 53 </div> 50 <input type="submit" name="remove" value="Remove selected" class="btn" 51 onclick="return confirmPost('Are you sure?')"/> 54 52 55 53 </div> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/containerpage.pt
r7364 r7459 4 4 <br /> 5 5 6 <input type="submit" name="search" value="Search" />6 <input class="btn primary" type="submit" name="search" value="Search" /> 7 7 for students 8 8 -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/courseticketmanagepage.pt
r6796 r7459 1 1 <form action="." tal:attributes="action request/URL" method="post" 2 class="edit-form"enctype="multipart/form-data">2 enctype="multipart/form-data"> 3 3 4 4 <h2 i18n:translate="" … … 6 6 tal:content="view/label">Label</h2> 7 7 8 <div class=" form-status"8 <div class="alert-message error" 9 9 tal:define="status view/status" 10 10 tal:condition="status"> … … 15 15 </div> 16 16 17 18 <table class="zebra"> 17 <table class="form-table"> 19 18 <tbody> 20 19 <tr> … … 68 67 <tal:block repeat="widget view/widgets"> 69 68 <tr> 70 <td class="label"> 71 <label tal:attributes="for widget/name"> 72 <span class="required" tal:condition="widget/required">*</span> 69 <td class="fieldname"> 70 <span tal:condition="widget/required">*</span> 73 71 <span i18n:translate="" tal:content="widget/label">label</span>: 74 </label>75 72 </td> 76 <td class="field">77 <span class="widget"tal:content="structure widget">73 <td> 74 <span tal:content="structure widget"> 78 75 <input type="text" /> 79 76 </span> … … 82 79 </tal:error> 83 80 <tal:hint tal:condition="widget/hint"> 84 <span class="hint"tal:content="structure widget/hint">hint</span>81 <span tal:content="structure widget/hint">hint</span> 85 82 </tal:hint> 86 83 </td> … … 89 86 </tbody> 90 87 </table> 91 <div class="actionButtons"tal:condition="view/availableActions">88 <div tal:condition="view/availableActions"> 92 89 <input tal:repeat="action view/actions" 93 90 tal:replace="structure action/render" -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/courseticketpage.pt
r6804 r7459 3 3 tal:content="view/label">Label</h2> 4 4 5 <table class=" zebra">5 <table class="form-table"> 6 6 <tbody> 7 7 <tr> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/enterpin.pt
r6935 r7459 2 2 tal:content="view/label">Label</h2> 3 3 <form method="POST"> 4 <table >4 <table class="form-table"> 5 5 <tbody> 6 6 <tr><td> 7 <label for="ac_series">Activation Code:</label>7 Activation Code: 8 8 </td><td> 9 9 <span tal:replace="view/ac_prefix">PIN Prefix</span> - … … 18 18 <tr> 19 19 <td colspan="2"> 20 <input type="submit" name="SUBMIT" 20 <input type="submit" name="SUBMIT" class="btn primary" 21 21 tal:attributes="value view/buttonname" /> 22 22 </td> 23 23 </tr> 24 24 </tbody> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/filedisplay.pt
r7319 r7459 1 1 <tr tal:condition = "viewlet/file_exists"> 2 <td class="label"> 3 <label i18n:translate=""> 4 <span tal:replace="viewlet/label">FILENAME</span>: 5 </label> 2 <td class="fieldname"> 3 <span tal:replace="viewlet/label">FILENAME</span>: 6 4 </td> 7 <td class="field">5 <td> 8 6 <span class="widget"> 9 7 <a tal:attributes="href viewlet/download_name" -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/filesuploadpage.pt
r7127 r7459 4 4 5 5 <form action="." tal:attributes="action request/URL" method="post" 6 class="edit-form"enctype="multipart/form-data">7 <table class=" zebra">6 enctype="multipart/form-data"> 7 <table class="form-table"> 8 8 <tbody> 9 9 <tal:files content="structure provider:files" /> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/fileupload.pt
r7319 r7459 1 1 <tr> 2 <td class="label"> 3 <label i18n:translate="" tal:attributes="for viewlet/input_name"> 4 <span tal:replace="viewlet/label">FILENAME</span>: 5 </label> 2 <td class="fieldname"> 3 <span tal:replace="viewlet/label">FILENAME</span>: 6 4 </td> 7 <td class="field">5 <td> 8 6 <span class="widget"> 9 7 … … 17 15 <br /> 18 16 <input type="file" tal:attributes="name viewlet/input_name"/> 19 <br /> 17 <br /><br /> 20 18 <input type="submit" tal:condition="viewlet/file_exists" 21 19 tal:attributes="id python:('delete_%s' % viewlet.input_name); 22 20 name python:('delete_%s' % viewlet.input_name)" 23 value="Delete attachment" class="b utton" />21 value="Delete attachment" class="btn error" /> 24 22 <input type="submit" 25 23 tal:attributes="id python:('upload_%s' % viewlet.input_name); 26 24 name python:('upload_%s' % viewlet.input_name)" 27 value="Upload new file" class="b utton" />25 value="Upload new file" class="btn primary" /> 28 26 <span i18n:translate=""> 29 27 Max. file size: -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imagedisplay.pt
r7414 r7459 1 1 <tr> 2 <td class="label"> 3 <label i18n:translate=""> 2 <td class="fieldname"> 4 3 <span tal:replace="viewlet/label">FILENAME</span>: 5 </label>6 4 </td> 7 <td class="field"> 8 <span class="widget"> 5 <td> 9 6 <img height="125px" tal:attributes="src viewlet/download_name" /> 10 7 <br /> 11 </span>12 8 </td> 13 9 </tr> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imageupload.pt
r7414 r7459 1 1 <tr> 2 <td class="label"> 3 <label i18n:translate="" tal:attributes="for viewlet/input_name"> 4 <span tal:replace="viewlet/label">FILENAME</span>: 5 </label> 2 <td class="fieldname"> 3 <span tal:replace="viewlet/label">FILENAME</span>: 6 4 </td> 7 <td class="field">5 <td> 8 6 <span class="widget"> 9 7 <img align="middle" height="125px" … … 12 10 tal:attributes="id python:('delete_%s' % viewlet.input_name); 13 11 name python:('delete_%s' % viewlet.input_name)" 14 value="Delete" class="b utton" />12 value="Delete" class="btn error" /> 15 13 <br /><br /> 16 14 <input type="file" tal:attributes="name viewlet/input_name"/> 15 <br /><br /> 17 16 <input type="submit" 18 17 tal:attributes="id python:('upload_%s' % viewlet.input_name); 19 18 name python:('upload_%s' % viewlet.input_name)" 20 value="Upload" class="b utton" />19 value="Upload" class="btn primary" /> 21 20 <span i18n:translate=""> 22 21 Max. file size: -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/paymentsmanagepage.pt
r7254 r7459 3 3 tal:content="view/label">Label</h2> 4 4 5 <div class=" form-status"5 <div class="alert-message error" 6 6 tal:define="status view/status" 7 7 tal:condition="status"> … … 13 13 14 14 <form action="." tal:attributes="action request/URL" method="POST" 15 class="edit-form" enctype="multipart/form-data">15 enctype="multipart/form-data"> 16 16 17 17 <table class="display dataTableManage"> … … 46 46 </table> 47 47 48 <div class="actionButtons"tal:condition="view/availableActions">48 <div tal:condition="view/availableActions"> 49 49 <span tal:repeat="action view/actions" 50 50 tal:omit-tag=""> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/paymentspage.pt
r7254 r7459 1 1 <h2 tal:content="view/label">TITLE</h2> 2 2 3 <table class="zebra">4 <thead>5 </thead>6 3 <table class="display dataTable"> 7 4 <thead> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/setpassword.pt
r6758 r7459 2 2 tal:content="view/label">Label</h2> 3 3 <form method="POST"> 4 <table >4 <table class="form-table"> 5 5 <tbody> 6 <tr><td> 7 <label for="reg_number">Registration Number: 8 </label></td> <td> 6 <tr> 7 <td> 8 Registration Number: 9 </td> 10 <td> 9 11 <input name="reg_number" type="text" size="15" maxlength="15" 10 12 value="" tal:attributes="value view/reg_number"/> 11 </td></tr> 13 </td> 14 </tr> 12 15 <tr> 13 16 <td> 14 <label for="ac_series">Access Code: 15 </label></td> <td> 17 Access Code: 18 </td> 19 <td> 16 20 <span tal:replace="view/ac_prefix">PIN Prefix 17 21 </span> - … … 23 27 <tr> 24 28 <td colspan="2"> 25 <input type="submit" name="SUBMIT" 29 <input type="submit" name="SUBMIT" class="btn primary" 26 30 value="Show Student Id and set password" /> </td> 27 31 </tr> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studentpage.pt
r6635 r7459 3 3 tal:content="view/label">Label</h2> 4 4 5 <table class=" zebra">5 <table class="form-table"> 6 6 <tbody> 7 7 <tal:block repeat="widget view/widgets"> … … 17 17 </tbody> 18 18 <tfoot> 19 <tr class="controls">19 <tr> 20 20 <td colspan="2" class="align-right"> 21 21 <input tal:repeat="action view/actions" … … 24 24 </tr> 25 25 </tfoot> 26 27 26 </table> 28 27 -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursemanagepage.pt
r6794 r7459 3 3 tal:content="view/label">Label</h2> 4 4 5 <div class=" form-status"5 <div class="alert-message error" 6 6 tal:define="status view/status" 7 7 tal:condition="status"> … … 13 13 14 14 <form action="." tal:attributes="action request/URL" method="POST" 15 class="edit-form"enctype="multipart/form-data">15 enctype="multipart/form-data"> 16 16 17 <div id="tabs"> 18 <ul> 19 <li><a href="#tab-1"><span>Study Course Data</span></a></li> 20 <li><a href="#tab-2"><span>Study Levels</span></a></li> 21 </ul> 22 23 <div id="tab-1"> 24 <table class="zebra"> 25 <tbody> 26 <tal:block repeat="widget view/widgets"> 27 <tr> 28 <td class="label"> 29 <label tal:attributes="for widget/name"> 30 <span class="required" tal:condition="widget/required">*</span> 31 <span i18n:translate="" tal:content="widget/label">label</span>: 32 </label> 33 </td> 34 <td class="field"> 35 <span class="widget" tal:content="structure widget"> 36 <input type="text" /> 17 <ul class="tabs" data-tabs="tabs"> 18 <li class="active"><a href="#tab-1"><span>Study Course Data</span></a></li> 19 <li><a href="#tab-2"><span>Study Levels</span></a></li> 20 </ul> 21 22 <div class="tab-content"> 23 <div id="tab-1" class="active"> 24 <table class="form-table"> 25 <tbody> 26 <tal:block repeat="widget view/widgets"> 27 <tr> 28 <td class="fieldname"> 29 <span class="required" tal:condition="widget/required">*</span> 30 <span i18n:translate="" tal:content="widget/label">label</span>: 31 </td> 32 <td> 33 <span tal:content="structure widget"> 34 <input type="text" /> 35 </span> 36 <tal:error tal:condition="widget/error"> 37 <span tal:replace="structure widget/error">error</span> 38 </tal:error> 39 <tal:hint tal:condition="widget/hint"> 40 <span tal:content="structure widget/hint">hint</span> 41 </tal:hint> 42 </td> 43 </tr> 44 </tal:block> 45 </tbody> 46 </table> 47 <div tal:condition="view/availableActions"> 48 <span tal:repeat="action view/actions" 49 tal:omit-tag=""> 50 <input tal:condition="python:action.label in view.taboneactions" 51 tal:replace="structure action/render"/> 37 52 </span> 38 <tal:error tal:condition="widget/error"> 39 <span tal:replace="structure widget/error">error</span> 40 </tal:error> 41 <tal:hint tal:condition="widget/hint"> 42 <span class="hint" tal:content="structure widget/hint">hint</span> 43 </tal:hint> 44 </td> 45 </tr> 46 </tal:block> 47 </tbody> 48 </table> 49 <div class="actionButtons" tal:condition="view/availableActions"> 50 <span tal:repeat="action view/actions" 51 tal:omit-tag=""> 52 <input tal:condition="python:action.label in view.taboneactions" 53 tal:replace="structure action/render"/> 54 </span> 53 </div> 54 </div> 55 56 <div id="tab-2"> 57 <h3>Study Levels (Course Lists)</h3> 58 <table class="display dataTableManage"> 59 <thead> 60 <tr> 61 <th> </th><th>Level Code</th><th>Level Title</th> 62 </tr> 63 </thead> 64 <tbody> 65 <tr tal:repeat="cl context/values"> 66 <td> 67 <input type="checkbox" 68 name="val_id" 69 tal:attributes="value cl/__name__" /> 70 </td> 71 <td> <a tal:attributes="href cl/__name__"> 72 <span tal:content="cl/level">CODE</span></a> 73 </td> 74 <td> 75 <span tal:content="cl/level_title">TITLE</span> 76 </td> 77 </tr> 78 </tbody> 79 </table> 80 81 <div tal:condition="view/availableActions"> 82 <span tal:repeat="action view/actions" 83 tal:omit-tag=""> 84 <input tal:condition="python:action.label in view.tabtwoactions" 85 tal:replace="structure action/render"/> 86 </span> 87 </div> 88 <br /><br /><br /> 89 <div> 90 <span tal:condition="view/availableActions"> 91 <span tal:repeat="action view/actions" 92 tal:omit-tag=""> 93 <input tal:condition="python:action.label in view.tabthreeactions" 94 tal:replace="structure action/render"/> 95 </span> 96 </span> 97 <select id="addlevel" name="addlevel"> 98 <option tal:attributes="value level/code" tal:repeat="level view/level_dict"> 99 <span tal:replace="level/title">LEVELTITLE 100 </span> 101 </option> 102 </select> 103 </div> 104 </div> 55 105 </div> 56 </div>57 58 <div id="tab-2">59 <h3>Study Levels (Course Lists)</h3>60 <table class="display dataTableManage">61 <thead>62 <tr>63 <th> </th><th>Level Code</th><th>Level Title</th>64 </tr>65 </thead>66 <tbody>67 <tr tal:repeat="cl context/values">68 <td>69 <input type="checkbox"70 name="val_id"71 tal:attributes="value cl/__name__" />72 </td>73 <td> <a tal:attributes="href cl/__name__">74 <span tal:content="cl/level">CODE</span></a>75 </td>76 <td>77 <span tal:content="cl/level_title">TITLE</span>78 </td>79 </tr>80 </tbody>81 </table>82 83 <div class="actionButtons" tal:condition="view/availableActions">84 <span tal:repeat="action view/actions"85 tal:omit-tag="">86 <input tal:condition="python:action.label in view.tabtwoactions"87 tal:replace="structure action/render"/>88 </span>89 </div>90 <br /><br /><br />91 <div>92 <span class="actionButtons" tal:condition="view/availableActions">93 <span tal:repeat="action view/actions"94 tal:omit-tag="">95 <input tal:condition="python:action.label in view.tabthreeactions"96 tal:replace="structure action/render"/>97 </span>98 </span>99 <select id="addlevel" name="addlevel">100 <option tal:attributes="value level/code" tal:repeat="level view/level_dict">101 <span tal:replace="level/title">LEVELTITLE102 </span>103 </option>104 </select>105 </div>106 107 108 109 </div>110 </div>111 106 </form> 112 107 -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursepage.pt
r7206 r7459 1 1 <h2 tal:content="view/label">TITLE</h2> 2 2 3 <table class=" zebra">3 <table class="form-table"> 4 4 <thead> 5 5 </thead> … … 7 7 <tal:block repeat="widget view/widgets"> 8 8 <tr> 9 <td> 10 <label tal:attributes="for widget/name"> 11 <span i18n:translate="" 12 tal:content="widget/label">label</span>: 13 </label> 9 <td class="filedname"> 10 <span i18n:translate="" tal:content="widget/label">label</span>: 14 11 </td> 15 <td class="field"tal:on-error="default">12 <td tal:on-error="default"> 16 13 <div class="widget" tal:content="structure widget"> 17 14 <input type="text" /> … … 22 19 <tr> 23 20 <td> 24 <label>25 21 Study Mode: 26 </label>27 22 </td> 28 23 <td class="field"> … … 34 29 <tr tal:condition="python: view.department is not None"> 35 30 <td> 36 <label>37 31 Department: 38 </label>39 32 </td> 40 33 <td class="field"> … … 47 40 <tr tal:condition="python: view.faculty is not None"> 48 41 <td> 49 <label>50 42 Faculty: 51 </label>52 43 </td> 53 44 <td class="field"> … … 64 55 65 56 66 <table class="zebra">57 <table> 67 58 <thead> 68 59 <tr> … … 72 63 </thead> 73 64 <tbody> 74 <tr tal:repeat="value context/values">65 <tr class="gradeC" tal:repeat="value context/values"> 75 66 <td> <a tal:attributes="href value/__name__"> 76 67 <span tal:content="value/level">CODE</span></a></td> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveladdpage.pt
r6806 r7459 3 3 tal:content="view/label">Label</h2> 4 4 5 <div class=" form-status"5 <div class="alert-message error" 6 6 tal:define="status view/status" 7 7 tal:condition="status"> … … 13 13 14 14 <form action="." tal:attributes="action request/URL" method="POST" 15 class="edit-form"enctype="multipart/form-data">15 enctype="multipart/form-data"> 16 16 17 17 <p>Text to explain course registration procedure.</p> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveleditpage.pt
r7310 r7459 3 3 tal:content="view/label">Label</h2> 4 4 5 <div class=" form-status"5 <div class="alert-message error" 6 6 tal:define="status view/status" 7 7 tal:condition="status"> … … 13 13 14 14 <form action="." tal:attributes="action request/URL" method="POST" 15 class="edit-form"enctype="multipart/form-data">15 enctype="multipart/form-data"> 16 16 17 17 <h3>Course Tickets (Total Credits: <span tal:replace="view/total_credits">TOTAL</span>)</h3> … … 30 30 </thead> 31 31 <tbody> 32 <tr tal:repeat="value context/values" >32 <tr tal:repeat="value context/values" class="gradeC"> 33 33 <td> 34 34 <input type="checkbox" name="val_id" … … 49 49 </table> 50 50 51 <div class="actionButtons"tal:condition="view/availableActions">51 <div tal:condition="view/availableActions"> 52 52 <span tal:repeat="action view/actions" 53 53 tal:omit-tag=""> -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelmanagepage.pt
r7310 r7459 3 3 tal:content="view/label">Label</h2> 4 4 5 <div class=" form-status"5 <div class="alert-message error" 6 6 tal:define="status view/status" 7 7 tal:condition="status"> … … 13 13 14 14 <form action="." tal:attributes="action request/URL" method="POST" 15 class="edit-form"enctype="multipart/form-data">15 enctype="multipart/form-data"> 16 16 17 <div id="tabs"> 18 <ul> 19 <li><a href="#tab-1"><span>Study Level Data</span></a></li> 20 <li><a href="#tab-2"><span>Course Tickets</span></a></li> 21 </ul> 22 23 <div id="tab-1"> 24 <table class="zebra"> 25 <tbody> 26 <tal:block repeat="widget view/widgets"> 27 <tr> 28 <td class="label"> 29 <label tal:attributes="for widget/name"> 30 <span class="required" tal:condition="widget/required">*</span> 31 <span i18n:translate="" tal:content="widget/label">label</span>: 32 </label> 33 </td> 34 <td class="field"> 35 <span class="widget" tal:content="structure widget"> 36 <input type="text" /> 17 <ul class="tabs" data-tabs="tabs"> 18 <li class="active"><a href="#tab-1"><span>Study Level Data</span></a></li> 19 <li><a href="#tab-2"><span>Course Tickets</span></a></li> 20 </ul> 21 22 <div class="tab-content"> 23 <div id="tab-1" class="active"> 24 <table class="form-table"> 25 <tbody> 26 <tal:block repeat="widget view/widgets"> 27 <tr> 28 <td class="fieldname"> 29 <span class="required" tal:condition="widget/required">*</span> 30 <span i18n:translate="" tal:content="widget/label">label</span>: 31 </td> 32 <td> 33 <span tal:content="structure widget"> 34 <input type="text" /> 35 </span> 36 <tal:error tal:condition="widget/error"> 37 <span tal:replace="structure widget/error">error</span> 38 </tal:error> 39 <tal:hint tal:condition="widget/hint"> 40 <span tal:content="structure widget/hint">hint</span> 41 </tal:hint> 42 </td> 43 </tr> 44 </tal:block> 45 </tbody> 46 </table> 47 <div tal:condition="view/availableActions"> 48 <span tal:repeat="action view/actions" 49 tal:omit-tag=""> 50 <input tal:condition="python:action.label in view.taboneactions" 51 tal:replace="structure action/render"/> 37 52 </span> 38 <tal:error tal:condition="widget/error"> 39 <span tal:replace="structure widget/error">error</span> 40 </tal:error> 41 <tal:hint tal:condition="widget/hint"> 42 <span class="hint" tal:content="structure widget/hint">hint</span> 43 </tal:hint> 44 </td> 45 </tr> 46 </tal:block> 47 </tbody> 48 </table> 49 <div class="actionButtons" tal:condition="view/availableActions"> 50 <span tal:repeat="action view/actions" 51 tal:omit-tag=""> 52 <input tal:condition="python:action.label in view.taboneactions" 53 tal:replace="structure action/render"/> 54 </span> 53 </div> 54 </div> 55 56 <div id="tab-2"> 57 <h3>Course Tickets</h3> 58 <table class="display dataTableManage"> 59 <thead> 60 <tr> 61 <th> </th> 62 <th>Sem.</th> 63 <th>Code</th> 64 <th>Title</th> 65 <th>Department</th> 66 <th>Faculty</th> 67 <th>Credits</th> 68 <th>Mandatory</th> 69 <th>Score</th> 70 <th>Auto</th> 71 </tr> 72 </thead> 73 <tbody> 74 <tr tal:repeat="value context/values" class="gradeC"> 75 <td> 76 <input type="checkbox" name="val_id" 77 tal:attributes="value value/__name__" /> 78 </td> 79 <td tal:content="value/semester">SEMESTER</td> 80 <td> <a tal:attributes="href value/__name__"> 81 <span tal:content="value/code">CODE</span> 82 </a></td> 83 <td tal:content="value/title">TITLE</td> 84 <td tal:content="value/department">DEPARTMENT</td> 85 <td tal:content="value/faculty">FACULTY</td> 86 <td tal:content="value/credits">CREDITS</td> 87 <td tal:content="value/core_or_elective">MANDATORY</td> 88 <td tal:content="value/score">SCORE</td> 89 <td tal:content="value/automatic">AUTO</td> 90 </tr> 91 </tbody> 92 </table> 93 94 <div tal:condition="view/availableActions"> 95 <span tal:repeat="action view/actions" 96 tal:omit-tag=""> 97 <input tal:condition="python:action.label in view.tabtwoactions" 98 tal:replace="structure action/render"/> 99 </span> 100 </div> 101 102 </div> 55 103 </div> 56 </div>57 58 <div id="tab-2">59 <h3>Course Tickets</h3>60 <table class="display dataTableManage">61 <thead>62 <tr>63 <th> </th>64 <th>Sem.</th>65 <th>Code</th>66 <th>Title</th>67 <th>Department</th>68 <th>Faculty</th>69 <th>Credits</th>70 <th>Mandatory</th>71 <th>Score</th>72 <th>Auto</th>73 </tr>74 </thead>75 <tbody>76 <tr tal:repeat="value context/values">77 <td>78 <input type="checkbox" name="val_id"79 tal:attributes="value value/__name__" />80 </td>81 <td tal:content="value/semester">SEMESTER</td>82 <td> <a tal:attributes="href value/__name__">83 <span tal:content="value/code">CODE</span>84 </a></td>85 <td tal:content="value/title">TITLE</td>86 <td tal:content="value/department">DEPARTMENT</td>87 <td tal:content="value/faculty">FACULTY</td>88 <td tal:content="value/credits">CREDITS</td>89 <td tal:content="value/core_or_elective">MANDATORY</td>90 <td tal:content="value/score">SCORE</td>91 <td tal:content="value/automatic">AUTO</td>92 </tr>93 </tbody>94 </table>95 96 <div class="actionButtons" tal:condition="view/availableActions">97 <span tal:repeat="action view/actions"98 tal:omit-tag="">99 <input tal:condition="python:action.label in view.tabtwoactions"100 tal:replace="structure action/render"/>101 </span>102 </div>103 104 </div>105 </div>106 104 </form> 107 105 -
main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelpage.pt
r7310 r7459 1 1 <h2 tal:content="view/label">TITLE</h2> 2 2 3 <table class=" zebra">3 <table class="form-table"> 4 4 <thead> 5 5 </thead> … … 7 7 <tal:block repeat="widget view/widgets"> 8 8 <tr> 9 <td> 10 <label tal:attributes="for widget/name"> 11 <span i18n:translate="" 12 tal:content="widget/label">label</span>: 13 </label> 9 <td class="fieldname"> 10 <span i18n:translate="" tal:content="widget/label">label</span>: 14 11 </td> 15 <td class="field"tal:on-error="default">12 <td tal:on-error="default"> 16 13 <div class="widget" tal:content="structure widget"> 17 14 <input type="text" /> … … 22 19 <tr> 23 20 <td> 24 <label>Total Credits:</label>21 Total Credits: 25 22 </td> 26 23 <td> … … 33 30 <h3>Course Tickets</h3> 34 31 35 <table class="display dataTable" 32 <table class="display dataTable"> 36 33 <thead> 37 34 <tr> … … 48 45 </thead> 49 46 <tbody> 50 <tr tal:repeat="value context/values" >47 <tr tal:repeat="value context/values" class="gradeC"> 51 48 <td tal:content="value/semester">SEMESTER</td> 52 49 <td> <a tal:attributes="href value/__name__"> -
main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py
r7422 r7459 807 807 self.browser.getLink("Clear student").click() 808 808 self.assertTrue('Student has been cleared' in self.browser.contents) 809 self.assertTrue(' State: <span>cleared</span>' in self.browser.contents)809 self.assertTrue('cleared' in self.browser.contents) 810 810 self.browser.getLink("Reject clearance").click() 811 811 self.assertTrue('Clearance has been annulled' in self.browser.contents) … … 814 814 self.assertEqual(self.browser.url, self.student_path + 815 815 '/contactstudent?subject=%s' % urlmessage) 816 self.assertTrue('State: <span>clearance started</span>' 817 in self.browser.contents) 816 self.assertTrue('clearance started' in self.browser.contents) 818 817 IWorkflowInfo(self.student).fireTransition('request_clearance') 819 818 self.browser.open(self.clearance_student_path) … … 821 820 self.assertTrue('Clearance request has been rejected' 822 821 in self.browser.contents) 823 self.assertTrue('State: <span>clearance started</span>' 824 in self.browser.contents) 822 self.assertTrue('clearance started' in self.browser.contents) 825 823 # CO does now also see the contact form and can send a message 826 824 self.browser.getControl(name="form.subject").value = 'Important subject' … … 917 915 self.browser.getLink("Validate courses").click() 918 916 self.assertTrue('Course list has been validated' in self.browser.contents) 919 self.assertTrue(' State: <span>courses validated</span>' in self.browser.contents)917 self.assertTrue('courses validated' in self.browser.contents) 920 918 self.browser.getLink("Reject courses").click() 921 919 self.assertTrue('Course list request has been annulled' … … 924 922 self.assertEqual(self.browser.url, self.student_path + 925 923 '/contactstudent?subject=%s' % urlmessage) 926 self.assertTrue('State: <span>school fee paid</span>' 927 in self.browser.contents) 924 self.assertTrue('school fee paid' in self.browser.contents) 928 925 IWorkflowInfo(self.student).fireTransition('register_courses') 929 926 self.browser.open(L110_student_path) … … 931 928 self.assertTrue('Course list request has been rejected' 932 929 in self.browser.contents) 933 self.assertTrue('State: <span>school fee paid</span>' 934 in self.browser.contents) 930 self.assertTrue('school fee paid' in self.browser.contents) 935 931 # CA does now see the contact form and can send a message 936 932 self.browser.getControl(name="form.subject").value = 'Important subject' … … 977 973 self.assertTrue('Password changed' in self.browser.contents) 978 974 # We are still logged in. Changing the password hasn't thrown us out. 979 self.browser.getLink(" MyData").click()975 self.browser.getLink("Base Data").click() 980 976 self.assertEqual(self.browser.url, self.student_path) 981 977 # We can logout -
main/waeup.sirp/trunk/src/waeup/sirp/students/viewlets.py
r7366 r7459 57 57 def render(self): 58 58 url = self.view.url(self.context.getStudent(), self.link) 59 return u'< div class="portlet"><a href="%s">%s</a></div>' % (59 return u'<li><a href="%s">%s</a></li>' % ( 60 60 url, self.text) 61 61 62 class StudentManageBaseLink(StudentManageLink):63 grok.order(1)64 link = 'index'65 text = u'Base Data'66 67 62 class StudentManageApplicationLink(StudentManageLink): 68 grok.order( 2)63 grok.order(1) 69 64 link = 'application_slip' 70 65 text = u'Application Slip' … … 75 70 if slip: 76 71 url = self.view.url(self.context,self.link) 77 return u'< div class="portlet"><a href="%s">%s</a></div>' % (72 return u'<li><a href="%s">%s</a></li>' % ( 78 73 url, self.text) 79 74 return '' 75 76 class StudentManageBaseLink(StudentManageLink): 77 grok.order(2) 78 link = 'index' 79 text = u'Base Data' 80 80 81 81 class StudentManageClearanceLink(StudentManageLink): … … 104 104 grok.require('waeup.handleAccommodation') 105 105 link = 'accommodation' 106 text = u'Accommodation Data'106 text = u'Accommodation' 107 107 108 108 class StudentManageHistoryLink(StudentManageLink): 109 grok.order(8)110 link = 'history'111 text = u'History'112 113 114 class StudentMenu(grok.ViewletManager):115 grok.name('top_student')116 117 class StudentLink(PlainActionButton):118 """A link displayed in the student box which shows up for StudentNavigation119 objects.120 121 """122 grok.baseclass()123 grok.viewletmanager(StudentMenu)124 grok.context(ISIRPObject)125 grok.view(Interface)126 grok.order(5)127 grok.require('waeup.viewStudent')128 129 link = 'index'130 text = u'Base Data'131 132 @property133 def target_url(self):134 """Get a URL to the target...135 """136 return self.view.url(self.context.getStudent(), self.link)137 138 class StudentBaseLink(StudentLink):139 grok.order(1)140 link = 'index'141 text = u'Base Data'142 143 class ApplicationSlipLink(StudentLink):144 grok.order(2)145 link = 'application_slip'146 text = u'Application Slip'147 148 @property149 def target_url(self):150 slip = getUtility(IExtFileStore).getFileByContext(151 self.context.getStudent(), attr=self.link)152 if slip:153 return self.view.url(self.context,self.link)154 return155 156 class StudentClearanceLink(StudentLink):157 grok.order(3)158 link = 'view_clearance'159 text = u'Clearance Data'160 161 class StudentPersonalLink(StudentLink):162 grok.order(4)163 link = 'view_personal'164 text = u'Personal Data'165 166 class StudentStudyCourseLink(StudentLink):167 grok.order(5)168 link = 'studycourse'169 text = u'Study Course'170 171 class StudentPaymentsLink(StudentLink):172 grok.order(6)173 link = 'payments'174 text = u'Payments'175 176 class StudentAccommodationLink(StudentLink):177 grok.order(7)178 link = 'accommodation'179 text = u'Accommodation'180 181 class StudentHistoryLink(StudentLink):182 109 grok.order(8) 183 110 link = 'history' … … 227 154 228 155 class MyStudentDataTab(PrimaryStudentNavTab): 229 """MyData -tab in primary navigation.156 """MyData dropdown tab in primary navigation. 230 157 """ 231 158 grok.order(3) 232 159 grok.require('waeup.viewMyStudentDataTab') 160 grok.template('mydatadropdowntabs') 233 161 pnav = 4 234 162 tab_title = u'My Data' 235 163 236 164 @property 237 def link_target(self): 238 rel_link = '/students/%s' % self.request.principal.id 239 return self.view.application_url() + rel_link 165 def active(self): 166 view_pnav = getattr(self.view, 'pnav', 0) 167 if view_pnav == self.pnav: 168 return 'active dropdown' 169 return 'dropdown' 170 171 @property 172 def targets(self): 173 student_url = self.view.application_url() + ( 174 '/students/%s' % self.request.principal.id) 175 #app_slip = getUtility(IExtFileStore).getFileByContext( 176 # self.context.getStudent(), 'application_slip') 177 targets = [] 178 #if app_slip: 179 # targets = [{'url':student_url + '/application_slip', 'title':'Application Slip'},] 180 targets += [ 181 {'url':student_url, 'title':'Base Data'}, 182 {'url':student_url + '/view_clearance', 'title':'Clearance Data'}, 183 {'url':student_url + '/view_personal', 'title':'Personal Data'}, 184 {'url':student_url + '/studycourse', 'title':'Study Course'}, 185 {'url':student_url + '/payments', 'title':'Payments'}, 186 {'url':student_url + '/accommodation', 'title':'Accommodation Data'}, 187 {'url':student_url + '/history', 'title':'History'}, 188 ] 189 return targets 240 190 241 191 def handle_file_delete(context, view, download_name):
Note: See TracChangeset for help on using the changeset viewer.