Changeset 1783 for WAeUP_SRP/trunk
- Timestamp:
- 15 May 2007, 07:49:50 (18 years ago)
- Location:
- WAeUP_SRP/trunk
- Files:
-
- 1 deleted
- 52 edited
Legend:
- Unmodified
- Added
- Removed
-
WAeUP_SRP/trunk/Students.py
r1775 r1783 378 378 ###) 379 379 380 security.declareProtected(ModifyPortalContent,"fixVerdicts")###(381 def fixVerdicts(self,csv_file=None):382 """fix wrong uploaded verdicts"""383 import transaction384 import random385 wftool = self.portal_workflow386 current = DateTime.DateTime().strftime("%d-%m-%y_%H_%M_%S")387 students_folder = self.portal_url.getPortalObject().campus.students388 tr_count = 1389 total = 0390 if csv_file is None:391 name = 'Verdicts'392 else:393 name = csv_file394 st_cat = self.students_catalog395 no_import = []396 verdicts_voc = self.portal_vocabularies.verdicts397 rverdicts = {}398 for k,v in verdicts_voc.items():399 rverdicts[v.upper()] = k400 rverdicts['STUDENT ON PROBATION'] = 'C'401 logger = logging.getLogger('Students.StudentsFolder.fixVerdicts')402 try:403 verdicts = csv.DictReader(open("%s/import/%s.csv" % (i_home,name),"rb"))404 except:405 logger.error('Error reading %s.csv' % name)406 return407 start = True408 #import pdb;pdb.set_trace()409 for verdict in verdicts:410 if start:411 start = False412 logger.info('Start loading from %s.csv' % name)413 s = ','.join(['"%s"' % fn for fn in verdict.keys()])414 no_import.append('%s,"Error"' % s)415 format = ','.join(['"%%(%s)s"' % fn for fn in verdict.keys()])416 format_error = format + ',"%(Error)s"'417 matric_no = verdict.get('MAT NO')418 if not matric_no:419 continue420 matric_no = matric_no.upper()421 if matric_no == '':422 continue423 verdict_code = rverdicts.get(verdict.get('CATEGORY'),None)424 if verdict_code is None:425 continue426 sres = st_cat(matric_no = matric_no)427 if sres:428 student_id = sres[0].id429 student_obj = getattr(students_folder,student_id,None)430 if student_obj:431 study_course = getattr(student_obj,'study_course',None)432 if study_course is None:433 verdict['Error'] = "Student did not yet log in"434 no_import.append( format_error % verdict)435 continue436 st_cat.modifyRecord(id = student_id,437 verdict=verdict_code)438 439 dsc = {}440 dsc['current_verdict'] = verdict_code441 study_course.getContent().edit(mapping=dsc)442 else:443 verdict['Error'] = "Not found in students_catalog"444 no_import.append( format_error % verdict)445 continue446 tr_count += 1447 if tr_count > 1000:448 if len(no_import) > 0:449 open("%s/import/%s_not_imported%s.csv" % (i_home,name,current),"a").write(450 '\n'.join(no_import) + '\n')451 no_import = []452 em = '%d transactions commited total %s\n' % (tr_count,total)453 transaction.commit()454 regs = []455 logger.info(em)456 total += tr_count457 tr_count = 0458 open("%s/import/%s_not_imported%s.csv" % (i_home,name,current),"a").write(459 '\n'.join(no_import))460 total += tr_count461 em = '%d total transactions commited' % (total)462 logger.info(em)463 return self.REQUEST.RESPONSE.redirect("%s" % self.REQUEST.get('URL1'))464 ###)465 380 466 381 security.declareProtected(ModifyPortalContent,"fixAllNames")###( … … 563 478 ###) 564 479 565 security.declareProtected(ModifyPortalContent,"fixAllEntryModeForReturning")###( 566 def fixAllEntryModeForReturning(self): 567 "read all Returning*.csv" 568 ipath = "%s/import/" % i_home 569 names = os.listdir(ipath) 570 for name in names: 571 head,tail = os.path.splitext(name) 572 if head.startswith('Returning')\ 573 and tail == '.csv'\ 574 and name.find('imported') < 0: 575 self.fixEntryModeForReturning(csv_file=head) 576 ###) 577 578 security.declareProtected(ModifyPortalContent,"fixEntryModeForReturning")###( 579 def fixEntryModeForReturning(self,csv_file=None): 580 """load Returning Studentdata from CSV values""" 581 import transaction 582 import random 583 wftool = self.portal_workflow 584 current = DateTime.DateTime().strftime("%d-%m-%y_%H_%M_%S") 585 students_folder = self.portal_url.getPortalObject().campus.students 586 tr_count = 1 587 total = 0 588 if csv_file is None: 589 name = 'Returning' 590 else: 591 name = csv_file 592 table = self.returning_import 593 st_cat = self.students_catalog 594 no_import = [] 595 logger = logging.getLogger('Students.StudentsFolder.fixEntryModeForReturning') 596 try: 597 returning = csv.DictReader(open("%s/import/%s.csv" % (i_home,name),"rb")) 598 except: 599 logger.error('Error reading %s.csv' % name) 600 return 601 start = True 602 for student in returning: 603 if start: 604 start = False 605 logger.info('Start loading from %s.csv' % name) 606 s = ','.join(['"%s"' % fn for fn in student.keys()]) 607 no_import.append('%s,"Error"' % s) 608 format = ','.join(['"%%(%s)s"' % fn for fn in student.keys()]) 609 format_error = format + ',"%(Error)s"' 610 matric_no = student.get('matric_no') 611 if not matric_no: 612 continue 613 matric_no = matric_no.upper() 614 student['matric_no'] = matric_no 615 if matric_no == '': 616 continue 617 if not table(matric_no = matric_no): 618 student['Error'] = "Not imported yet" 619 no_import.append( format_error % student) 620 continue 621 student_id = None 622 app = None 623 per = None 624 if st_cat(matric_no = matric_no): 625 student_id = st_cat(matric_no = matric_no)[0].id 626 student_obj = getattr(students_folder,student_id,None) 627 if student_obj: 628 app = getattr(student_obj,'application',None) 629 if app is not None: 630 app_doc = app.getContent() 631 per = getattr(student_obj,'personal',None) 632 if per is not None: 633 per_doc = per.getContent() 634 student['Mode_of_Entry'] = entry_mode = student.get('Mode of Entry').upper() 635 student['Permanent_Address'] = perm_address = student.get('Permanent Address') 636 #import pdb;pdb.set_trace() 637 if not entry_mode: 638 student['Error'] = "'Mode of Entry' empty" 639 no_import.append( format_error % student) 640 continue 641 try: 642 table.modifyRecord(matric_no = matric_no, 643 Mode_of_Entry = entry_mode, 644 Permanent_Address = perm_address) 645 except KeyError: 646 student['Error'] = "Not found in returning_import" 647 no_import.append( format_error % student) 648 continue 649 if student_id is not None: 650 try: 651 st_cat.modifyRecord(id = student_id, 652 entry_mode=entry_mode) 653 except KeyError: 654 student['Error'] = "Not found in students_catalog" 655 no_import.append( format_error % student) 656 continue 657 if app is not None: 658 da = {} 659 da['entry_mode'] = entry_mode 660 app_doc.edit(mapping=da) 661 if per is not None: 662 dp = {} 663 dp['perm_address'] = perm_address 664 per_doc.edit(mapping=dp) 665 tr_count += 1 666 if tr_count > 1000: 667 if len(no_import) > 0: 668 open("%s/import/%s_not_imported%s.csv" % (i_home,name,current),"a").write( 669 '\n'.join(no_import) + '\n') 670 no_import = [] 671 em = '%d transactions commited total %s\n' % (tr_count,total) 672 transaction.commit() 673 regs = [] 674 logger.info(em) 675 total += tr_count 676 tr_count = 0 677 open("%s/import/%s_not_imported%s.csv" % (i_home,name,current),"a").write( 678 '\n'.join(no_import)) 679 return self.REQUEST.RESPONSE.redirect("%s" % self.REQUEST.get('URL1')) 680 ###) 480 681 481 682 482 security.declareProtected(ModifyPortalContent,"updateReturningStudents")###( -
WAeUP_SRP/trunk/Students.unused_methods.txt
r1775 r1783 1247 1247 return self.REQUEST.RESPONSE.redirect("%s" % self.REQUEST.get('URL1')) 1248 1248 ###) 1249 1250 1251 security.declareProtected(ModifyPortalContent,"fixVerdicts")###( 1252 def fixVerdicts(self,csv_file=None): 1253 """fix wrong uploaded verdicts""" 1254 import transaction 1255 import random 1256 wftool = self.portal_workflow 1257 current = DateTime.DateTime().strftime("%d-%m-%y_%H_%M_%S") 1258 students_folder = self.portal_url.getPortalObject().campus.students 1259 tr_count = 1 1260 total = 0 1261 if csv_file is None: 1262 name = 'Verdicts' 1263 else: 1264 name = csv_file 1265 st_cat = self.students_catalog 1266 no_import = [] 1267 verdicts_voc = self.portal_vocabularies.verdicts 1268 rverdicts = {} 1269 for k,v in verdicts_voc.items(): 1270 rverdicts[v.upper()] = k 1271 rverdicts['STUDENT ON PROBATION'] = 'C' 1272 logger = logging.getLogger('Students.StudentsFolder.fixVerdicts') 1273 try: 1274 verdicts = csv.DictReader(open("%s/import/%s.csv" % (i_home,name),"rb")) 1275 except: 1276 logger.error('Error reading %s.csv' % name) 1277 return 1278 start = True 1279 #import pdb;pdb.set_trace() 1280 for verdict in verdicts: 1281 if start: 1282 start = False 1283 logger.info('Start loading from %s.csv' % name) 1284 s = ','.join(['"%s"' % fn for fn in verdict.keys()]) 1285 no_import.append('%s,"Error"' % s) 1286 format = ','.join(['"%%(%s)s"' % fn for fn in verdict.keys()]) 1287 format_error = format + ',"%(Error)s"' 1288 matric_no = verdict.get('MAT NO') 1289 if not matric_no: 1290 continue 1291 matric_no = matric_no.upper() 1292 if matric_no == '': 1293 continue 1294 verdict_code = rverdicts.get(verdict.get('CATEGORY'),None) 1295 if verdict_code is None: 1296 continue 1297 sres = st_cat(matric_no = matric_no) 1298 if sres: 1299 student_id = sres[0].id 1300 student_obj = getattr(students_folder,student_id,None) 1301 if student_obj: 1302 study_course = getattr(student_obj,'study_course',None) 1303 if study_course is None: 1304 verdict['Error'] = "Student did not yet log in" 1305 no_import.append( format_error % verdict) 1306 continue 1307 st_cat.modifyRecord(id = student_id, 1308 verdict=verdict_code) 1309 1310 dsc = {} 1311 dsc['current_verdict'] = verdict_code 1312 study_course.getContent().edit(mapping=dsc) 1313 else: 1314 verdict['Error'] = "Not found in students_catalog" 1315 no_import.append( format_error % verdict) 1316 continue 1317 tr_count += 1 1318 if tr_count > 1000: 1319 if len(no_import) > 0: 1320 open("%s/import/%s_not_imported%s.csv" % (i_home,name,current),"a").write( 1321 '\n'.join(no_import) + '\n') 1322 no_import = [] 1323 em = '%d transactions commited total %s\n' % (tr_count,total) 1324 transaction.commit() 1325 regs = [] 1326 logger.info(em) 1327 total += tr_count 1328 tr_count = 0 1329 open("%s/import/%s_not_imported%s.csv" % (i_home,name,current),"a").write( 1330 '\n'.join(no_import)) 1331 total += tr_count 1332 em = '%d total transactions commited' % (total) 1333 logger.info(em) 1334 return self.REQUEST.RESPONSE.redirect("%s" % self.REQUEST.get('URL1')) 1335 ###) 1336 1337 1338 security.declareProtected(ModifyPortalContent,"fixAllEntryModeForReturning")###( 1339 def fixAllEntryModeForReturning(self): 1340 "read all Returning*.csv" 1341 ipath = "%s/import/" % i_home 1342 names = os.listdir(ipath) 1343 for name in names: 1344 head,tail = os.path.splitext(name) 1345 if head.startswith('Returning')\ 1346 and tail == '.csv'\ 1347 and name.find('imported') < 0: 1348 self.fixEntryModeForReturning(csv_file=head) 1349 ###) 1350 1351 security.declareProtected(ModifyPortalContent,"fixEntryModeForReturning")###( 1352 def fixEntryModeForReturning(self,csv_file=None): 1353 """load Returning Studentdata from CSV values""" 1354 import transaction 1355 import random 1356 wftool = self.portal_workflow 1357 current = DateTime.DateTime().strftime("%d-%m-%y_%H_%M_%S") 1358 students_folder = self.portal_url.getPortalObject().campus.students 1359 tr_count = 1 1360 total = 0 1361 if csv_file is None: 1362 name = 'Returning' 1363 else: 1364 name = csv_file 1365 table = self.returning_import 1366 st_cat = self.students_catalog 1367 no_import = [] 1368 logger = logging.getLogger('Students.StudentsFolder.fixEntryModeForReturning') 1369 try: 1370 returning = csv.DictReader(open("%s/import/%s.csv" % (i_home,name),"rb")) 1371 except: 1372 logger.error('Error reading %s.csv' % name) 1373 return 1374 start = True 1375 for student in returning: 1376 if start: 1377 start = False 1378 logger.info('Start loading from %s.csv' % name) 1379 s = ','.join(['"%s"' % fn for fn in student.keys()]) 1380 no_import.append('%s,"Error"' % s) 1381 format = ','.join(['"%%(%s)s"' % fn for fn in student.keys()]) 1382 format_error = format + ',"%(Error)s"' 1383 matric_no = student.get('matric_no') 1384 if not matric_no: 1385 continue 1386 matric_no = matric_no.upper() 1387 student['matric_no'] = matric_no 1388 if matric_no == '': 1389 continue 1390 if not table(matric_no = matric_no): 1391 student['Error'] = "Not imported yet" 1392 no_import.append( format_error % student) 1393 continue 1394 student_id = None 1395 app = None 1396 per = None 1397 if st_cat(matric_no = matric_no): 1398 student_id = st_cat(matric_no = matric_no)[0].id 1399 student_obj = getattr(students_folder,student_id,None) 1400 if student_obj: 1401 app = getattr(student_obj,'application',None) 1402 if app is not None: 1403 app_doc = app.getContent() 1404 per = getattr(student_obj,'personal',None) 1405 if per is not None: 1406 per_doc = per.getContent() 1407 student['Mode_of_Entry'] = entry_mode = student.get('Mode of Entry').upper() 1408 student['Permanent_Address'] = perm_address = student.get('Permanent Address') 1409 #import pdb;pdb.set_trace() 1410 if not entry_mode: 1411 student['Error'] = "'Mode of Entry' empty" 1412 no_import.append( format_error % student) 1413 continue 1414 try: 1415 table.modifyRecord(matric_no = matric_no, 1416 Mode_of_Entry = entry_mode, 1417 Permanent_Address = perm_address) 1418 except KeyError: 1419 student['Error'] = "Not found in returning_import" 1420 no_import.append( format_error % student) 1421 continue 1422 if student_id is not None: 1423 try: 1424 st_cat.modifyRecord(id = student_id, 1425 entry_mode=entry_mode) 1426 except KeyError: 1427 student['Error'] = "Not found in students_catalog" 1428 no_import.append( format_error % student) 1429 continue 1430 if app is not None: 1431 da = {} 1432 da['entry_mode'] = entry_mode 1433 app_doc.edit(mapping=da) 1434 if per is not None: 1435 dp = {} 1436 dp['perm_address'] = perm_address 1437 per_doc.edit(mapping=dp) 1438 tr_count += 1 1439 if tr_count > 1000: 1440 if len(no_import) > 0: 1441 open("%s/import/%s_not_imported%s.csv" % (i_home,name,current),"a").write( 1442 '\n'.join(no_import) + '\n') 1443 no_import = [] 1444 em = '%d transactions commited total %s\n' % (tr_count,total) 1445 transaction.commit() 1446 regs = [] 1447 logger.info(em) 1448 total += tr_count 1449 tr_count = 0 1450 open("%s/import/%s_not_imported%s.csv" % (i_home,name,current),"a").write( 1451 '\n'.join(no_import)) 1452 return self.REQUEST.RESPONSE.redirect("%s" % self.REQUEST.get('URL1')) 1453 ###) -
WAeUP_SRP/trunk/Widgets.py
r1772 r1783 127 127 c_ids = [c.id for c in self.portal_catalog({'meta_type': "Course"})] 128 128 if hasattr(self.aq_parent,value): 129 err = ' Course %s already exists' % (value)129 err = 'course %s already exists' % (value) 130 130 elif value not in c_ids: 131 err = ' Course %s does not exist' % (value)131 err = 'course %s does not exist' % (value) 132 132 if err: 133 133 datastructure.setError(widget_id, err) … … 159 159 res = self.portal_catalog(meta_type= "Course",id = value) 160 160 if len(res) > 0: 161 err = ' Course %s already exists' % (value)161 err = 'course %s already exists' % (value) 162 162 if err: 163 163 datastructure.setError(widget_id, err) … … 231 231 elif self.portal_catalog(portal_type=portal_type_query,id=value): 232 232 brain = self.portal_catalog(portal_type=portal_type_query,id=value)[0] 233 err = 'An %s object with the Id %s already exists at %s '\233 err = 'An %s object with the Id %s already exists at %s.'\ 234 234 % (brain.portal_type,value,brain.getPath()) 235 235 if err: … … 305 305 if not valid: #or not (len(value) == self.digits + self.letters and value[:self.digits].isdigit() and value[self.digits:].isalpha()): 306 306 #err = 'Invalid number, the expected format is: %s%s with N = Number, L = Letter' % (self.digits_str,self.letters_str) 307 err = ' Invalid number'307 err = 'invalid number' 308 308 elif self.reference == '': 309 309 #s = getStudentByRegNo(self,value) 310 310 pume = jamb_nr_catalog(jamb_reg_no = value) 311 311 if len(pume) < 1: 312 err = ' No Student with JAMB RegNo %s.' % (value)312 err = 'no Student with JAMB RegNo %s' % (value) 313 313 else: 314 314 datastructure['pume'] = pume[0] … … 319 319 jamb_reg_no = record.Entryregno 320 320 if jamb_reg_no != value: 321 err = ' Entry Registration Nr does not match.'321 err = 'Registration number does not match.' 322 322 if err: 323 323 datastructure.setError(widget_id, err) … … 354 354 #import pdb;pdb.set_trace() 355 355 if not valid or len(value) < 2: 356 err = ' Invalid String'356 err = 'invalid string' 357 357 elif not record or datastructure.errors: 358 358 err = 0 … … 443 443 value = datastructure[widget_id] 444 444 if not valid or not value: 445 err = ' Invalid matric_no string %s.' % value445 err = 'invalid string %s' % value 446 446 logger.info('Invalid matric_no string %s' % value) 447 447 else: … … 452 452 if len(res) < 1: 453 453 logger.info('matric_no %s not found' % value) 454 err = ' No student with matric_no %s.' % (value)454 err = 'no student with matric_no %s' % (value) 455 455 break 456 456 datastructure['student'] = res[0] … … 458 458 res = results(matric_no = value) 459 459 if len(res) < 1: 460 err = ' No results with matric_no %s.' % (value)460 err = 'no results with matric_no %s' % (value) 461 461 continue 462 462 datastructure['results'] = res … … 487 487 value = datastructure[widget_id] 488 488 if not valid or not value: 489 err = ' Invalid id string %s.' % value489 err = 'invalid Id string %s' % value 490 490 logger.info('Invalid id string %s' % value) 491 491 datastructure['student'] = None … … 495 495 if not res: 496 496 logger.info('Student id %s not found' % value) 497 err = ' No student with id %s.' % (value)497 err = 'no student with Id %s' % (value) 498 498 datastructure['student'] = None 499 499 else: … … 632 632 while 1: 633 633 if not s and g: 634 err = "no subject grad for subject %s " % s634 err = "no subject grade for subject %s " % s 635 635 break 636 636 i = 0 … … 773 773 elif len(n) != 10: 774 774 do = 0 775 err = ' Invalid PIN length %d' % len(n)775 err = 'invalid PIN length %d' % len(n) 776 776 s_logger.info('%s entered invalid PIN with length %d' % (s_id,len(n))) 777 777 elif self.reference == "": … … 790 790 break 791 791 elif ok == -2: 792 err = 'Service already activated but with a different PIN.'792 err = 'Service already is activated but with a different PIN.' 793 793 s_logger.info('%s/%s repeatedly activated service but with different PIN %s' % (s_id,ref,pin_str)) 794 794 break 795 795 elif ok == -1: 796 err = ' Invalid PIN'796 err = 'invalid PIN' 797 797 s_logger.info('%s/%s entered invalid PIN %s' % (s_id,ref,pin_str)) 798 798 break … … 817 817 s_logger.info('%s/%s successfully used PIN %s' % (s_id,ref,pin_str)) 818 818 if student is None: 819 err = " Student not found."819 err = "student not found" 820 820 s_logger.info('%s not found in admission list' % (ref)) 821 821 break … … 830 830 s_logger.info('%s/%s (non-member) repeatedly checked admission with PIN %s' % (s_id,ref,pin_str)) 831 831 else: 832 err = " Unknown error" % s_id832 err = "unknown error" % s_id 833 833 s_logger.info('%s/%s repeatedly activated service with PIN %s' % (s_id,ref,pin_str)) 834 834 break -
WAeUP_SRP/trunk/profiles/default/actionicons.xml
r1717 r1783 105 105 title="Checkin revision" priority="160" 106 106 icon_expr="actionicon_version_validate.png"/> 107 107 108 108 <action-icon category="global" action_id="configThemes" 109 109 title="Portal Themes" priority="0" … … 124 124 <action-icon category="global" action_id="members" 125 125 title="Portal Members" priority="5" 126 icon_expr="actionicon_directories.png"/> 126 icon_expr="actionicon_directories.png"/> 127 127 <action-icon category="global" action_id="waeup_search" 128 128 title="Search Portal" priority="6" 129 icon_expr="actionicon_search.png"/> 130 129 icon_expr="actionicon_search.png"/> 130 131 131 <action-icon category="global_header" action_id="print" 132 132 title="Print" priority="0" … … 143 143 title="Contact" priority="0" 144 144 icon_expr="actionicon_email.png"/> 145 145 146 146 <action-icon category="user" action_id="login" 147 147 title="Staff Login" priority="0" … … 162 162 title="User preferences" priority="5" 163 163 icon_expr="actionicon_user_preferences.png"/> 164 164 165 165 <action-icon category="student" action_id="login_staff" 166 166 title="Staff Login" priority="0" … … 194 194 title="Contact" priority="6" 195 195 icon_expr="blank.gif"/> 196 <action-icon category="import" action_id="import_faculties" 197 title="Import Faculties" priority="0" 198 icon_expr="actionicon_submit.png"/> 199 <action-icon category="import" 200 action_id="import_departments" 201 title="Import Departments" priority="1" 202 icon_expr="actionicon_submit.png"/> 203 <action-icon category="import" action_id="import_courses" 204 title="Import Courses" priority="2" 205 icon_expr="actionicon_submit.png"/> 206 <action-icon category="import" 207 action_id="import_certificates" 208 title="Import Certificates" priority="3" 209 icon_expr="actionicon_submit.png"/> 210 <action-icon category="import" 211 action_id="import_certificate_courses" 212 title="Import CertCourses" priority="4" 213 icon_expr="actionicon_submit.png"/> 214 <action-icon category="import" 215 action_id="import_fulltime_students" 216 title="Import Fulltime Students" priority="5" 217 icon_expr="actionicon_submit.png"/> 218 <action-icon category="import" action_id="import_jamb_data" 219 title="Import JAMB Data" priority="6" 220 icon_expr="actionicon_submit.png"/> 221 <action-icon category="import" action_id="import_pume_data" 222 title="Import PUME Results" priority="7" 223 icon_expr="actionicon_submit.png"/> 224 <action-icon category="import" 225 action_id="import_fulltime_student_results" 226 title="Import Fulltime Student Results" 227 priority="7" icon_expr="actionicon_submit.png"/> 228 <action-icon category="import" 229 action_id="import_pin_batches" 230 title="Import PIN Batches" 231 priority="8" icon_expr="actionicon_submit.png"/> 232 <action-icon category="export" action_id="export_faculties" 233 title="Export Faculties" priority="1" 234 icon_expr="actionicon_unpublish.png"/> 235 <action-icon category="export" 236 action_id="export_departments" 237 title="Export Departments" priority="2" 238 icon_expr="actionicon_unpublish.png"/> 239 <action-icon category="export" action_id="export_courses" 240 title="Export Courses" priority="3" 241 icon_expr="actionicon_unpublish.png"/> 242 <action-icon category="export" 243 action_id="export_certificates" 244 title="Export Certificates" priority="4" 245 icon_expr="actionicon_unpublish.png"/> 246 <action-icon category="export" 247 action_id="export_certificate_courses" 248 title="Export Certificate Courses" 249 priority="5" 250 icon_expr="actionicon_unpublish.png"/> 196 251 197 <action-icon category="student_navigation" 252 198 action_id="students_home" title="Home" … … 269 215 action_id="support" title="Enquiries" 270 216 priority="5" icon_expr="blank.gif"/> 217 271 218 <action-icon category="student_object" action_id="slip" 272 219 title="Acknowledegement Slip" priority="1" 273 220 icon_expr="bell.png"/> 221 274 222 <action-icon category="student" action_id="login_student" 275 223 title="Student Login" priority="0" … … 289 237 <action-icon category="student" action_id="display_session_results" 290 238 title="Display Session Results" priority="5" 291 icon_expr="zoom.png"/> 239 icon_expr="bell.png"/> 240 <action-icon category="student" action_id="firsttime_login" 241 title="Register for Previous Sessions" priority="6" 242 icon_expr="bell.png"/> 292 243 <action-icon category="student" action_id="register_courses" 293 244 title="Register Courses" priority="5" -
WAeUP_SRP/trunk/profiles/default/actions.xml
r1717 r1783 130 130 <permission>View</permission> 131 131 </action> 132 <action title="Check Adm . Details" action_id="check_admission"132 <action title="Check Admission" action_id="check_admission" 133 133 category="student" condition_expr="not:member" 134 134 url_expr="string:${portal_url}/check_admission" visible="True"> 135 135 <permission>View</permission> 136 136 </action> 137 <action title=" View Sess. Results" action_id="display_session_results"137 <action title="Return 2006/2007" action_id="display_session_results" 138 138 category="student" condition_expr="not:member" 139 139 url_expr="string:${portal_url}/display_session_results" visible="True"> 140 <permission>View</permission> 141 </action> 142 <action title="Previous Sessions" action_id="firsttime_login" 143 category="student" condition_expr="not:member" 144 url_expr="string:${portal_url}/firsttime_login" visible="True"> 140 145 <permission>View</permission> 141 146 </action> -
WAeUP_SRP/trunk/profiles/default/layouts/student_course_result.xml
r1449 r1783 1 <?xml version="1.0"?> 2 <?xml-stylesheet type="text/xsl" href="layout.xsl"?> 3 <object name="course_results" meta_type="CPS Layout"> 4 <property name="layout_create_method"></property> 5 <property name="layout_edit_method"></property> 6 <property name="layout_view_method"></property> 7 <property name="style_prefix">layout_waeup_</property> 8 <property name="flexible_widgets"/> 9 <property name="validate_values_expr"></property> 10 <widget name="code" meta_type="CertificateCourseId Widget"> 11 <property name="title">Course Code</property> 12 <property name="fields"> 13 <element value="code"/> 14 </property> 15 <property name="is_required">True</property> 16 <property name="label">Course Code</property> 17 <property name="label_edit">Course Code</property> 18 <property name="readonly_layout_modes"/> 19 <property name="hidden_layout_modes"> 20 <element value="view"/> 21 <element value="edit"/> 22 </property> 23 <property name="hidden_readonly_layout_modes"/> 24 </widget> 25 <widget name="credits" meta_type="Int Widget"> 26 <property name="title">Credits</property> 27 <property name="fields"> 28 <element value="credits"/> 29 </property> 30 <property name="label">Credits</property> 31 <property name="label_edit">Credits</property> 32 <property name="readonly_layout_modes"/> 33 <property name="readonly_layout_modes"> 34 <element value="edit"/> 35 <element value="create"/> 36 </property> 37 <property name="hidden_layout_modes"> 38 <element value="create"/> 39 </property> 40 <property name="hidden_readonly_layout_modes"/> 41 </widget> 42 <widget name="passmark" meta_type="Int Widget"> 43 <property name="title">Passmark</property> 44 <property name="fields"> 45 <element value="passmark"/> 46 </property> 47 <property name="is_required">False</property> 48 <property name="label">Passmark</property> 49 <property name="label_edit">Passmark</property> 50 <property name="readonly_layout_modes"> 51 <element value="edit"/> 52 <element value="create"/> 53 </property> 54 <property name="hidden_layout_modes"> 55 <element value="create"/> 56 </property> 57 <property name="hidden_readonly_layout_modes"/> 58 </widget> 59 <widget name="title" meta_type="String Widget"> 60 <property name="title">Course Title</property> 61 <property name="fields"> 62 <element value="title"/> 63 </property> 64 <property name="label">Course Title</property> 65 <property name="label_edit">Course Title</property> 66 <property name="readonly_layout_modes"> 67 <element value="edit"/> 68 <element value="create"/> 69 </property> 70 <property name="hidden_layout_modes"> 71 <element value="create"/> 72 </property> 73 <property name="hidden_readonly_layout_modes"/> 74 <property name="display_width">60</property> 75 </widget> 76 <widget name="ansbook" meta_type="String Widget"> 77 <property name="title">Ansbook</property> 78 <property name="fields"> 79 <element value="ansbook"/> 80 </property> 81 <property name="label">Ansbook</property> 82 <property name="label_edit">Ansbook</property> 83 <property name="readonly_layout_modes"/> 84 <property name="hidden_layout_modes"/> 85 <property name="hidden_readonly_layout_modes"/> 86 </widget> 87 <widget name="semester" meta_type="Int Widget"> 88 <property name="title">Semester</property> 89 <property name="fields"> 90 <element value="semester"/> 91 </property> 92 <property name="label">Semester</property> 93 <property name="label_edit">Semester</property> 94 <property name="readonly_layout_modes"/> 95 <property name="hidden_layout_modes"/> 96 <property name="hidden_readonly_layout_modes"/> 97 </widget> 98 <widget name="carry_level" meta_type="String Widget"> 99 <property name="title">Carry Level</property> 100 <property name="fields"> 101 <element value="carry_level"/> 102 </property> 103 <property name="label">Carry Level</property> 104 <property name="label_edit">Carry Level</property> 105 <property name="readonly_layout_modes"/> 106 <property name="hidden_layout_modes"/> 107 <property name="hidden_readonly_layout_modes"/> 108 </widget> 109 <widget name="grade" meta_type="String Widget"> 110 <property name="title">Grade</property> 111 <property name="fields"> 112 <element value="grade"/> 113 </property> 114 <property name="label">Grade</property> 115 <property name="label_edit">Grade</property> 116 <property name="readonly_layout_modes"/> 117 <property name="hidden_layout_modes"/> 118 <property name="hidden_readonly_layout_modes"/> 119 </widget> 120 <widget name="import_id" meta_type="String Widget"> 121 <property name="title">ID imported</property> 122 <property name="fields"> 123 <element value="import_id"/> 124 </property> 125 <property name="label">ID imported</property> 126 <property name="label_edit">ID imported</property> 127 <property name="readonly_layout_modes"> 128 <element value="edit"/> 129 <element value="create"/> 130 </property> 131 <property name="hidden_layout_modes"> 132 <element value="create"/> 133 </property> 134 <property name="hidden_readonly_layout_modes"/> 135 </widget> 136 <widget name="score" meta_type="Int Widget"> 137 <property name="title">Score</property> 138 <property name="fields"> 139 <element value="score"/> 140 </property> 141 <property name="label">Score</property> 142 <property name="label_edit">Score</property> 143 <property name="readonly_layout_modes"> 144 </property> 145 <property name="hidden_layout_modes"/> 146 <property name="hidden_readonly_layout_modes"/> 147 </widget> 148 <widget name="status" meta_type="String Widget"> 149 <property name="title">Status</property> 150 <property name="fields"> 151 <element value="status"/> 152 </property> 153 <property name="label">Status</property> 154 <property name="label_edit">Status</property> 155 <property name="readonly_layout_modes"> 156 <element value="edit"/> 157 <element value="create"/> 158 </property> 159 <property name="hidden_layout_modes"/> 160 <property name="hidden_readonly_layout_modes"/> 161 </widget> 162 <widget name="weight" meta_type="String Widget"> 163 <property name="title">Weight</property> 164 <property name="fields"> 165 <element value="weight"/> 166 </property> 167 <property name="label">Weight</property> 168 <property name="label_edit">Weight</property> 169 <property name="readonly_layout_modes"/> 170 <property name="hidden_layout_modes"/> 171 <property name="hidden_readonly_layout_modes"/> 172 </widget> 173 <table> 174 <row> 175 <cell name="code"/> 176 </row> 177 <row> 178 <cell name="title"/> 179 </row> 180 <row> 181 <cell name="semester"/> 182 </row> 183 <row> 184 <cell name="credits"/> 185 </row> 186 <row> 187 <cell name="passmark"/> 188 </row> 189 <row> 190 <cell name="grade"/> 191 </row> 192 <row> 193 <cell name="ansbook"/> 194 </row> 195 <row> 196 <cell name="status"/> 197 </row> 198 <row> 199 <cell name="score"/> 200 </row> 201 <row> 202 <cell name="weight"/> 203 </row> 204 <row> 205 <cell name="gpa"/> 206 </row> 207 <row> 208 <cell name="carry_level"/> 209 </row> 210 <row> 211 <cell name="import_id"/> 212 </row> 213 </table> 214 </object> 1 <?xml version="1.0" ?> 2 - <object name="student_course_result" meta_type="CPS Layout"> 3 <property name="layout_create_method" /> 4 <property name="layout_edit_method" /> 5 <property name="layout_view_method" /> 6 <property name="style_prefix">layout_waeup_</property> 7 <property name="flexible_widgets" /> 8 <property name="validate_values_expr" /> 9 + <widget name="ansbook" meta_type="String Widget"> 10 <property name="title">Ansbook</property> 11 - <property name="fields"> 12 <element value="ansbook" /> 13 </property> 14 <property name="label">Ansbook</property> 15 <property name="label_edit">Ansbook</property> 16 <property name="readonly_layout_modes" /> 17 <property name="hidden_layout_modes" /> 18 <property name="hidden_readonly_layout_modes" /> 19 </widget> 20 - <widget name="carry_level" meta_type="String Widget"> 21 <property name="title">Carry Level</property> 22 - <property name="fields"> 23 <element value="carry_level" /> 24 </property> 25 <property name="label">Carry Level</property> 26 <property name="label_edit">Carry Level</property> 27 <property name="readonly_layout_modes" /> 28 <property name="hidden_layout_modes" /> 29 <property name="hidden_readonly_layout_modes" /> 30 </widget> 31 - <widget name="code" meta_type="CertificateCourseId Widget"> 32 <property name="title">Course Code</property> 33 - <property name="fields"> 34 <element value="code" /> 35 </property> 36 <property name="is_required">True</property> 37 <property name="label">Course Code</property> 38 <property name="label_edit">Course Code</property> 39 <property name="readonly_layout_modes" /> 40 - <property name="hidden_layout_modes"> 41 <element value="view" /> 42 <element value="edit" /> 43 </property> 44 <property name="hidden_readonly_layout_modes" /> 45 </widget> 46 - <widget name="core_or_elective" meta_type="Boolean Widget"> 47 <property name="title">Core or Elective</property> 48 - <property name="fields"> 49 <element value="core_or_elective" /> 50 </property> 51 <property name="is_required">True</property> 52 <property name="label">Core or Elective</property> 53 <property name="label_edit">Core or Elective</property> 54 <property name="readonly_layout_modes" /> 55 <property name="hidden_layout_modes" /> 56 <property name="hidden_readonly_layout_modes" /> 57 <property name="label_false">elective</property> 58 <property name="label_true">core</property> 59 </widget> 60 - <widget name="credits" meta_type="Int Widget"> 61 <property name="title">Credits</property> 62 - <property name="fields"> 63 <element value="credits" /> 64 </property> 65 <property name="label">Credits</property> 66 <property name="label_edit">Credits</property> 67 - <property name="readonly_layout_modes"> 68 <element value="edit" /> 69 <element value="create" /> 70 </property> 71 - <property name="hidden_layout_modes"> 72 <element value="create" /> 73 </property> 74 <property name="hidden_readonly_layout_modes" /> 75 </widget> 76 - <widget name="grade" meta_type="String Widget"> 77 <property name="title">Grade</property> 78 - <property name="fields"> 79 <element value="grade" /> 80 </property> 81 <property name="label">Grade</property> 82 <property name="label_edit">Grade</property> 83 <property name="readonly_layout_modes" /> 84 <property name="hidden_layout_modes" /> 85 <property name="hidden_readonly_layout_modes" /> 86 </widget> 87 - <widget name="import_id" meta_type="String Widget"> 88 <property name="title">ID imported</property> 89 - <property name="fields"> 90 <element value="import_id" /> 91 </property> 92 <property name="label">ID imported</property> 93 <property name="label_edit">ID imported</property> 94 - <property name="readonly_layout_modes"> 95 <element value="edit" /> 96 <element value="create" /> 97 </property> 98 - <property name="hidden_layout_modes"> 99 <element value="create" /> 100 </property> 101 <property name="hidden_readonly_layout_modes" /> 102 </widget> 103 - <widget name="passmark" meta_type="Int Widget"> 104 <property name="title">Passmark</property> 105 - <property name="fields"> 106 <element value="passmark" /> 107 </property> 108 <property name="label">Passmark</property> 109 <property name="label_edit">Passmark</property> 110 - <property name="readonly_layout_modes"> 111 <element value="edit" /> 112 <element value="create" /> 113 </property> 114 - <property name="hidden_layout_modes"> 115 <element value="create" /> 116 </property> 117 <property name="hidden_readonly_layout_modes" /> 118 </widget> 119 - <widget name="score" meta_type="Int Widget"> 120 <property name="title">Score</property> 121 - <property name="fields"> 122 <element value="score" /> 123 </property> 124 <property name="label">Score</property> 125 <property name="label_edit">Score</property> 126 <property name="readonly_layout_modes" /> 127 <property name="hidden_layout_modes" /> 128 <property name="hidden_readonly_layout_modes" /> 129 </widget> 130 - <widget name="semester" meta_type="Int Widget"> 131 <property name="title">Semester</property> 132 - <property name="fields"> 133 <element value="semester" /> 134 </property> 135 <property name="label">Semester</property> 136 <property name="label_edit">Semester</property> 137 <property name="readonly_layout_modes" /> 138 <property name="hidden_layout_modes" /> 139 <property name="hidden_readonly_layout_modes" /> 140 </widget> 141 - <widget name="status" meta_type="String Widget"> 142 <property name="title">Status</property> 143 - <property name="fields"> 144 <element value="status" /> 145 </property> 146 <property name="label">Status</property> 147 <property name="label_edit">Status</property> 148 - <property name="readonly_layout_modes"> 149 <element value="edit" /> 150 <element value="create" /> 151 </property> 152 <property name="hidden_layout_modes" /> 153 <property name="hidden_readonly_layout_modes" /> 154 </widget> 155 - <widget name="title" meta_type="String Widget"> 156 <property name="title">Course Title</property> 157 - <property name="fields"> 158 <element value="title" /> 159 </property> 160 <property name="label">Course Title</property> 161 <property name="label_edit">Course Title</property> 162 - <property name="readonly_layout_modes"> 163 <element value="edit" /> 164 <element value="create" /> 165 </property> 166 - <property name="hidden_layout_modes"> 167 <element value="create" /> 168 </property> 169 <property name="hidden_readonly_layout_modes" /> 170 <property name="display_width">60</property> 171 </widget> 172 - <widget name="weight" meta_type="String Widget"> 173 <property name="title">Weight</property> 174 - <property name="fields"> 175 <element value="weight" /> 176 </property> 177 <property name="label">Weight</property> 178 <property name="label_edit">Weight</property> 179 <property name="readonly_layout_modes" /> 180 <property name="hidden_layout_modes" /> 181 <property name="hidden_readonly_layout_modes" /> 182 </widget> 183 - <table> 184 - <row> 185 <cell name="code" /> 186 </row> 187 - <row> 188 <cell name="title" /> 189 </row> 190 - <row> 191 <cell name="semester" /> 192 </row> 193 - <row> 194 <cell name="credits" /> 195 </row> 196 - <row> 197 <cell name="passmark" /> 198 </row> 199 - <row> 200 <cell name="grade" /> 201 </row> 202 - <row> 203 <cell name="ansbook" /> 204 </row> 205 - <row> 206 <cell name="status" /> 207 </row> 208 - <row> 209 <cell name="score" /> 210 </row> 211 - <row> 212 <cell name="weight" /> 213 </row> 214 - <row> 215 <cell name="core_or_elective" /> 216 </row> 217 - <row> 218 <cell name="carry_level" /> 219 </row> 220 </table> 221 </object> -
WAeUP_SRP/trunk/profiles/default/types/AcademicsFolder.xml
r1449 r1783 51 51 <permission value="Modify portal content"/> 52 52 </action> 53 <action title="Faculties" action_id="import_faculties" category="import"54 condition_expr="here/isSectionManager" url_expr="string:${object_url}/loadFacultiesFromCSV"55 visible="True">56 <permission value="View"/>57 </action>58 <action title="Departments" action_id="import_departments" category="import"59 condition_expr="here/isSectionManager" url_expr="string:${object_url}/loadDepartmentsFromCSV"60 visible="True">61 <permission value="View"/>62 </action>63 <action title="Courses" action_id="import_courses" category="import"64 condition_expr="here/isSectionManager" url_expr="string:${object_url}/loadCoursesFromCSV"65 visible="True">66 <permission value="View"/>67 </action>68 <action title="Certificates" action_id="import_certificates"69 category="import" condition_expr="here/isSectionManager"70 url_expr="string:${object_url}/loadCertificatesFromCSV" visible="True">71 <permission value="View"/>72 </action>73 <action title="CertificateCourses" action_id="import_certificate_courses"74 category="import" condition_expr="here/isSectionManager"75 url_expr="string:${object_url}/loadCertificateCoursesFromCSV"76 visible="True">77 <permission value="View"/>78 </action>79 <action title="Faculties" action_id="export_faculties" category="export"80 condition_expr="here/isSectionManager" url_expr="string:${object_url}/exportFacultiesToCSV"81 visible="True">82 <permission value="View"/>83 </action>84 <action title="Departments" action_id="export_departments" category="export"85 condition_expr="here/isSectionManager" url_expr="string:${object_url}/exportDepartmentsToCSV"86 visible="True">87 <permission value="View"/>88 </action>89 <action title="Courses" action_id="export_courses" category="export"90 condition_expr="here/isSectionManager" url_expr="string:${object_url}/exportCoursesToCSV"91 visible="True">92 <permission value="View"/>93 </action>94 <action title="Certificates" action_id="export_certificates"95 category="export" condition_expr="here/isSectionManager"96 url_expr="string:${object_url}/exportCertificatesToCSV" visible="True">97 <permission value="View"/>98 </action>99 <action title="CertificateCourses" action_id="export_certificate_courses"100 category="export" condition_expr="here/isSectionManager"101 url_expr="string:${object_url}/exportCertificateCoursesToCSV"102 visible="True">103 <permission value="View"/>104 </action>105 53 </object> -
WAeUP_SRP/trunk/profiles/default/types/StudentsFolder.xml
r1449 r1783 50 50 condition_expr="" url_expr="string:${object/absolute_url}/folder_contents" 51 51 visible="False"/> 52 <action title="FT Students" action_id="import_fulltime_students"53 category="import" condition_expr="here/isSectionManager"54 url_expr="string:${object_url}/loadFullTimeStudentsFromCSV"55 visible="False">56 <permission value="Modify portal content"/>57 </action>58 <action title="FT Student Results"59 action_id="import_fulltime_student_results" category="import"60 condition_expr="here/isSectionManager"61 url_expr="string:${object_url}/loadFullTimeStudentsResultsFromCSV"62 visible="False">63 <permission value="Modify portal content"/>64 </action>65 <action title="JAMB Data"66 action_id="import_jamb_data" category="import"67 condition_expr="here/isSectionManager"68 url_expr="string:${object_url}/loadJAMBFromCSV"69 visible="False">70 <permission value="Modify portal content"/>71 </action>72 <action title="PUME Data"73 action_id="import_pume_data" category="import"74 condition_expr="here/isSectionManager"75 url_expr="string:${object_url}/loadPumeResultsFromCSV"76 visible="False">77 <permission value="Modify portal content"/>78 </action>79 52 </object> -
WAeUP_SRP/trunk/skins/waeup_academics/academics_search_view.pt
r911 r1783 15 15 <metal:main fill-slot="main"> 16 16 <span tal:condition="not: is_so"> 17 < metal:block use-macro="here/error_not_found/macros/not_found" />17 <span tal:content="here/illegal_view" /> 18 18 </span> 19 19 <span tal:condition="is_so" -
WAeUP_SRP/trunk/skins/waeup_academics/academics_view.pt
r913 r1783 2 2 is_so context/isSectionOfficer;" 3 3 > 4 <metal:body use-macro="here/ waeup_content_master/macros/master">4 <metal:body use-macro="here/main_template/macros/master"> 5 5 <metal:block fill-slot="header"> 6 6 <a href="" tal:condition="nothing" -
WAeUP_SRP/trunk/skins/waeup_academics/certificate_view.pt
r913 r1783 2 2 is_so context/isSectionOfficer;" 3 3 > 4 <metal:body use-macro="here/ waeup_content_master/macros/master">4 <metal:body use-macro="here/main_template/macros/master"> 5 5 <metal:block fill-slot="header"> 6 6 <a href="" -
WAeUP_SRP/trunk/skins/waeup_academics/certificates_view.pt
r913 r1783 2 2 is_so context/isSectionOfficer;" 3 3 > 4 <metal:body use-macro="here/ waeup_content_master/macros/master">4 <metal:body use-macro="here/main_template/macros/master"> 5 5 <metal:block fill-slot="header"> 6 6 <a href="" -
WAeUP_SRP/trunk/skins/waeup_academics/courses_view.pt
r1366 r1783 1 1 <metal:html> 2 <metal:body use-macro="here/ waeup_content_master/macros/master">2 <metal:body use-macro="here/main_template/macros/master"> 3 3 <metal:block fill-slot="header" 4 4 tal:define="global info context/getCoursesInfo; -
WAeUP_SRP/trunk/skins/waeup_academics/department_view.pt
r913 r1783 2 2 is_so context/isSectionOfficer;" 3 3 > 4 <metal:body use-macro="here/ waeup_content_master/macros/master">4 <metal:body use-macro="here/main_template/macros/master"> 5 5 <metal:block fill-slot="header"> 6 6 <a href="" -
WAeUP_SRP/trunk/skins/waeup_academics/faculty_view.pt
r913 r1783 2 2 is_so context/isSectionOfficer;" 3 3 > 4 <metal:body use-macro="here/ waeup_content_master/macros/master">4 <metal:body use-macro="here/main_template/macros/master"> 5 5 <metal:block fill-slot="header"> 6 6 <a href="" -
WAeUP_SRP/trunk/skins/waeup_academics/getDocumentInfo.py
r913 r1783 18 18 19 19 info = {} 20 info['doc'] = context.getContent() 20 try: 21 info['doc'] = context.getContent() 22 except: 23 return None 21 24 return info -
WAeUP_SRP/trunk/skins/waeup_academics/level_view.pt
r1646 r1783 2 2 is_so context/isSectionOfficer;" 3 3 > 4 <metal:body use-macro="here/ waeup_content_master/macros/master">4 <metal:body use-macro="here/main_template/macros/master"> 5 5 <metal:block fill-slot="header"> 6 6 <a href="" -
WAeUP_SRP/trunk/skins/waeup_accommodation/acco_folder_view.pt
r1447 r1783 3 3 beds_generated options/beds_generated|nothing;" 4 4 > 5 <metal:body use-macro="here/ waeup_content_master/macros/master">5 <metal:body use-macro="here/main_template/macros/master"> 6 6 <metal:block fill-slot="header"> 7 7 <a href="" tal:condition="nothing" -
WAeUP_SRP/trunk/skins/waeup_accommodation/acco_hall_view.pt
r1275 r1783 1 1 <metal:html tal:define="info context/getAccoHallInfo"> 2 <metal:body use-macro="here/ waeup_content_master/macros/master">2 <metal:body use-macro="here/main_template/macros/master"> 3 3 <metal:block fill-slot="header"> 4 4 <a href="" -
WAeUP_SRP/trunk/skins/waeup_default/import_form.pt
r1771 r1783 7 7 > 8 8 <metal:block define-macro="edit_form"> 9 <metal:block use-macro="here/ waeup_content_master/macros/master">9 <metal:block use-macro="here/main_template/macros/master"> 10 10 <metal:block fill-slot="main"> 11 11 <h3>Import Data!</h3> -
WAeUP_SRP/trunk/skins/waeup_default/srp_anonymous_view.pt
r1182 r1783 40 40 <li> Print your Sessional Result Slip (it includes your new Student Id for further logins), </li> 41 41 <li> edit your personal data record,</li> 42 <li> book your accommodation.</li> 42 <li> book your accommodation,</li> 43 <li> pay your school fee,</li> 44 <li> register your courses.</li> 43 45 </ul> 44 46 47 <br /> 48 <p>If you have to register for previous sessions, click "Previous Sessions" 49 instead of "View Sess. Results".</p> 50 45 51 <br /> 46 52 … … 89 95 <strong><a target="_blank" href="http://files.saoas.org/Procedure_for_clearance.pdf">UME</a></strong>, 90 96 <strong><a target="_blank" href="http://files.saoas.org/Procedure_for_clearance_Direct.pdf">DE</a></strong> (1 page). 91 After being cleared you are eligible for booking your accommodation on campus. 97 After being cleared you are eligible for booking your accommodation on campus, 98 you must pay your school fee and register your courses online. 92 99 </p> 93 100 <br /> -
WAeUP_SRP/trunk/skins/waeup_default/waeup_document_view.pt
r1219 r1783 1 <metal:body use-macro="here/ waeup_content_master/macros/master">1 <metal:body use-macro="here/main_template/macros/master"> 2 2 <metal:block fill-slot="header" 3 3 tal:define="s_name context/getStudentNameInContext; -
WAeUP_SRP/trunk/skins/waeup_default/waeup_edit_form.pt
r1737 r1783 9 9 is_allowed context/isSectionOfficer; 10 10 metadata metadata|nothing; 11 template here/ waeup_content_master/macros/master;11 template here/main_template/macros/master; 12 12 "> 13 13 <metal:block define-macro="edit_form"> … … 16 16 <metal:block fill-slot="header"> 17 17 <span tal:condition="not: is_allowed"> 18 < metal:block use-macro="here/error_not_found/macros/not_found" />18 <span tal:content="here/illegal_view" /> 19 19 </span> 20 20 <span tal:condition="is_allowed"> -
WAeUP_SRP/trunk/skins/waeup_design/main_template.pt
r1756 r1783 3 3 emptybody emptybody|request/emptybody|nothing; 4 4 mtool here/portal_membership; 5 can_raise python:mtool.assertViewable(here);5 6 6 utool nocall:here/portal_url; 7 7 atool here/portal_actions; … … 81 81 <table summary="Logo Block" 82 82 style="margin-left: auto; margin-right: auto; width: 100%;" 83 class="shapeNoBorder colorTransparent" cellpadding="0" 83 class="shapeNoBorder colorTransparent" cellpadding="0" 84 84 cellspacing="0"> 85 85 <tbody> 86 86 <tr> 87 <td style="width: 20px;" valign="top"></td> 88 <td valign="top" style="width: 80px; padding: 0.5em; text-align: right;"> 89 <img tal:attributes="src string:${base_url}uniben_mark.jpg" alt="Logo" 90 height="84" width="82" /> 91 </td> 92 <td style="padding: 2em 0em 0em 0em; text-align: left;" valign="top"> 93 <img tal:attributes="src string:${base_url}uniben_logo.gif" 94 alt="Logo" height="51" width="234" /> 95 </td> 96 <td style="width: 20px;" valign="top"></td> 87 <td style="width: 20px;"></td> 88 <td valign="top" style="width: 110px; padding: 10px 10px 0 0; text-align: right;"> 89 <img tal:attributes="src string:${base_url}uniben_mark.jpg" alt="Logo" /> 90 </td> 91 <td style="padding: 27px 0 0 0; text-align: left;" valign="top"> 92 <img tal:attributes="src string:${base_url}uniben_logo.gif" alt="Logo" /> 93 </td> 94 <td style="width: 20px;"></td> 97 95 </tr> 98 96 </tbody> -
WAeUP_SRP/trunk/skins/waeup_design/slip_template.pt
r1745 r1783 3 3 emptybody emptybody|request/emptybody|nothing; 4 4 mtool here/portal_membership; 5 can_raise python:mtool.assertViewable(here); 5 6 6 utool nocall:here/portal_url; 7 7 atool here/portal_actions; -
WAeUP_SRP/trunk/skins/waeup_epayment/getPaymentsFolderInfo.py
r1758 r1783 12 12 Info for the PaymentsFolder 13 13 """ 14 15 mtool = context.portal_membership 16 if mtool.isAnonymousUser(): 17 return None 18 19 14 20 #import logging 15 21 #logger = logging.getLogger('Skins.getPaymentsFolderInfo') -
WAeUP_SRP/trunk/skins/waeup_epayment/payment_receipt.pt
r1737 r1783 3 3 tal:define="info context/getStudentBaseInfo; 4 4 info_doc context/getDocumentInfo"> 5 <span tal:condition="not: info"> 5 6 <span tal:condition="python: not info or not info_doc"> 6 7 <span tal:content="here/illegal_view" /> 7 8 </span> 8 <span tal:condition="info"> 9 10 <span tal:condition="python: info and info_doc"> 9 11 10 12 <metal:block tal:condition="python:info_doc['doc'].resp_code in ('00','AP','IP')"> -
WAeUP_SRP/trunk/skins/waeup_epayment/payments_view.pt
r1758 r1783 1 <metal:body use-macro="here/waeup_content_master/macros/master"> 2 <metal:block fill-slot="header" 3 tal:define="is_student context/isStudent; 4 s_name context/getStudentNameInContext;"> 1 <metal:body use-macro="here/main_template/macros/master"> 2 <metal:main fill-slot="main" 3 tal:define="info context/getPaymentsFolderInfo;"> 4 5 <span tal:condition="not: info"> 6 <span tal:content="here/illegal_view" /> 7 </span> 8 <span tal:condition="info"> 9 <span tal:define= " rows info/payments; 10 review_state context/getStudentReviewState; 11 is_student context/isStudent; 12 s_name context/getStudentNameInContext;"> 5 13 <a href="" 6 14 tal:attributes="href string:${context/aq_parent/absolute_url}"> … … 18 26 </h3> 19 27 <br /> 20 </metal:block> 21 <metal:main fill-slot="main" 22 tal:define="info context/getPaymentsFolderInfo; 23 rows info/payments; 24 review_state context/getStudentReviewState"> 28 25 29 26 30 <table class="registration" width="100%"> … … 62 66 /> 63 67 64 65 66 68 67 69 </form> … … 79 81 /> 80 82 </form> 81 82 83 83 </div> 84 85 </span> 86 </span> 84 87 </metal:main> 85 88 </metal:body> -
WAeUP_SRP/trunk/skins/waeup_student/accommodation_slip.pt
r1737 r1783 4 4 info_app context/getApplicationInfo"> 5 5 <span tal:condition="python: not info_acco or not info_acco['acco']"> 6 < metal:block use-macro="here/error_not_found/macros/not_found" />6 <span tal:content="here/illegal_view" /> 7 7 </span> 8 8 <span tal:condition="python: info_acco and info_acco['acco']"> -
WAeUP_SRP/trunk/skins/waeup_student/accommodation_view.pt
r1302 r1783 1 <metal:body use-macro="here/ waeup_content_master/macros/master">1 <metal:body use-macro="here/main_template/macros/master"> 2 2 <metal:main fill-slot="main" 3 3 tal:define="info context/getAccommodationInfo"> 4 4 <span tal:condition="python: not info or not info['acco']"> 5 < metal:block use-macro="here/error_not_found/macros/not_found" />5 <span tal:content="here/illegal_view" /> 6 6 </span> 7 7 <span tal:condition="python: info and info['acco']"> 8 8 9 <div style="text-align: right"> 9 10 <a href="" target="slip" tal:attributes="href string:accommodation_slip" … … 13 14 </a> 14 15 </div> 16 <a href="" 17 tal:attributes="href string:${here/academicsParent}"> 18 <img tal:attributes="src string:${here/portal_url}/arrow_up.gif"/> 19 Up one level 20 </a> 15 21 <h3>My Accommodation Record</h3> 16 22 <br /> -
WAeUP_SRP/trunk/skins/waeup_student/admission_form.pt
r1096 r1783 4 4 </span> 5 5 <metal:block tal:condition="info"> 6 <metal:body use-macro="here/ waeup_content_master/macros/master">6 <metal:body use-macro="here/main_template/macros/master"> 7 7 <metal:main fill-slot="main"> 8 8 <span tal:condition="not: info"> 9 < metal:block use-macro="here/error_not_found/macros/not_found" />9 <span tal:content="here/illegal_view" /> 10 10 </span> 11 11 <span tal:condition="info" … … 21 21 </a> 22 22 </div> 23 23 24 24 25 25 <h3>This is to inform you that you have been provisionally admitted into University of Benin as follows: -
WAeUP_SRP/trunk/skins/waeup_student/application_edit_form.pt
r1167 r1783 15 15 metadata nothing; 16 16 "> 17 <metal:body use-macro="here/ waeup_content_master/macros/master">17 <metal:body use-macro="here/main_template/macros/master"> 18 18 <metal:block fill-slot="header"> 19 <a href=""20 tal:attributes="href string:${here/academicsParent}">21 <img tal:attributes="src string:${here/portal_url}/arrow_up.gif"/>22 Up one level23 </a>24 19 <h3>Update Your Application Data!</h3> 25 20 <br /> -
WAeUP_SRP/trunk/skins/waeup_student/application_slip.pt
r1737 r1783 3 3 tal:define="info context/getApplicationInfo"> 4 4 <span tal:condition="not: info"> 5 < metal:block use-macro="here/error_not_found/macros/not_found" />5 <span tal:content="here/illegal_view" />w 6 6 </span> 7 <span tal:condition="info" 8 tal:define="review_state info/review_state"> 7 <span tal:condition="info"> 9 8 10 9 <h3>Application Slip</h3> -
WAeUP_SRP/trunk/skins/waeup_student/application_view.pt
r1292 r1783 1 <metal:body use-macro="here/ waeup_content_master/macros/master">1 <metal:body use-macro="here/main_template/macros/master"> 2 2 <metal:main fill-slot="main" 3 3 tal:define="info context/getApplicationInfo"> 4 4 <span tal:condition="not: info"> 5 < metal:block use-macro="here/error_not_found/macros/not_found" />5 <span tal:content="here/illegal_view" /> 6 6 </span> 7 <span tal:condition="info" 8 tal:define="review_state info/review_state"> 7 <span tal:condition="info"> 9 8 10 <div style="text-align: right" 9 <div style="text-align: right" tal:define="review_state info/review_state" 11 10 tal:condition="python:review_state not in ('created','application_pin_entered',)"> 12 11 <a href="" target="slip" tal:attributes="href string:application_slip" … … 16 15 </a> 17 16 18 </div> 19 17 </div> 18 <a href="" 19 tal:attributes="href string:${here/academicsParent}"> 20 <img tal:attributes="src string:${here/portal_url}/arrow_up.gif"/> 21 Up one level 22 </a> 20 23 <h3>My Application Record</h3> 21 24 <br /> -
WAeUP_SRP/trunk/skins/waeup_student/clearance_view.pt
r1275 r1783 1 <metal:body use-macro="here/ waeup_content_master/macros/master">1 <metal:body use-macro="here/main_template/macros/master"> 2 2 <metal:main fill-slot="main" 3 3 tal:define="info context/getClearanceInfo; … … 6 6 "> 7 7 <span tal:condition="not: info"> 8 < metal:block use-macro="here/error_not_found/macros/not_found" />8 <span tal:content="here/illegal_view" /> 9 9 </span> 10 10 <span tal:condition="info" … … 18 18 Clearance/Eligibility Slip 19 19 </a> 20 21 20 </div> 22 21 22 <a href="" 23 tal:attributes="href string:${here/academicsParent}"> 24 <img tal:attributes="src string:${here/portal_url}/arrow_up.gif"/> 25 Up one level 26 </a> 27 23 28 <h3> 24 29 <span tal:condition="python:is_so and info"> -
WAeUP_SRP/trunk/skins/waeup_student/contact_student_form.pt
r1737 r1783 1 <metal:definetemplate tal:define="template here/ waeup_content_master/macros/master">1 <metal:definetemplate tal:define="template here/main_template/macros/master"> 2 2 <metal:block define-macro="contact_student_form"> 3 3 <metal:body use-macro=template> -
WAeUP_SRP/trunk/skins/waeup_student/firsttime_login_form.pt
r1782 r1783 1 <tal:block define="rendered_main options/rendered; 2 portal_status_message options/psm; 3 data_storage options/ds; 4 edition python:1;" 5 > 6 <metal:block define-macro="edit_form"> 7 <metal:block use-macro="here/content_lib_master/macros/master"> 8 <metal:block fill-slot="header" 9 tal:define="creation creation|nothing; 10 edition edition|nothing; 11 metadata metadata|nothing" 12 > 13 </metal:block> 14 <metal:block fill-slot="main"> 15 <h3>First-time login! </h3> 16 <br /> 17 <div tal:replace="structure rendered_main" /> 18 </metal:block> 19 <metal:block fill-slot="sub"> 20 </metal:block> 21 </metal:block> 1 <metal:block use-macro="here/main_template/macros/master"> 2 <metal:block fill-slot="main" 3 tal:define="rendered_main options/rendered; 4 portal_status_message options/psm; 5 data_storage options/ds; 6 edition python:1;"> 7 <h3>Data not yet imported!</h3> 22 8 </metal:block> 23 </tal:block> 9 10 <metal:block fill-slot="mainx" tal:condition="python:0" 11 tal:define="rendered_main options/rendered; 12 portal_status_message options/psm; 13 data_storage options/ds; 14 edition python:1;"> 15 <h3>Search Your Record! </h3> 16 <br /> 17 <div tal:replace="structure rendered_main" /> 18 </metal:block> 19 </metal:block> 20 -
WAeUP_SRP/trunk/skins/waeup_student/getStudyCourseInfo.py
r1695 r1783 12 12 return Info about the Students StudyCourse 13 13 """ 14 15 mtool = context.portal_membership 16 if mtool.isAnonymousUser(): 17 return None 18 14 19 try: 15 20 from Products.zdb import set_trace -
WAeUP_SRP/trunk/skins/waeup_student/getStudyLevelInfo.py
r1641 r1783 12 12 return Info about the Studylevel 13 13 """ 14 15 wf = context.portal_workflow 16 mtool = context.portal_membership 17 if mtool.isAnonymousUser(): 18 return None 19 14 20 try: 15 21 from Products.zdb import set_trace … … 17 23 def set_trace(): 18 24 pass 25 26 19 27 from Products.AdvancedQuery import Eq, Between, Le,In 20 28 aq_portal = context.portal_catalog.evalAdvancedQuery … … 49 57 return -1 50 58 51 52 wf = context.portal_workflow53 mtool = context.portal_membership54 59 student_id = context.getStudentId() 55 56 57 60 58 61 info = {} -
WAeUP_SRP/trunk/skins/waeup_student/inter_faculty_transfer_1.pt
r1737 r1783 5 5 6 6 <span tal:condition="python: not info or not info.get('paid',False)"> 7 < metal:block use-macro="here/error_not_found/macros/not_found" />7 <span tal:content="here/illegal_view" /> 8 8 </span> 9 9 <span tal:condition="info/paid|nothing"> -
WAeUP_SRP/trunk/skins/waeup_student/inter_faculty_transfer_2.pt
r1737 r1783 4 4 5 5 <span tal:condition="python: not info or not info.get('paid',False)"> 6 < metal:block use-macro="here/error_not_found/macros/not_found" />6 <span tal:content="here/illegal_view" /> 7 7 </span> 8 8 <span tal:condition="info/paid|nothing"> -
WAeUP_SRP/trunk/skins/waeup_student/inter_faculty_transfer_3.pt
r1737 r1783 4 4 5 5 <span tal:condition="python: not info or not info.get('paid',False)"> 6 < metal:block use-macro="here/error_not_found/macros/not_found" />6 <span tal:content="here/illegal_view" /> 7 7 </span> 8 8 <span tal:condition="info/paid|nothing"> -
WAeUP_SRP/trunk/skins/waeup_student/intra_faculty_transfer_1.pt
r1737 r1783 5 5 6 6 <span tal:condition="python: not info or not info.get('paid',False)"> 7 < metal:block use-macro="here/error_not_found/macros/not_found" />7 <span tal:content="here/illegal_view" /> 8 8 </span> 9 9 <span tal:condition="info/paid|nothing"> -
WAeUP_SRP/trunk/skins/waeup_student/intra_faculty_transfer_2.pt
r1737 r1783 4 4 5 5 <span tal:condition="python: not info or not info.get('paid',False)"> 6 < metal:block use-macro="here/error_not_found/macros/not_found" />6 <span tal:content="here/illegal_view" /> 7 7 </span> 8 8 <span tal:condition="info/paid|nothing"> -
WAeUP_SRP/trunk/skins/waeup_student/intra_faculty_transfer_3.pt
r1737 r1783 4 4 5 5 <span tal:condition="python: not info or not info.get('paid',False)"> 6 < metal:block use-macro="here/error_not_found/macros/not_found" />6 <span tal:content="here/illegal_view" /> 7 7 </span> 8 8 <span tal:condition="info/paid|nothing"> -
WAeUP_SRP/trunk/skins/waeup_student/objection_raised_form.pt
r1161 r1783 5 5 </span> 6 6 <metal:block tal:condition="info"> 7 <metal:body use-macro="here/ waeup_content_master/macros/master">7 <metal:body use-macro="here/main_template/macros/master"> 8 8 <metal:main fill-slot="main"> 9 9 -
WAeUP_SRP/trunk/skins/waeup_student/personal_edit_form.pt
r1737 r1783 1 1 <metal:body use-macro="here/main_template/macros/master"> 2 3 2 4 3 <metal:main fill-slot="main" -
WAeUP_SRP/trunk/skins/waeup_student/personal_view.pt
r1292 r1783 1 <metal:body use-macro="here/ waeup_content_master/macros/master">1 <metal:body use-macro="here/main_template/macros/master"> 2 2 <metal:main fill-slot="main" 3 3 tal:define="info context/getPersonalInfo"> 4 4 <span tal:condition="not: info"> 5 < metal:block use-macro="here/error_not_found/macros/not_found" />5 <span tal:content="here/illegal_view" /> 6 6 </span> 7 <span tal:condition="info" 8 tal:define="review_state info/review_state"> 7 <span tal:condition="info"> 8 <a href="" 9 tal:attributes="href string:${here/academicsParent}"> 10 <img tal:attributes="src string:${here/portal_url}/arrow_up.gif"/> 11 Up one level 12 </a> 9 13 <h3>My Personal Record</h3> 10 14 <br /> -
WAeUP_SRP/trunk/skins/waeup_student/pume_view.pt
r911 r1783 1 1 <metal:html tal:define="info context/getStudentInfo"> 2 <metal:body use-macro="here/ waeup_content_master/macros/master">2 <metal:body use-macro="here/main_template/macros/master"> 3 3 <metal:main fill-slot="main"> 4 4 <span tal:condition="not: info"> 5 < metal:block use-macro="here/error_not_found/macros/not_found" />5 <span tal:content="here/illegal_view" /> 6 6 </span> 7 7 <span tal:condition="info" -
WAeUP_SRP/trunk/skins/waeup_student/request_transfer_form.pt
r1340 r1783 1 <metal:block use-macro="here/ waeup_content_master/macros/master">1 <metal:block use-macro="here/main_template/macros/master"> 2 2 <metal:main fill-slot="header" /> 3 3 <metal:main fill-slot="main" -
WAeUP_SRP/trunk/skins/waeup_student/study_course_view.pt
r1756 r1783 1 <metal:html> 2 <metal:body use-macro="here/waeup_content_master/macros/master"> 3 <metal:block fill-slot="header" 4 tal:define="global info context/getStudyCourseInfo; 5 global create_level info/create_level|nothing; 6 global is_so info/is_so; 7 " 8 > 9 <a href="" 10 tal:attributes="href string:${here/academicsParent}"> 11 <img tal:attributes="src string:${here/portal_url}/arrow_up.gif"/> 12 Up one level 13 </a> 14 <h3> 15 <span tal:condition="python:is_so and info"> 16 <span tal:content="info/student/name" />: 17 </span> 18 <span tal:content="here/title_or_id" /> 19 </h3> 20 <br /> 21 </metal:block> 22 <metal:main fill-slot="main"> 23 <table tal:define="sc python: info['course_doc']"> 1 <metal:body use-macro="here/main_template/macros/master"> 2 <metal:main fill-slot="main" 3 tal:define="global info context/getStudyCourseInfo;"> 4 5 <span tal:condition="not: info"> 6 <span tal:content="here/illegal_view" /> 7 </span> 8 <span tal:condition="info"> 9 <span tal:define="create_level info/create_level|nothing; 10 is_so info/is_so;"> 11 <a href="" 12 tal:attributes="href string:${here/academicsParent}"> 13 <img tal:attributes="src string:${here/portal_url}/arrow_up.gif"/> 14 Up one level 15 </a> 16 <h3> 17 <span tal:condition="python:is_so and info"> 18 <span tal:content="info/student/name" />: 19 </span> 20 <span tal:content="here/title_or_id" /> 21 </h3> 22 <br /> 23 24 <table tal:define="sc python: info['course_doc']"> 25 <tr> 26 <td width="220px">Certificate Code:</td> 27 <td><span tal:content="info/doc/study_course" /></td> 28 </tr> 29 <tr> 30 <td width="220px">Current Session:</td> 31 <td><span tal:content="python:context.portal_vocabularies.sessions.get(info['doc'].current_session)" /></td> 32 </tr> 33 <tr> 34 <td width="220px">Current Study Level:</td> 35 <td><span tal:content="python:context.portal_vocabularies.courselevel.get(info['doc'].current_level)" /></td> 36 </tr> 37 <tr> 38 <td width="220px">Current Study Mode:</td> 39 <td><span tal:content="python:context.portal_vocabularies.entry_modes.get(info['doc'].current_mode)" /></td> 40 </tr> 41 <tr> 42 <td width="220px">Current Verdict:</td> 43 <td><span tal:content="info/verdict" /></td> 44 </tr> 45 <tr> 46 <td width="220px">Certificate:</td> 47 <td><span tal:content="sc/title" /></td> 48 </tr> 49 <tr> 50 <td>Certificate Id:</td> 51 <td tal:content="sc/study_course" /> 52 </tr> 53 <span tal:define="f_id sc/faculty; 54 d_id sc/department; 55 f_title context/academics/?f_id/Title|string:Faculty not yet in Prospectus; 56 d_title context/academics/?f_id/?d_id/Title|string:Department not yet in Prospectus" 57 > 58 <tr> 59 <td>Faculty:</td> 60 <td tal:content="f_title" /> 61 </tr> 62 <tr> 63 <td>Department:</td> 64 <td><span tal:content="d_title" /></td> 65 </tr> 66 </span> 67 </table> 68 69 <form action="" method="post" class="group" onsubmit="return submit_once()" 70 tal:attributes="action info/action" 71 tal:define="rows python: info['items'];" 72 > 73 <table tal:condition="python: 1" class="contentListing" width="100%" summary="content layout" id="folder_content"> 74 <tr tal:repeat="row rows" 75 tal:attributes="class python:test(repeat['row'].even(), 'even ajaxtd', 'odd ajaxtd')"> 76 <td align="left" valign="middle" style="width: 5px;" 77 tal:condition="python:is_so"> 78 <input type="checkbox" name="ids:list" value="" id="" class="noborder" 79 tal:condition="is_so" 80 tal:define="id row/id" 81 tal:attributes="value id; 82 id python:'cb_' + id; 83 checked python:id in info['choosen_ids'];" 84 /> 85 </td> 86 <td><a href="view" 87 tal:attributes="href string:${row/url}"> 88 <strong tal:content="row/title" /></a> 89 </td> 90 </tr> 91 </table> 92 <table width="100%" cellspacing="0" cellpadding="2" 93 summary="contents of the folder" 94 class="folderButtons"> 95 <tr tal:condition="python: is_so and info['items']"> 96 <td align="left" valign="top" rowspan="3"></td> 97 <td align="left" valign="top"> 98 <input type="button" value="button_select_all" class="context" 99 onclick="someJavaScriptFunctionThatWillBeReplaced" 100 i18n:attributes="value" 101 tal:attributes="onclick python:'toggleSelect(this, \'%s\', \'%s\')' 102 % (cpsmcat('button_select_all'), cpsmcat('button_deselect_all'))" 103 /> 104 <input type="submit" name="folder_delete:method" value="button_delete" 105 class="destructive" i18n:attributes="value" 106 tal:attributes="onclick python:'return window.confirm(\'%s\')' % 107 (cpsmcat('description_confirm_delete'), )" 108 /> 109 </td> 110 </tr> 111 </table> 112 </form> 113 <form action="" method="post" class="group" onsubmit="return submit_once()" 114 tal:attributes="action string:${context/absolute_url}/create_level" 115 tal:define="rows python: info['items'];" 116 tal:condition="create_level" 117 > 118 <table width="100%" cellspacing="0" cellpadding="2" 119 summary="contents of the folder" 120 class="folderButtons"> 24 121 <tr> 25 <td width="220px">Certificate Code:</td> 26 <td><span tal:content="info/doc/study_course" /></td> 122 <td align="left" valign="top" rowspan="3"></td> 123 <td align="left" valign="top"> 124 <input type="submit" name="create_level" 125 class="destructive" 126 tal:attributes="onclick python:'return window.confirm(\'Do you really want to register for Level %s?\')' % create_level; 127 value string: Register Courses for Level ${create_level}" 128 /> 129 <font color="red"> 130 <br /><br /> 131 Creating the course list may take several minutes. Please be patient, don't click twice! 132 </font> 133 </td> 27 134 </tr> 28 <tr> 29 <td width="220px">Current Session:</td> 30 <td><span tal:content="python:context.portal_vocabularies.sessions.get(info['doc'].current_session)" /></td> 31 </tr> 32 <tr> 33 <td width="220px">Current Study Level:</td> 34 <td><span tal:content="python:context.portal_vocabularies.courselevel.get(info['doc'].current_level)" /></td> 35 </tr> 36 <tr> 37 <td width="220px">Current Study Mode:</td> 38 <td><span tal:content="python:context.portal_vocabularies.entry_modes.get(info['doc'].current_mode)" /></td> 39 </tr> 40 <tr> 41 <td width="220px">Current Verdict:</td> 42 <td><span tal:content="info/verdict" /></td> 43 </tr> 44 <tr> 45 <td width="220px">Certificate:</td> 46 <td><span tal:content="sc/title" /></td> 47 </tr> 48 <tr> 49 <td>Certificate Id:</td> 50 <td tal:content="sc/study_course" /> 51 </tr> 52 <span tal:define="f_id sc/faculty; 53 d_id sc/department; 54 f_title context/academics/?f_id/Title|string:Faculty not yet in Prospectus; 55 d_title context/academics/?f_id/?d_id/Title|string:Department not yet in Prospectus" 56 > 57 <tr> 58 <td>Faculty:</td> 59 <td tal:content="f_title" /> 60 </tr> 61 <tr> 62 <td>Department:</td> 63 <td><span tal:content="d_title" /></td> 64 </tr> 65 </span> 66 </table> 67 68 <form action="" method="post" class="group" onsubmit="return submit_once()" 69 tal:attributes="action info/action" 70 tal:define="rows python: info['items'];" 71 > 72 <table tal:condition="python: 1" class="contentListing" width="100%" summary="content layout" id="folder_content"> 73 <tr tal:repeat="row rows" 74 tal:attributes="class python:test(repeat['row'].even(), 'even ajaxtd', 'odd ajaxtd')"> 75 <td align="left" valign="middle" style="width: 5px;" 76 tal:condition="python:is_so"> 77 <input type="checkbox" name="ids:list" value="" id="" class="noborder" 78 tal:condition="is_so" 79 tal:define="id row/id" 80 tal:attributes="value id; 81 id python:'cb_' + id; 82 checked python:id in info['choosen_ids'];" 83 /> 84 </td> 85 <td><a href="view" 86 tal:attributes="href string:${row/url}"> 87 <strong tal:content="row/title" /></a> 88 </td> 89 </tr> 90 </table> 91 <table width="100%" cellspacing="0" cellpadding="2" 92 summary="contents of the folder" 93 class="folderButtons"> 94 <tr tal:condition="python: is_so and info['items']"> 95 <td align="left" valign="top" rowspan="3"></td> 96 <td align="left" valign="top"> 97 <input type="button" value="button_select_all" class="context" 98 onclick="someJavaScriptFunctionThatWillBeReplaced" 99 i18n:attributes="value" 100 tal:attributes="onclick python:'toggleSelect(this, \'%s\', \'%s\')' 101 % (cpsmcat('button_select_all'), cpsmcat('button_deselect_all'))" 102 /> 103 <input type="submit" name="folder_delete:method" value="button_delete" 104 class="destructive" i18n:attributes="value" 105 tal:attributes="onclick python:'return window.confirm(\'%s\')' % 106 (cpsmcat('description_confirm_delete'), )" 107 /> 108 </td> 109 </tr> 110 </table> 111 </form> 112 <form action="" method="post" class="group" onsubmit="return submit_once()" 113 tal:attributes="action string:${context/absolute_url}/create_level" 114 tal:define="rows python: info['items'];" 115 tal:condition="create_level" 116 > 117 <table width="100%" cellspacing="0" cellpadding="2" 118 summary="contents of the folder" 119 class="folderButtons"> 120 <tr> 121 <td align="left" valign="top" rowspan="3"></td> 122 <td align="left" valign="top"> 123 <input type="submit" name="create_level" 124 class="destructive" 125 tal:attributes="onclick python:'return window.confirm(\'Do you really want to register for Level %s?\')' % create_level; 126 value string: Register Courses for Level ${create_level}" 127 /> 128 <font color="red"> 129 <br /><br /> 130 Creating the course list may take several minutes. Please be patient, don't click twice! 131 </font> 132 </td> 133 </tr> 134 </table> 135 </form> 136 </metal:main> 137 138 </metal:body> 139 </metal:html> 135 </table> 136 </form> 137 138 </span> 139 </span> 140 </metal:main> 141 </metal:body> 142 -
WAeUP_SRP/trunk/skins/waeup_student/study_level_view.pt
r1656 r1783 1 <metal:html> 2 <metal:body use-macro="here/waeup_content_master/macros/master"> 3 <metal:block fill-slot="header" 4 tal:define="global info context/getStudyLevelInfo; 5 global is_so context/isSectionOfficer; 6 global is_ca info/is_ca; 7 global show_check_boxes info/show_check_boxes; 8 global is_student info/is_student; 9 global status_info info/status_info; 10 global review_state info/review_state; 11 global view_only info/view_only"> 12 <a href="" 13 tal:attributes="href string:${here/academicsParent}"> 14 <img tal:attributes="src string:${here/portal_url}/arrow_up.gif"/> 15 Up one level 1 <metal:body use-macro="here/main_template/macros/master"> 2 3 <metal:main fill-slot="main" 4 tal:define="info context/getStudyLevelInfo;"> 5 6 <span tal:condition="not: info"> 7 <span tal:content="here/illegal_view" /> 8 </span> 9 <span tal:condition="info"> 10 <span tal:define= "is_so context/isSectionOfficer; 11 is_ca info/is_ca; 12 show_check_boxes info/show_check_boxes; 13 is_student info/is_student; 14 status_info info/status_info; 15 review_state info/review_state; 16 view_only info/view_only"> 17 18 19 <a href="" 20 tal:attributes="href string:${here/academicsParent}"> 21 <img tal:attributes="src string:${here/portal_url}/arrow_up.gif"/> 22 Up one level 23 </a> 24 <div style="text-align: right" 25 tal:condition="python:review_state == 'courses_validated'"> 26 <a href="" target="slip" tal:attributes="href string:course_registration_slip" 27 onclick="javascript:window.open('','slip','width=600, height=700, directories=no, toolbar=no, location=no, menubar=yes, scrollbars=yes, status=no, resizable=no, dependent=no')"> 28 <img tal:attributes="src string:${here/portal_url}/actionicon_print.png" /> 29 Course Registration Slip 16 30 </a> 17 <div style="text-align: right" 18 tal:condition="python:review_state == 'courses_validated'"> 19 <a href="" target="slip" tal:attributes="href string:course_registration_slip" 20 onclick="javascript:window.open('','slip','width=600, height=700, directories=no, toolbar=no, location=no, menubar=yes, scrollbars=yes, status=no, resizable=no, dependent=no')"> 21 <img tal:attributes="src string:${here/portal_url}/actionicon_print.png" /> 22 Course Registration Slip 23 </a> 24 25 </div> 26 27 <h3> 28 <span tal:condition="python: is_so or is_ca"> 29 <span tal:content="info/student/name" />: 30 </span> 31 <span tal:condition="is_student">My </span> 32 33 Course Registration Form for <span tal:content="here/title_or_id" /> 34 </h3> 35 36 </metal:block> 37 <metal:main fill-slot="main" tal:condition="python:1"> 38 <form action="." method="post" class="group" onsubmit="return submit_once()"> 39 <span tal:condition="info/carry_overs" tal:omit-tag=""> 40 <h4>Carryover Courses</h4> 41 <br /> 42 <table tal:condition="python: 1" class="contentListing" width="100%" summary="content layout" id="folder_content"> 43 <tr tal:repeat="row info/carry_overs" 44 tal:attributes="class python:test(repeat['row'].even(), 'even ajaxtd', 'odd ajaxtd')"> 45 <td align="left" valign="middle" style="width: 5px;" 46 tal:condition="show_check_boxes"> 47 <input type="checkbox" name="ids:list" value="" id="" class="noborder" 48 tal:define="id row/id" 49 tal:attributes="value id; 50 id python:'cb_' + id; 51 checked python:id in info['choosen_ids'];" 52 /> 53 </td> 54 <td width="78%" tal:content="row/title"></td> 55 <td align="center" width="10%" tal:content="row/code"></td> 56 <td align="center" width="2%">S<span tal:content="row/semester" /></td> 57 <td align="center" width="2%" tal:content="row/credits"></td> 58 <td align="center" width="8%" tal:content="row/grade|string:"></td> 59 </tr> 60 </table> 61 </span> 62 <br /> 63 <h4>Session Courses</h4> 64 <br /> 65 <div class="" tal:condition="not: info/normal"> 66 <font color="red">Your faculty has not yet provided the list of courses for your certificate. Please contact your faculty!</font> 67 <br /><br /> 31 68 32 </div> 69 <table class="contentListing" width="100%" id="folder_content" 70 tal:condition="info/normal"> 71 <tr tal:repeat="row info/normal" 72 tal:attributes="class python:test(repeat['row'].even(), 'even ajaxtd', 'odd ajaxtd')"> 73 <td align="left" valign="middle" style="width: 5px;" 74 tal:condition="show_check_boxes"> 75 <input type="checkbox" name="ids:list" value="" id="" class="noborder" 76 tal:define="id row/id" 77 tal:attributes="value id; 78 id python:'cb_' + id; 79 checked python:id in info['choosen_ids'];" 80 /> 81 </td> 82 <td width="78%" tal:content="row/title"></td> 83 <td align="center" width="10%" tal:content="row/code"></td> 84 <td align="center" width="2%">S<span tal:content="row/semester" /></td> 85 <td align="center" width="2%" tal:content="row/credits"></td> 86 <td align="center" width="8%" tal:content="row/coe|nothing"></td> 87 </tr> 88 <tr> 89 <td tal:condition="show_check_boxes" colspan="1"></td> 90 <td colspan="1"></td> 91 <th colspan="2">Total Credits:</th> 92 <td align="center" width="2%" tal:content="info/credits_total"></td> 93 </tr> 94 </table> 95 96 97 98 99 <table tal:condition="python: is_student and review_state == 'school_fee_paid'" width="100%" cellspacing="0" cellpadding="2" 100 class="folderButtons"> 101 <tr> 102 <td align="left" valign="top" rowspan="3"></td> 103 <td align="left" valign="top"> 104 <input type="submit" name="delete_course_result:method" value="Delete selected" 105 class="destructive" i18n:attributes="value" 106 tal:attributes="onclick python:'return window.confirm(\'%s\')' % 107 ('Do you really want to delete selected courses?', )" 108 /> 109 <input type="submit" name="refresh_level:method" 110 class="context" value="Update" 111 /> 112 113 114 <br /><br /> 115 <input tal:condition="info/normal" 116 type="submit" name="register_courses:method" 117 class="context" value="Submit" /> 118 119 <input type="hidden" name="action_after_validate" type="text" id="action_after_validate" 120 tal:attributes="value string:study_level_view"/> 121 122 <br /><br /> 123 124 <strong>Note:</strong> 'Update' checks for all courses in your certificate and will add them to your course list irrespective of 125 prior deletion, i.e. already deleted courses will show up again. 126 127 Please use this function only if you are sure that your faculty has added courses which are not yet on your course list. 128 129 </td> 130 </tr> 131 </table> 132 <table tal:condition="python:is_so" width="100%" cellspacing="0" cellpadding="2" 133 class="folderButtons"> 134 <tr> 135 <td align="left" valign="top" rowspan="3"></td> 136 <td align="left" valign="top"> 137 <input type="button" value="Select all" class="context" 138 onclick="someJavaScriptFunctionThatWillBeReplaced" 139 i18n:attributes="value" 140 tal:attributes="onclick python:'toggleSelect(this, \'%s\', \'%s\')' 141 % (cpsmcat('button_select_all'), cpsmcat('button_deselect_all'))" 142 /> 143 <input type="submit" name="delete_course_result:method" value="Delete selected" 144 class="destructive" i18n:attributes="value" 145 tal:attributes="onclick python:'return window.confirm(\'%s\')' % 146 ('Do you really want to delete the courses selected?', )" 147 /> 148 <input 149 type="submit" name="refresh_level:method" 150 class="context" value="Update" 151 /> 152 <input tal:condition="python: review_state == 'school_fee_paid'" type="submit" name="register_courses:method" 153 class="context" value="Submit" /> 154 <input tal:condition="python: review_state == 'courses_registered'" type="submit" name="validate_courses:method" 155 class="context" value="Validate" /> 156 <input tal:condition="python: review_state in ('courses_registered', 'courses_validated',)" type="submit" name="reject_courses:method" 157 class="context" value="Reject" /> 158 159 <input type="hidden" name="action_after_validate" type="text" id="action_after_validate" 160 tal:attributes="value string:study_level_view"/> 161 <input type="hidden" name="action_after_reject" type="text" id="action_after_reject" 162 tal:attributes="value string:contact_student_form"/> 163 164 </td> 165 </tr> 166 </table> 167 <table tal:condition="python:is_ca" width="100%" cellspacing="0" cellpadding="2" 168 class="folderButtons"> 169 <tr> 170 <td align="left" valign="top" rowspan="3"></td> 171 <td align="left" valign="top"> 172 <input tal:condition="python: review_state == 'school_fee_paid'" 173 type="button" value="Select all" class="context" 174 onclick="someJavaScriptFunctionThatWillBeReplaced" 175 i18n:attributes="value" 176 tal:attributes="onclick python:'toggleSelect(this, \'%s\', \'%s\')' 177 % (cpsmcat('button_select_all'), cpsmcat('button_deselect_all'))" 178 /> 179 <input tal:condition="python: review_state == 'school_fee_paid'" 180 type="submit" name="delete_course_result:method" value="Delete selected" 181 class="destructive" i18n:attributes="value" 182 tal:attributes="onclick python:'return window.confirm(\'%s\')' % 183 ('Do you really want to delete the courses selected?', )" 184 /> 185 <input tal:condition="python: review_state == 'school_fee_paid'" 186 type="submit" name="refresh_level:method" 187 class="context" value="Update" 188 /> 189 <input tal:condition="python: review_state == 'school_fee_paid'" type="submit" name="register_courses:method" 190 class="context" value="Submit" /> 191 <input tal:condition="python: review_state == 'courses_registered'" type="submit" name="validate_courses:method" 192 class="context" value="Validate" /> 193 <input tal:condition="python: review_state in ('courses_registered', 'courses_validated',)" type="submit" name="reject_courses:method" 194 class="context" value="Reject" /> 195 196 <input type="hidden" name="action_after_validate" type="text" id="action_after_validate" 197 tal:attributes="value string:study_level_view"/> 198 <input type="hidden" name="action_after_reject" type="text" id="action_after_reject" 199 tal:attributes="value string:contact_student_form"/> 200 201 202 </td> 203 </tr> 204 </table> 205 206 </form> 33 34 <h3> 35 <span tal:condition="python: is_so or is_ca"> 36 <span tal:content="info/student/name" />: 37 </span> 38 <span tal:condition="is_student">My </span> 39 40 Course Registration Form for <span tal:content="here/title_or_id" /> 41 </h3> 42 43 <form action="." method="post" class="group" onsubmit="return submit_once()"> 44 <span tal:condition="info/carry_overs" tal:omit-tag=""> 45 <h4>Carryover Courses</h4> 207 46 <br /> 208 <form action="add_course_result" method="post" class="group" onsubmit="return submit_once()" 209 tal:condition="show_check_boxes"> 210 <table> 211 <tr> 212 <th>Course Id</th> 213 <td><input type="text" name="course_id" 214 tal:attributes="value request/course_id|nothing"/></td> 215 <td colspan="2"> 216 <input type="submit" name="add" 217 class="context" value="Add Course" 218 /> 47 <table tal:condition="python: 1" class="contentListing" width="100%" summary="content layout" id="folder_content"> 48 <tr tal:repeat="row info/carry_overs" 49 tal:attributes="class python:test(repeat['row'].even(), 'even ajaxtd', 'odd ajaxtd')"> 50 <td align="left" valign="middle" style="width: 5px;" 51 tal:condition="show_check_boxes"> 52 <input type="checkbox" name="ids:list" value="" id="" class="noborder" 53 tal:define="id row/id" 54 tal:attributes="value id; 55 id python:'cb_' + id; 56 checked python:id in info['choosen_ids'];" 57 /> 58 </td> 59 <td width="78%" tal:content="row/title"></td> 60 <td align="center" width="10%" tal:content="row/code"></td> 61 <td align="center" width="2%">S<span tal:content="row/semester" /></td> 62 <td align="center" width="2%" tal:content="row/credits"></td> 63 <td align="center" width="8%" tal:content="row/grade|string:"></td> 64 </tr> 65 </table> 66 </span> 67 <br /> 68 <h4>Session Courses</h4> 69 <br /> 70 <div class="" tal:condition="not: info/normal"> 71 <font color="red">Your faculty has not yet provided the list of courses for your certificate. Please contact your faculty!</font> 72 <br /><br /> 73 </div> 74 <table class="contentListing" width="100%" id="folder_content" 75 tal:condition="info/normal"> 76 <tr tal:repeat="row info/normal" 77 tal:attributes="class python:test(repeat['row'].even(), 'even ajaxtd', 'odd ajaxtd')"> 78 <td align="left" valign="middle" style="width: 5px;" 79 tal:condition="show_check_boxes"> 80 <input type="checkbox" name="ids:list" value="" id="" class="noborder" 81 tal:define="id row/id" 82 tal:attributes="value id; 83 id python:'cb_' + id; 84 checked python:id in info['choosen_ids'];" 85 /> 86 </td> 87 <td width="78%" tal:content="row/title"></td> 88 <td align="center" width="10%" tal:content="row/code"></td> 89 <td align="center" width="2%">S<span tal:content="row/semester" /></td> 90 <td align="center" width="2%" tal:content="row/credits"></td> 91 <td align="center" width="8%" tal:content="row/coe|nothing"></td> 92 </tr> 93 <tr> 94 <td tal:condition="show_check_boxes" colspan="1"></td> 95 <td colspan="1"></td> 96 <th colspan="2">Total Credits:</th> 97 <td align="center" width="2%" tal:content="info/credits_total"></td> 98 </tr> 99 </table> 100 101 102 103 104 <table tal:condition="python: is_student and review_state == 'school_fee_paid'" width="100%" cellspacing="0" cellpadding="2" 105 class="folderButtons"> 106 <tr> 107 <td align="left" valign="top" rowspan="3"></td> 108 <td align="left" valign="top"> 109 <input type="submit" name="delete_course_result:method" value="Delete selected" 110 class="destructive" i18n:attributes="value" 111 tal:attributes="onclick python:'return window.confirm(\'%s\')' % 112 ('Do you really want to delete selected courses?', )" 113 /> 114 <input type="submit" name="refresh_level:method" 115 class="context" value="Update" 116 /> 117 118 119 <br /><br /> 120 <input tal:condition="info/normal" 121 type="submit" name="register_courses:method" 122 class="context" value="Submit" /> 123 219 124 <input type="hidden" name="action_after_validate" type="text" id="action_after_validate" 220 tal:attributes="value string:study_level_view"/> 221 </td> 222 </table> 223 </form> 224 </metal:main> 225 </metal:body> 226 </metal:html> 227 125 tal:attributes="value string:study_level_view"/> 126 127 <br /><br /> 128 129 <strong>Note:</strong> 'Update' checks for all courses in your certificate and will add them to your course list irrespective of 130 prior deletion, i.e. already deleted courses will show up again. 131 132 Please use this function only if you are sure that your faculty has added courses which are not yet on your course list. 133 134 </td> 135 </tr> 136 </table> 137 <table tal:condition="python:is_so" width="100%" cellspacing="0" cellpadding="2" 138 class="folderButtons"> 139 <tr> 140 <td align="left" valign="top" rowspan="3"></td> 141 <td align="left" valign="top"> 142 <input type="button" value="Select all" class="context" 143 onclick="someJavaScriptFunctionThatWillBeReplaced" 144 i18n:attributes="value" 145 tal:attributes="onclick python:'toggleSelect(this, \'%s\', \'%s\')' 146 % (cpsmcat('button_select_all'), cpsmcat('button_deselect_all'))" 147 /> 148 <input type="submit" name="delete_course_result:method" value="Delete selected" 149 class="destructive" i18n:attributes="value" 150 tal:attributes="onclick python:'return window.confirm(\'%s\')' % 151 ('Do you really want to delete the courses selected?', )" 152 /> 153 <input 154 type="submit" name="refresh_level:method" 155 class="context" value="Update" 156 /> 157 <input tal:condition="python: review_state == 'school_fee_paid'" type="submit" name="register_courses:method" 158 class="context" value="Submit" /> 159 <input tal:condition="python: review_state == 'courses_registered'" type="submit" name="validate_courses:method" 160 class="context" value="Validate" /> 161 <input tal:condition="python: review_state in ('courses_registered', 'courses_validated',)" type="submit" name="reject_courses:method" 162 class="context" value="Reject" /> 163 164 <input type="hidden" name="action_after_validate" type="text" id="action_after_validate" 165 tal:attributes="value string:study_level_view"/> 166 <input type="hidden" name="action_after_reject" type="text" id="action_after_reject" 167 tal:attributes="value string:contact_student_form"/> 168 169 </td> 170 </tr> 171 </table> 172 <table tal:condition="python:is_ca" width="100%" cellspacing="0" cellpadding="2" 173 class="folderButtons"> 174 <tr> 175 <td align="left" valign="top" rowspan="3"></td> 176 <td align="left" valign="top"> 177 <input tal:condition="python: review_state == 'school_fee_paid'" 178 type="button" value="Select all" class="context" 179 onclick="someJavaScriptFunctionThatWillBeReplaced" 180 i18n:attributes="value" 181 tal:attributes="onclick python:'toggleSelect(this, \'%s\', \'%s\')' 182 % (cpsmcat('button_select_all'), cpsmcat('button_deselect_all'))" 183 /> 184 <input tal:condition="python: review_state == 'school_fee_paid'" 185 type="submit" name="delete_course_result:method" value="Delete selected" 186 class="destructive" i18n:attributes="value" 187 tal:attributes="onclick python:'return window.confirm(\'%s\')' % 188 ('Do you really want to delete the courses selected?', )" 189 /> 190 <input tal:condition="python: review_state == 'school_fee_paid'" 191 type="submit" name="refresh_level:method" 192 class="context" value="Update" 193 /> 194 <input tal:condition="python: review_state == 'school_fee_paid'" type="submit" name="register_courses:method" 195 class="context" value="Submit" /> 196 <input tal:condition="python: review_state == 'courses_registered'" type="submit" name="validate_courses:method" 197 class="context" value="Validate" /> 198 <input tal:condition="python: review_state in ('courses_registered', 'courses_validated',)" type="submit" name="reject_courses:method" 199 class="context" value="Reject" /> 200 201 <input type="hidden" name="action_after_validate" type="text" id="action_after_validate" 202 tal:attributes="value string:study_level_view"/> 203 <input type="hidden" name="action_after_reject" type="text" id="action_after_reject" 204 tal:attributes="value string:contact_student_form"/> 205 206 207 </td> 208 </tr> 209 </table> 210 211 </form> 212 <br /> 213 <form action="add_course_result" method="post" class="group" onsubmit="return submit_once()" 214 tal:condition="show_check_boxes"> 215 <table> 216 <tr> 217 <th>Course Id</th> 218 <td><input type="text" name="course_id" 219 tal:attributes="value request/course_id|nothing"/></td> 220 <td colspan="2"> 221 <input type="submit" name="add" 222 class="context" value="Add Course" 223 /> 224 <input type="hidden" name="action_after_validate" type="text" id="action_after_validate" 225 tal:attributes="value string:study_level_view"/> 226 </td> 227 </table> 228 </form> 229 </span> 230 </span> 231 </metal:main> 232 </metal:body> 233
Note: See TracChangeset for help on using the changeset viewer.