Changeset 1783 for WAeUP_SRP


Ignore:
Timestamp:
15 May 2007, 07:49:50 (17 years ago)
Author:
Henrik Bettermann
Message:
  • assertViewable removed and page templates adjusted, so that no traceback occurs.
  • 'Previous Session' action added
  • waeup_content_master.pt removed
  • and more
Location:
WAeUP_SRP/trunk
Files:
1 deleted
52 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/trunk/Students.py

    r1775 r1783  
    378378    ###)
    379379
    380     security.declareProtected(ModifyPortalContent,"fixVerdicts")###(
    381     def fixVerdicts(self,csv_file=None):
    382         """fix wrong uploaded verdicts"""
    383         import transaction
    384         import random
    385         wftool = self.portal_workflow
    386         current = DateTime.DateTime().strftime("%d-%m-%y_%H_%M_%S")
    387         students_folder = self.portal_url.getPortalObject().campus.students
    388         tr_count = 1
    389         total = 0
    390         if csv_file is None:
    391             name = 'Verdicts'
    392         else:
    393             name = csv_file
    394         st_cat = self.students_catalog
    395         no_import = []
    396         verdicts_voc = self.portal_vocabularies.verdicts
    397         rverdicts = {}
    398         for k,v in verdicts_voc.items():
    399             rverdicts[v.upper()] = k
    400         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             return
    407         start = True
    408         #import pdb;pdb.set_trace()
    409         for verdict in verdicts:
    410             if start:
    411                 start = False
    412                 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                 continue
    420             matric_no = matric_no.upper()
    421             if matric_no == '':
    422                 continue
    423             verdict_code = rverdicts.get(verdict.get('CATEGORY'),None)
    424             if verdict_code is None:
    425                 continue
    426             sres = st_cat(matric_no = matric_no)
    427             if sres:
    428                 student_id = sres[0].id
    429                 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                         continue
    436                 st_cat.modifyRecord(id = student_id,
    437                                     verdict=verdict_code)
    438 
    439                 dsc = {}
    440                 dsc['current_verdict'] = verdict_code
    441                 study_course.getContent().edit(mapping=dsc)
    442             else:
    443                 verdict['Error'] = "Not found in students_catalog"
    444                 no_import.append( format_error % verdict)
    445                 continue
    446             tr_count += 1
    447             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_count
    457                 tr_count = 0
    458         open("%s/import/%s_not_imported%s.csv" % (i_home,name,current),"a").write(
    459                                                 '\n'.join(no_import))
    460         total += tr_count
    461         em = '%d total transactions commited' % (total)
    462         logger.info(em)
    463         return self.REQUEST.RESPONSE.redirect("%s" % self.REQUEST.get('URL1'))
    464     ###)
    465380
    466381    security.declareProtected(ModifyPortalContent,"fixAllNames")###(
     
    563478    ###)
    564479
    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
    681481
    682482    security.declareProtected(ModifyPortalContent,"updateReturningStudents")###(
  • WAeUP_SRP/trunk/Students.unused_methods.txt

    r1775 r1783  
    12471247        return self.REQUEST.RESPONSE.redirect("%s" % self.REQUEST.get('URL1'))
    12481248    ###)
     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  
    127127            c_ids = [c.id for c in self.portal_catalog({'meta_type': "Course"})]
    128128            if hasattr(self.aq_parent,value):
    129                 err = 'Course %s already exists' % (value)
     129                err = 'course %s already exists' % (value)
    130130            elif value not in c_ids:
    131                 err = 'Course %s does not exist' % (value)
     131                err = 'course %s does not exist' % (value)
    132132            if err:
    133133                datastructure.setError(widget_id, err)
     
    159159            res = self.portal_catalog(meta_type= "Course",id = value)
    160160            if len(res) > 0:
    161                 err = 'Course %s already exists' % (value)
     161                err = 'course %s already exists' % (value)
    162162            if err:
    163163                datastructure.setError(widget_id, err)
     
    231231            elif self.portal_catalog(portal_type=portal_type_query,id=value):
    232232                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.'\
    234234                      % (brain.portal_type,value,brain.getPath())
    235235            if err:
     
    305305        if not valid: #or not (len(value) == self.digits + self.letters and value[:self.digits].isdigit() and value[self.digits:].isalpha()):
    306306            #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'
    308308        elif self.reference == '':
    309309            #s = getStudentByRegNo(self,value)
    310310            pume = jamb_nr_catalog(jamb_reg_no = value)
    311311            if len(pume) < 1:
    312                 err = 'No Student with JAMB RegNo %s.' % (value)
     312                err = 'no Student with JAMB RegNo %s' % (value)
    313313            else:
    314314                datastructure['pume'] = pume[0]
     
    319319            jamb_reg_no = record.Entryregno
    320320            if jamb_reg_no != value:
    321                 err = 'Entry Registration Nr does not match.'
     321                err = 'Registration number does not match.'
    322322        if err:
    323323            datastructure.setError(widget_id, err)
     
    354354        #import pdb;pdb.set_trace()
    355355        if not valid or len(value) < 2:
    356             err = 'Invalid String'
     356            err = 'invalid string'
    357357        elif not record or datastructure.errors:
    358358            err = 0
     
    443443        value = datastructure[widget_id]
    444444        if not valid or not value:
    445             err = 'Invalid matric_no string %s.' % value
     445            err = 'invalid string %s' % value
    446446            logger.info('Invalid matric_no string %s' % value)
    447447        else:
     
    452452                if len(res) < 1:
    453453                    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)
    455455                    break
    456456                datastructure['student'] = res[0]
     
    458458                    res = results(matric_no = value)
    459459                    if len(res) < 1:
    460                         err = 'No results with matric_no %s.' % (value)
     460                        err = 'no results with matric_no %s' % (value)
    461461                        continue
    462462                    datastructure['results'] = res
     
    487487        value = datastructure[widget_id]
    488488        if not valid or not value:
    489             err = 'Invalid id string %s.' % value
     489            err = 'invalid Id string %s' % value
    490490            logger.info('Invalid id string %s' % value)
    491491            datastructure['student'] = None
     
    495495            if not res:
    496496                logger.info('Student id %s not found' % value)
    497                 err = 'No student with id %s.' % (value)
     497                err = 'no student with Id %s' % (value)
    498498                datastructure['student'] = None
    499499            else:
     
    632632        while 1:
    633633            if not s and g:
    634                 err = "no subject grad for subject %s " % s
     634                err = "no subject grade for subject %s " % s
    635635                break
    636636            i = 0
     
    773773        elif len(n) != 10:
    774774            do = 0
    775             err = 'Invalid PIN length %d' % len(n)
     775            err = 'invalid PIN length %d' % len(n)
    776776            s_logger.info('%s entered invalid PIN with length %d' % (s_id,len(n)))
    777777        elif self.reference == "":
     
    790790                break
    791791            elif ok == -2:
    792                 err = 'Service already activated but with a different PIN.'
     792                err = 'Service already is activated but with a different PIN.'
    793793                s_logger.info('%s/%s repeatedly activated service but with different PIN %s' % (s_id,ref,pin_str))
    794794                break
    795795            elif ok == -1:
    796                 err = 'Invalid PIN'
     796                err = 'invalid PIN'
    797797                s_logger.info('%s/%s entered invalid PIN %s' % (s_id,ref,pin_str))
    798798                break
     
    817817                    s_logger.info('%s/%s successfully used PIN %s' % (s_id,ref,pin_str))
    818818                if student is None:
    819                     err = "Student not found."
     819                    err = "student not found"
    820820                    s_logger.info('%s not found in admission list' % (ref))
    821821                    break
     
    830830                            s_logger.info('%s/%s (non-member) repeatedly checked admission with PIN %s' % (s_id,ref,pin_str))
    831831                    else:
    832                         err = "Unknown error" % s_id
     832                        err = "unknown error" % s_id
    833833                        s_logger.info('%s/%s repeatedly activated service with PIN %s' % (s_id,ref,pin_str))
    834834                        break
  • WAeUP_SRP/trunk/profiles/default/actionicons.xml

    r1717 r1783  
    105105              title="Checkin revision" priority="160"
    106106              icon_expr="actionicon_version_validate.png"/>
    107              
     107
    108108 <action-icon category="global" action_id="configThemes"
    109109              title="Portal Themes" priority="0"
     
    124124 <action-icon category="global" action_id="members"
    125125              title="Portal Members" priority="5"
    126               icon_expr="actionicon_directories.png"/>             
     126              icon_expr="actionicon_directories.png"/>
    127127 <action-icon category="global" action_id="waeup_search"
    128128              title="Search Portal" priority="6"
    129               icon_expr="actionicon_search.png"/>     
    130                        
     129              icon_expr="actionicon_search.png"/>
     130
    131131 <action-icon category="global_header" action_id="print"
    132132              title="Print" priority="0"
     
    143143              title="Contact" priority="0"
    144144              icon_expr="actionicon_email.png"/>
    145              
     145
    146146 <action-icon category="user" action_id="login"
    147147              title="Staff Login" priority="0"
     
    162162              title="User preferences" priority="5"
    163163              icon_expr="actionicon_user_preferences.png"/>
    164              
     164
    165165 <action-icon category="student" action_id="login_staff"
    166166              title="Staff Login" priority="0"
     
    194194              title="Contact" priority="6"
    195195              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
    251197 <action-icon category="student_navigation"
    252198              action_id="students_home" title="Home"
     
    269215              action_id="support" title="Enquiries"
    270216              priority="5" icon_expr="blank.gif"/>
     217             
    271218 <action-icon category="student_object" action_id="slip"
    272219              title="Acknowledegement Slip" priority="1"
    273220              icon_expr="bell.png"/>
     221             
    274222 <action-icon category="student" action_id="login_student"
    275223              title="Student Login" priority="0"
     
    289237 <action-icon category="student" action_id="display_session_results"
    290238              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"/>
    292243 <action-icon category="student" action_id="register_courses"
    293244              title="Register Courses" priority="5"
  • WAeUP_SRP/trunk/profiles/default/actions.xml

    r1717 r1783  
    130130   <permission>View</permission>
    131131  </action>
    132   <action title="Check Adm. Details" action_id="check_admission"
     132  <action title="Check Admission" action_id="check_admission"
    133133     category="student" condition_expr="not:member"
    134134     url_expr="string:${portal_url}/check_admission" visible="True">
    135135   <permission>View</permission>
    136136  </action>
    137   <action title="View Sess. Results" action_id="display_session_results"
     137  <action title="Return 2006/2007" action_id="display_session_results"
    138138     category="student" condition_expr="not:member"
    139139     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">
    140145   <permission>View</permission>
    141146  </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  
    5151  <permission value="Modify portal content"/>
    5252 </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>
    10553</object>
  • WAeUP_SRP/trunk/profiles/default/types/StudentsFolder.xml

    r1449 r1783  
    5050    condition_expr="" url_expr="string:${object/absolute_url}/folder_contents"
    5151    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>
    7952</object>
  • WAeUP_SRP/trunk/skins/waeup_academics/academics_search_view.pt

    r911 r1783  
    1515    <metal:main fill-slot="main">
    1616      <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" />
    1818      </span>
    1919      <span tal:condition="is_so"
  • WAeUP_SRP/trunk/skins/waeup_academics/academics_view.pt

    r913 r1783  
    22            is_so context/isSectionOfficer;"
    33            >
    4   <metal:body use-macro="here/waeup_content_master/macros/master">
     4  <metal:body use-macro="here/main_template/macros/master">
    55    <metal:block fill-slot="header">
    66      <a href="" tal:condition="nothing"
  • WAeUP_SRP/trunk/skins/waeup_academics/certificate_view.pt

    r913 r1783  
    22            is_so context/isSectionOfficer;"
    33            >
    4   <metal:body use-macro="here/waeup_content_master/macros/master">
     4  <metal:body use-macro="here/main_template/macros/master">
    55    <metal:block fill-slot="header">
    66      <a href=""
  • WAeUP_SRP/trunk/skins/waeup_academics/certificates_view.pt

    r913 r1783  
    22            is_so context/isSectionOfficer;"
    33            >
    4   <metal:body use-macro="here/waeup_content_master/macros/master">
     4  <metal:body use-macro="here/main_template/macros/master">
    55    <metal:block fill-slot="header">
    66      <a href=""
  • WAeUP_SRP/trunk/skins/waeup_academics/courses_view.pt

    r1366 r1783  
    11<metal:html>
    2   <metal:body use-macro="here/waeup_content_master/macros/master">
     2  <metal:body use-macro="here/main_template/macros/master">
    33    <metal:block fill-slot="header"
    44                 tal:define="global info context/getCoursesInfo;
  • WAeUP_SRP/trunk/skins/waeup_academics/department_view.pt

    r913 r1783  
    22            is_so context/isSectionOfficer;"
    33            >
    4   <metal:body use-macro="here/waeup_content_master/macros/master">
     4  <metal:body use-macro="here/main_template/macros/master">
    55    <metal:block fill-slot="header">
    66      <a href=""
  • WAeUP_SRP/trunk/skins/waeup_academics/faculty_view.pt

    r913 r1783  
    22            is_so context/isSectionOfficer;"
    33            >
    4   <metal:body use-macro="here/waeup_content_master/macros/master">
     4  <metal:body use-macro="here/main_template/macros/master">
    55    <metal:block fill-slot="header">
    66      <a href=""
  • WAeUP_SRP/trunk/skins/waeup_academics/getDocumentInfo.py

    r913 r1783  
    1818
    1919info = {}
    20 info['doc'] = context.getContent()
     20try:
     21    info['doc'] = context.getContent()
     22except:
     23    return None
    2124return info
  • WAeUP_SRP/trunk/skins/waeup_academics/level_view.pt

    r1646 r1783  
    22            is_so context/isSectionOfficer;"
    33            >
    4   <metal:body use-macro="here/waeup_content_master/macros/master">
     4  <metal:body use-macro="here/main_template/macros/master">
    55    <metal:block fill-slot="header">
    66      <a href=""
  • WAeUP_SRP/trunk/skins/waeup_accommodation/acco_folder_view.pt

    r1447 r1783  
    33            beds_generated options/beds_generated|nothing;"
    44            >
    5   <metal:body use-macro="here/waeup_content_master/macros/master">
     5  <metal:body use-macro="here/main_template/macros/master">
    66    <metal:block fill-slot="header">
    77      <a href="" tal:condition="nothing"
  • WAeUP_SRP/trunk/skins/waeup_accommodation/acco_hall_view.pt

    r1275 r1783  
    11<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">
    33    <metal:block fill-slot="header">
    44      <a href=""
  • WAeUP_SRP/trunk/skins/waeup_default/import_form.pt

    r1771 r1783  
    77           >
    88  <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">
    1010      <metal:block fill-slot="main">
    1111      <h3>Import Data!</h3>
  • WAeUP_SRP/trunk/skins/waeup_default/srp_anonymous_view.pt

    r1182 r1783  
    4040          <li> Print your Sessional Result Slip (it includes your new Student Id for further logins), </li>
    4141          <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>         
    4345          </ul>
    4446         
     47          <br />
     48          <p>If you have to register for previous sessions, click "Previous Sessions"
     49          instead of "View Sess. Results".</p>
     50         
    4551          <br />
    4652         
     
    8995          <strong><a target="_blank" href="http://files.saoas.org/Procedure_for_clearance.pdf">UME</a></strong>,
    9096          <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.
    9299          </p>
    93100          <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">
    22    <metal:block fill-slot="header"
    33                 tal:define="s_name context/getStudentNameInContext;
  • WAeUP_SRP/trunk/skins/waeup_default/waeup_edit_form.pt

    r1737 r1783  
    99           is_allowed context/isSectionOfficer;
    1010           metadata metadata|nothing;
    11            template here/waeup_content_master/macros/master;
     11           template here/main_template/macros/master;
    1212           ">
    1313<metal:block define-macro="edit_form">
     
    1616  <metal:block fill-slot="header">
    1717    <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" />
    1919    </span>
    2020    <span tal:condition="is_allowed">
  • WAeUP_SRP/trunk/skins/waeup_design/main_template.pt

    r1756 r1783  
    33  emptybody emptybody|request/emptybody|nothing;
    44  mtool here/portal_membership;
    5   can_raise python:mtool.assertViewable(here);
     5 
    66  utool nocall:here/portal_url;
    77  atool here/portal_actions;
     
    8181      <table summary="Logo Block"
    8282             style="margin-left: auto; margin-right: auto; width: 100%;"
    83              class="shapeNoBorder colorTransparent" cellpadding="0"
     83             class="shapeNoBorder colorTransparent" cellpadding="0" 
    8484             cellspacing="0">
    8585        <tbody>
    8686          <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>
    9795          </tr>
    9896        </tbody>
  • WAeUP_SRP/trunk/skins/waeup_design/slip_template.pt

    r1745 r1783  
    33  emptybody emptybody|request/emptybody|nothing;
    44  mtool here/portal_membership;
    5   can_raise python:mtool.assertViewable(here);
     5
    66  utool nocall:here/portal_url;
    77  atool here/portal_actions;
  • WAeUP_SRP/trunk/skins/waeup_epayment/getPaymentsFolderInfo.py

    r1758 r1783  
    1212Info for the PaymentsFolder
    1313"""
     14
     15mtool = context.portal_membership
     16if mtool.isAnonymousUser():
     17    return None
     18
     19
    1420#import logging
    1521#logger = logging.getLogger('Skins.getPaymentsFolderInfo')
  • WAeUP_SRP/trunk/skins/waeup_epayment/payment_receipt.pt

    r1737 r1783  
    33                tal:define="info context/getStudentBaseInfo;
    44                            info_doc context/getDocumentInfo">
    5       <span tal:condition="not: info">
     5     
     6      <span tal:condition="python: not info or not info_doc">
    67        <span tal:content="here/illegal_view" />
    78      </span>
    8       <span tal:condition="info">
     9     
     10      <span tal:condition="python: info and info_doc">
    911     
    1012        <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;">
    513        <a href=""
    614           tal:attributes="href string:${context/aq_parent/absolute_url}">
     
    1826        </h3>
    1927        <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
    2529
    2630        <table class="registration" width="100%">
     
    6266                />
    6367               
    64 
    65 
    6668               
    6769        </form> 
     
    7981                />
    8082        </form>         
    81        
    82        
    8383        </div>       
     84
     85      </span>
     86      </span>
    8487      </metal:main>
    8588</metal:body>
  • WAeUP_SRP/trunk/skins/waeup_student/accommodation_slip.pt

    r1737 r1783  
    44                            info_app  context/getApplicationInfo">
    55      <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" />
    77      </span>   
    88      <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">
    22    <metal:main fill-slot="main"
    3                 tal:define="info context/getAccommodationInfo">
     3            tal:define="info context/getAccommodationInfo">
    44      <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" />
    66      </span>
    77      <span tal:condition="python: info and info['acco']">
     8
    89        <div style="text-align: right">
    910        <a href="" target="slip" tal:attributes="href string:accommodation_slip"
     
    1314        </a>
    1415        </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>       
    1521        <h3>My Accommodation Record</h3>
    1622        <br />
  • WAeUP_SRP/trunk/skins/waeup_student/admission_form.pt

    r1096 r1783  
    44  </span>
    55<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">
    77    <metal:main fill-slot="main">
    88    <span tal:condition="not: info">
    9       <metal:block use-macro="here/error_not_found/macros/not_found" />
     9      <span tal:content="here/illegal_view" />
    1010    </span>
    1111    <span tal:condition="info"
     
    2121      </a>
    2222      </div>         
    23          
     23 
    2424         
    2525      <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  
    1515           metadata nothing;
    1616            ">
    17   <metal:body use-macro="here/waeup_content_master/macros/master">
     17  <metal:body use-macro="here/main_template/macros/master">
    1818    <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 level
    23       </a>
    2419      <h3>Update Your Application Data!</h3>
    2520      <br />
  • WAeUP_SRP/trunk/skins/waeup_student/application_slip.pt

    r1737 r1783  
    33                tal:define="info context/getApplicationInfo">
    44      <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
    66      </span>
    7       <span tal:condition="info"
    8             tal:define="review_state info/review_state">
     7      <span tal:condition="info">
    98           
    109        <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">
    22   <metal:main fill-slot="main"
    33                 tal:define="info context/getApplicationInfo">
    44      <span tal:condition="not: info">
    5         <metal:block use-macro="here/error_not_found/macros/not_found" />
     5        <span tal:content="here/illegal_view" />
    66      </span>
    7       <span tal:condition="info"
    8             tal:define="review_state info/review_state">
     7      <span tal:condition="info">
    98           
    10         <div style="text-align: right"
     9        <div style="text-align: right" tal:define="review_state info/review_state"
    1110             tal:condition="python:review_state not in ('created','application_pin_entered',)">
    1211        <a href="" target="slip" tal:attributes="href string:application_slip"
     
    1615        </a>
    1716       
    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>
    2023        <h3>My Application Record</h3>
    2124        <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">
    22    <metal:main fill-slot="main"
    33                tal:define="info context/getClearanceInfo;
     
    66                        ">
    77      <span tal:condition="not: info">
    8         <metal:block use-macro="here/error_not_found/macros/not_found" />
     8        <span tal:content="here/illegal_view" />
    99      </span>
    1010      <span tal:condition="info"
     
    1818            Clearance/Eligibility Slip
    1919        </a>
    20        
    2120        </div>
    2221
     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       
    2328        <h3>
    2429           <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">
    22<metal:block define-macro="contact_student_form">
    33<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>
    228  </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  
    1212return Info about the Students StudyCourse
    1313"""
     14
     15mtool = context.portal_membership
     16if mtool.isAnonymousUser():
     17    return None
     18
    1419try:
    1520    from Products.zdb import set_trace
  • WAeUP_SRP/trunk/skins/waeup_student/getStudyLevelInfo.py

    r1641 r1783  
    1212return Info about the Studylevel
    1313"""
     14
     15wf = context.portal_workflow
     16mtool = context.portal_membership
     17if mtool.isAnonymousUser():
     18    return None
     19
    1420try:
    1521    from Products.zdb import set_trace
     
    1723    def set_trace():
    1824        pass
     25       
     26       
    1927from Products.AdvancedQuery import Eq, Between, Le,In
    2028aq_portal = context.portal_catalog.evalAdvancedQuery
     
    4957    return -1
    5058
    51 
    52 wf = context.portal_workflow
    53 mtool = context.portal_membership
    5459student_id = context.getStudentId()
    55 
    56 
    5760
    5861info = {}
  • WAeUP_SRP/trunk/skins/waeup_student/inter_faculty_transfer_1.pt

    r1737 r1783  
    55             
    66    <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" />
    88    </span>       
    99    <span tal:condition="info/paid|nothing">   
  • WAeUP_SRP/trunk/skins/waeup_student/inter_faculty_transfer_2.pt

    r1737 r1783  
    44
    55    <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" />
    77    </span>               
    88    <span tal:condition="info/paid|nothing">                 
  • WAeUP_SRP/trunk/skins/waeup_student/inter_faculty_transfer_3.pt

    r1737 r1783  
    44
    55    <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" />
    77    </span>               
    88    <span tal:condition="info/paid|nothing">                 
  • WAeUP_SRP/trunk/skins/waeup_student/intra_faculty_transfer_1.pt

    r1737 r1783  
    55             
    66    <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" />
    88    </span>       
    99    <span tal:condition="info/paid|nothing">   
  • WAeUP_SRP/trunk/skins/waeup_student/intra_faculty_transfer_2.pt

    r1737 r1783  
    44
    55    <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" />
    77    </span>               
    88    <span tal:condition="info/paid|nothing">                 
  • WAeUP_SRP/trunk/skins/waeup_student/intra_faculty_transfer_3.pt

    r1737 r1783  
    44
    55    <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" />
    77    </span>               
    88    <span tal:condition="info/paid|nothing">               
  • WAeUP_SRP/trunk/skins/waeup_student/objection_raised_form.pt

    r1161 r1783  
    55  </span>
    66<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">
    88    <metal:main fill-slot="main">
    99   
  • WAeUP_SRP/trunk/skins/waeup_student/personal_edit_form.pt

    r1737 r1783  
    11<metal:body use-macro="here/main_template/macros/master">
    2 
    32
    43    <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">
    22    <metal:main fill-slot="main"
    33                tal:define="info context/getPersonalInfo">
    44      <span tal:condition="not: info">
    5         <metal:block use-macro="here/error_not_found/macros/not_found" />
     5        <span tal:content="here/illegal_view" />
    66      </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>           
    913        <h3>My Personal Record</h3>
    1014        <br />
  • WAeUP_SRP/trunk/skins/waeup_student/pume_view.pt

    r911 r1783  
    11<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">
    33    <metal:main fill-slot="main">
    44      <span tal:condition="not: info">
    5         <metal:block use-macro="here/error_not_found/macros/not_found" />
     5        <span tal:content="here/illegal_view" />
    66      </span>
    77      <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">
    22    <metal:main fill-slot="header" />
    33    <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">
    24121        <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>
    27134        </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
    1630      </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     
    6832      </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>
    20746      <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                     
    219124              <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.