Changeset 3022
- Timestamp:
- 14 Jan 2008, 17:58:33 (17 years ago)
- Location:
- WAeUP_SRP
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
WAeUP_SRP/base/skins/waeup_student/search_students.py
r3013 r3022 41 41 except: 42 42 aq_portal = context.portal_catalog_real.evalAdvancedQuery 43 students_catalog = context.students_catalog 43 44 aq_students = context.students_catalog.evalAdvancedQuery 44 45 … … 189 190 review_set = [] 190 191 search_set = [] 192 query = None 191 193 if len(term) > 0: 192 194 if what == "student_id": … … 201 203 ) 202 204 elif what == "department": 203 res = context.students_catalog(department=term.strip())205 query = Eq('department', term.strip()) 204 206 logger.info('%s searches for student in department %s' % (member,term)) 205 search_set = [r.id for r in res] 207 # res = context.students_catalog(department=term.strip()) 208 # logger.info('%s searches for student in department %s' % (member,term)) 209 # search_set = [r.id for r in res] 206 210 elif what == "matric_no": 207 res = context.students_catalog(matric_no=term.strip())211 query = Eq('matric_no', term.strip()) 208 212 logger.info('%s searches for student with matric_no %s' % (member,term)) 209 search_set = [r.id for r in res] 213 # res = context.students_catalog(matric_no=term.strip()) 214 # logger.info('%s searches for student with matric_no %s' % (member,term)) 215 # search_set = [r.id for r in res] 210 216 elif what == "jamb_reg_no": 211 217 st_l = "%s" % term.strip().lower() 212 218 st_u = "%s" % term.strip().upper() 213 res = aq_students(In('jamb_reg_no',(st_l,st_u)))219 query = In('jamb_reg_no',(st_l,st_u)) 214 220 logger.info('%s searches for student with jamb_reg_no %s' % (member,term)) 215 search_set = [r.id for r in res] 221 # res = aq_students(In('jamb_reg_no',(st_l,st_u))) 222 # logger.info('%s searches for student with jamb_reg_no %s' % (member,term)) 223 # search_set = [r.id for r in res] 216 224 elif what == "name": 217 225 if len(term) < 4: … … 221 229 allowed = allowed, 222 230 ) 223 pt = ('StudentPersonal') 224 query = In('portal_type',pt) & Eq('SearchableText',"%s*" % term.strip()) 231 # pt = ('StudentPersonal') 232 # query = In('portal_type',pt) & Eq('SearchableText',"%s*" % term.strip()) 233 # logger.info('%s searches for student with name %s' % (member,term)) 234 # res = aq_portal(query) 235 # if res: 236 # for r in res: 237 # pl = r.getPath().split('/') 238 # search_set.append(pl[pl.index('students') + 1]) 239 query = Eq('name',"%s*" % term.strip()) 225 240 logger.info('%s searches for student with name %s' % (member,term)) 226 res = aq_portal(query) 227 if res: 228 for r in res: 229 pl = r.getPath().split('/') 230 search_set.append(pl[pl.index('students') + 1]) 241 # res = aq_students(query) 242 # if res: 243 # for r in res: 244 # search_set += r.id, 231 245 232 246 if only_review or with_review or co_view: … … 234 248 #review_res = aq_portal(query) 235 249 #review_res = context.portal_catalog(review_state = state) 236 237 query = Eq('review_state',state) 238 review_res = aq_students(query) 250 if query is not None: 251 query = Eq('review_state',state) & query 252 else: 253 query = Eq('review_state',state) 254 #review_res = aq_students(query) 239 255 logger.info('%s searches for students in review_state %s' % (member,state)) 240 256 … … 242 258 only_review = False 243 259 with_review = True 244 query = In('faculty',faculties) | In('department',departments) 245 res = aq_students(query) 246 search_set = [r.id for r in res] 260 if query is not None: 261 query = query & In('faculty',faculties) | In('department',departments) 262 else: 263 query = In('faculty',faculties) | In('department',departments) 264 # res = aq_students(query) 265 # search_set.extend([r.id for r in res]) 247 266 elif ca_view: 248 267 only_review = False … … 250 269 courses = [cl.split('/')[0] for cl in certificate_levels] 251 270 levels = [cl.split('/')[1] for cl in certificate_levels] 252 query = In('course',courses) & In('level',levels) 253 res = aq_students(query) 254 search_set = [r.id for r in res] 255 if review_res: 256 review_set = [r.id for r in review_res] 257 258 #from Products.zdb import set_trace;set_trace() 259 260 if only_review: 261 all = review_set 262 elif with_review: 263 all = [] 264 for i in search_set: 265 if i in review_set: 266 all.append(i) 267 else: 268 all = search_set 269 270 items = all[:500] 271 if query is not None: 272 query = query & In('course',courses) & In('level',levels) 273 # res = aq_students(query) 274 # search_set.extend([r.id for r in res]) 275 276 # if review_res: 277 # review_set = [r.id for r in review_res] 278 279 # if only_review: 280 # all = review_set 281 # elif with_review: 282 # all = [] 283 # for i in search_set: 284 # if i in review_set: 285 # all.append(i) 286 # else: 287 # all = search_set 288 289 # res = aq_students(query) 290 # all = [r.id for r in res] 291 292 # items = all[:500] 293 # students = [] 294 # if items: 295 # for item in items: 296 # students_catalog = context.students_catalog 297 # record = students_catalog(id = item) 298 # if record: 299 # record = record[0] 300 # else: 301 # return item+' not found in students_catalog' 302 # info = {} 303 # for field in students_catalog.schema() + students_catalog.indexes(): 304 # info[field] = getattr(record, field) 305 # else: 306 # students.append(info) 307 # return context.search_students_form(rendered = rend, 308 # psm = "", 309 # info = user_info, 310 # students = students, 311 # allowed = allowed, 312 # co_view = co_view, 313 # ca_view = ca_view 314 # ) 315 student_records = aq_students(query) 271 316 students = [] 272 if items: 273 for item in items: 274 stcat = context.students_catalog 275 record = stcat(id = item) 276 if record: 277 record = record[0] 278 else: 279 return item+' not found in students_catalog' 317 if student_records: 318 for student_record in student_records: 280 319 info = {} 281 for field in st cat.schema() + stcat.indexes():282 info[field] = getattr( record, field)320 for field in students_catalog.schema() + students_catalog.indexes(): 321 info[field] = getattr(student_record, field) 283 322 else: 284 323 students.append(info) -
WAeUP_SRP/uniben/waeup_custom/search_students_form.pt
r2847 r3022 1 1 <metal:body use-macro="here/main_template/macros/master"> 2 <metal:main fill-slot="main" 3 tal:define="rendered options/rendered; 4 portal_status_message options/psm; 5 students options/students; 6 info options/info|nothing; 7 is_so context/isSectionOfficer; 8 allowed options/allowed|nothing;" 9 > 10 <span tal:condition="not: allowed"> 11 <span tal:content="here/illegal_view" /> 12 </span> 13 <span tal:condition="allowed" tal:omit-tag=""> 14 2 <metal:main fill-slot="main" 3 tal:define="rendered options/rendered; 4 portal_status_message options/psm; 5 students options/students; 6 info options/info|nothing; 7 is_so context/isSectionOfficer; 8 allowed options/allowed|nothing;" 9 > 10 <span tal:condition="not: allowed"> 11 <span tal:content="here/illegal_view" /> 12 </span> 13 <span tal:condition="allowed" tal:omit-tag=""> 15 14 <strong> 16 <nobr><a href="statistics_new_view">New Student Statistics</a> 17 </nobr> 18 <nobr><a href="statistics_ret_view">Returning Student Statistics</a> 19 </nobr> 20 <nobr><a href="statistics_simple_view">Basic Student Statistics</a> 21 </nobr> 22 23 <span tal:condition="is_so"> 15 <nobr><a href="statistics_new_view">New Student Statistics</a> 16 </nobr> 17 <nobr><a href="statistics_ret_view">Returning Student Statistics</a> 18 </nobr> 19 <nobr><a href="statistics_simple_view">Basic Student Statistics</a> 20 </nobr> 21 <span tal:condition="is_so"> 24 22 <nobr><a href="apply_admission_manage">Application Process</a> 25 23 </nobr> … … 28 26 <nobr><a href="add_student">Add Student Record</a> 29 27 </nobr> 30 <nobr><a href="deactivate_students">Deactivate Student Record(s)</a> 28 <nobr><a href="deactivate_students">Deactivate Student Record(s)</a></nobr> 29 </span> 30 </strong> 31 <h3> Search Student Section</h3><br /> 32 You are logged in as member <span tal:replace="info/member|nothing" /> 33 <span tal:condition="info/faculties|nothing" tal:omit-tag=""> 34 who is ClearanceOfficer for Faculty 35 <span tal:repeat="faculty info/faculties" tal:content="faculty" /> 31 36 </span> 32 </strong> 33 34 35 <h3> Search Student Section</h3><br /> 36 You are logged in as member <span tal:replace="info/member|nothing" /> 37 <span tal:condition="info/faculties|nothing" tal:omit-tag=""> 38 who is ClearanceOfficer for Faculty 39 <span tal:repeat="faculty info/faculties" tal:content="faculty" /> 40 </span> 41 <span tal:condition="info/departments|nothing" tal:omit-tag=""> 42 and <span tal:repeat="department info/departments|nothing" tal:content="department"/></span>. 43 <br /><br /> 44 <span tal:replace="structure rendered" /> 45 <span tal:condition="students"> 46 <span 47 tal:define="items students; 48 columns python:3; 49 items_per_page python:40; 50 max_items python:300; 51 zoom python:0; 52 batches_all python:here.getBatchList(items,columns, items_per_page,zoom,max_items=400); 53 batches python:batches_all[0]; 54 batch_info python:batches_all[1]; 55 zoomed python:batches_all[2]; 56 mq nocall:modules/ZTUtils/make_query;" 57 tal:omit-tag="" 37 <span tal:condition="info/departments|nothing" tal:omit-tag=""> 38 and <span tal:repeat="department info/departments|nothing" tal:content="department"/></span>. 39 <br /><br /> 40 <span tal:replace="structure rendered" /> 41 <metal:block use-macro="here/generic_lib_portal_message/macros/portal_message" /> 42 <span tal:condition="students"> 43 <span tal:define="items students; 44 columns python:3; 45 items_per_page python:40; 46 max_items python:300; 47 zoom python:0; 48 batches_all python:here.getBatchList(items,columns, items_per_page,zoom,max_items=400); 49 batches python:batches_all[0]; 50 batch_info python:batches_all[1]; 51 zoomed python:batches_all[2]; 52 mq nocall:modules/ZTUtils/make_query;" 53 tal:omit-tag=""> 54 <tal:block tal:condition="python: items and batch_info and batch_info['nb_pages'] > 1"> 55 <div class="batchLayout" i18n:translate=""> 56 Objects:<strong><tal:block replace="batch_info/start" 57 i18n:name="batch_start" /> - <tal:block replace="batch_info/limit" 58 i18n:name="batch_limit" /> 59 </strong> of <tal:block replace="batch_info/length" i18n:name="batch_length" /> 60 </div> 61 <br /> 62 </tal:block> 63 <table class="contentListing" width="100%"> 64 <span tal:repeat="rows batches" tal:omit-tag=""> 65 <span tal:repeat="student rows"> 66 <tr tal:condition="student" 67 tal:attributes="class python:test(repeat['student'].even(), 'even ajaxtd', 'odd ajaxtd')"> 68 <td><a href="id" tal:attributes="href string:${context/portal_url}/campus/students/${student/id}" 69 tal:content="student/id"></a></td> 70 <td> 71 <span tal:replace="student/name" /> 72 </td> 73 <td><span tal:replace="student/matric_no" /></td> 74 <td><span tal:replace="student/jamb_reg_no" /></td> 75 <td tal:condition="options/co_view|nothing"> 76 <a href="id" 77 tal:attributes="href string:${context/portal_url}/campus/students/${student/id}/clearance/external_clearance_edit_form" 78 target="edit" 79 onclick="javascript:window.open('','edit','width=600, height=700, directories=no, toolbar=no, location=no, menubar=no, scrollbars=yes, status=no, resizable=no, dependent=no')" 80 >[view and change state]</a></td> 81 <td tal:condition="options/ca_view|nothing"> 82 <a href="id" 83 tal:attributes="href string:${context/portal_url}/campus/students/${student/id}/study_course/study_course/${student/level}/external_study_level_view" 84 target="edit" 85 onclick="javascript:window.open('','edit','width=600, height=700, directories=no, toolbar=no, location=no, menubar=no, scrollbars=yes, status=no, resizable=no, dependent=no')" 86 >[view and validate course list]</a></td> 87 </tr> 88 </span> 89 </span> 90 </table> 91 <tal:block condition="python:batch_info and batch_info['nb_pages'] > 1"> 92 <div class="pageNavigationLayout"> 93 <a tal:define="previous batch_info/previous" 94 tal:condition="python:previous is not None" 95 tal:attributes="href python:'%s?%s'%(request['URL'], 96 mq(request.form, b_start=0))" 97 > 98 (<<)</a> 99 <a tal:define="previous batch_info/previous" 100 tal:condition="python:previous is not None" 101 tal:attributes="href python:'%s?%s'%(request['URL'], 102 mq(request.form, b_start=previous))" 103 i18n:translate="batch_previous">Previous</a> 104 <tal:block repeat="page batch_info/pages"> 105 <tal:block condition="python:page != batch_info['start'] - 1"> 106 <a tal:attributes="href python:'%s?%s'%(request['URL'], 107 mq(request.form, b_start=page))" 108 tal:content="repeat/page/number">1</a> 109 </tal:block> 110 <tal:block condition="python:page == batch_info['start'] - 1"> 111 <span tal:content="string:${repeat/page/number}" /> 112 </tal:block> 113 </tal:block> 114 <a tal:define="next batch_info/next" 115 tal:condition="python:next is not None" 116 tal:attributes="href python:'%s?%s'%(request['URL'], 117 mq(request.form, b_start=next))" 118 i18n:translate="batch_next">Next</a> 119 <a tal:define="next batch_info/next; 120 last_page python:batch_info['pages'][-1]" 121 tal:condition="python:next is not None" 122 tal:attributes="href python:'%s?%s'%(request['URL'], 123 mq(request.form, b_start=last_page))" 58 124 > 59 <tal:block tal:condition="python: items and batch_info and batch_info['nb_pages'] > 1"> 60 <div class="batchLayout"> 61 <span i18n:translate=""> 62 Objects: 63 <strong> 64 <tal:block replace="batch_info/start" 65 i18n:name="batch_start" /> - <tal:block replace="batch_info/limit" 66 i18n:name="batch_limit" /> 67 </strong> 68 of <tal:block replace="batch_info/length" 69 i18n:name="batch_length" /> 70 </span> 71 </div> 72 <br /> 73 </tal:block> 74 <table class="contentListing" width="100%"> 75 <span tal:repeat="rows batches" tal:omit-tag=""> 76 <span tal:repeat="student rows"> 77 <tr tal:condition="student" 78 tal:attributes="class python:test(repeat['student'].even(), 'even ajaxtd', 'odd ajaxtd')"> 79 <td><a href="id" tal:attributes="href string:${context/portal_url}/campus/students/${student/id}" 80 tal:content="student/id"></a></td> 81 <td> 82 <span tal:replace="student/name" /> 83 </td> 84 <td><span tal:replace="student/matric_no" /></td> 85 <td><span tal:replace="student/jamb_reg_no" /></td> 86 <td tal:condition="options/co_view|nothing"> 87 <a href="id" 88 tal:attributes="href string:${context/portal_url}/campus/students/${student/id}/clearance/external_clearance_edit_form" 89 target="edit" 90 onclick="javascript:window.open('','edit','width=600, height=700, directories=no, toolbar=no, location=no, menubar=no, scrollbars=yes, status=no, resizable=no, dependent=no')" 91 >[view and change state]</a></td> 92 <td tal:condition="options/ca_view|nothing"> 93 <a href="id" 94 tal:attributes="href string:${context/portal_url}/campus/students/${student/id}/study_course/study_course/${student/level}/external_study_level_view" 95 target="edit" 96 onclick="javascript:window.open('','edit','width=600, height=700, directories=no, toolbar=no, location=no, menubar=no, scrollbars=yes, status=no, resizable=no, dependent=no')" 97 >[view and validate course list]</a></td> 98 </tr> 99 </span> 100 </span> 101 </table> 102 <tal:block condition="python:batch_info and batch_info['nb_pages'] > 1"> 103 <div class="pageNavigationLayout"> 104 <a tal:define="previous batch_info/previous" 105 tal:condition="python:previous is not None" 106 tal:attributes="href python:'%s?%s'%(request['URL'], 107 mq(request.form, b_start=0))" 108 > 109 (<<)</a> 110 <a tal:define="previous batch_info/previous" 111 tal:condition="python:previous is not None" 112 tal:attributes="href python:'%s?%s'%(request['URL'], 113 mq(request.form, b_start=previous))" 114 i18n:translate="batch_previous">Previous</a> 115 <tal:block repeat="page batch_info/pages"> 116 <tal:block condition="python:page != batch_info['start'] - 1"> 117 <a tal:attributes="href python:'%s?%s'%(request['URL'], 118 mq(request.form, b_start=page))" 119 tal:content="repeat/page/number">1</a> 120 </tal:block> 121 <tal:block condition="python:page == batch_info['start'] - 1"> 122 <span tal:content="string:${repeat/page/number}" /> 123 </tal:block> 124 </tal:block> 125 <a tal:define="next batch_info/next" 126 tal:condition="python:next is not None" 127 tal:attributes="href python:'%s?%s'%(request['URL'], 128 mq(request.form, b_start=next))" 129 i18n:translate="batch_next">Next</a> 130 <a tal:define="next batch_info/next; 131 last_page python:batch_info['pages'][-1]" 132 tal:condition="python:next is not None" 133 tal:attributes="href python:'%s?%s'%(request['URL'], 134 mq(request.form, b_start=last_page))" 135 > 136 (>>)</a> 137 </div> 138 </tal:block> 139 </span> 125 (>>)</a> 126 </div> 127 </tal:block> 140 128 </span> 141 129 </span> 142 </metal:main> 130 </span> 131 </metal:main> 143 132 </metal:body> 144
Note: See TracChangeset for help on using the changeset viewer.