Ignore:
Timestamp:
19 Mar 2007, 18:57:54 (18 years ago)
Author:
uli
Message:

Merged current trunk into uli-branch.

Location:
WAeUP_SRP/branches/uli/skins/waeup_student
Files:
2 deleted
42 edited
3 copied

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/branches/uli/skins/waeup_student/add_course_result.py

    r1520 r1593  
    55##bind script=script
    66##bind subpath=traverse_subpath
    7 ##parameters=
     7##parameters=REQUEST=None, action_after_validate=None
    88##title=
    99##
     
    1212add a StudentCourseResult object
    1313"""
     14
     15import logging
     16logger = logging.getLogger('Skins.add_course_result')
     17
    1418from urllib import urlencode
    1519try:
     
    2327aq_portal = context.portal_catalog.evalAdvancedQuery
    2428course_id = request.get('course_id')
     29
     30mtool = context.portal_membership
     31member = mtool.getAuthenticatedMember()
     32
     33
    2534d = context.getCourseInfo(course_id)
    2635args = {}
     
    2837while True:
    2938    if d['title'] == 'unknown':
    30         err = "No such course"
     39        err = "No such course!"
     40        logger.info('%s tried to add StudentCourseResult object %s for non-existing course' % (member,course_id))
    3141        break
    3242    if context.hasObject(course_id):
    33         err = "Course already exists"
     43        err = "Course already exists!"
     44        logger.info('%s tried to add StudentCourseResult object %s which is already in course list' % (member,course_id))
    3445        break
    3546    if context.hasObject("%s_co" % course_id):
    36         err = "Course already exists as carryover course"
     47        err = "Course already exists as carryover course!"
     48        logger.info('%s tried to add StudentCourseResult object %s which already exists as carryover course' % (member,course_id))
    3749        break
    3850    break
     
    4052if err:
    4153    args['course_id'] = course_id
    42     args['error'] = err
     54    #args['error'] = err
     55    args['portal_status_message'] = err
    4356    url = "%s?%s" % (context.absolute_url(),urlencode(args))
    4457    return request.RESPONSE.redirect(url)
     58
     59
    4560cr_id = context.invokeFactory('StudentCourseResult',course_id)
    4661#set_trace()
     
    5065context.portal_workflow.doActionFor(cr,'close')
    5166args['course_id'] = course_id
    52 from urllib import urlencode
    53 url = "%s?%s" % (context.absolute_url(),urlencode(args))
    54 return request.RESPONSE.redirect(url)
    5567
     68logger.info('%s added StudentCourseResult object %s' % (member,course_id))
     69
     70args = {}
     71psm = "You successfully added course %s!" % course_id
     72args['portal_status_message'] = psm
     73url = context.absolute_url() + '/' + action_after_validate + '?' + urlencode(args)
     74return REQUEST.RESPONSE.redirect(url)
     75
  • WAeUP_SRP/branches/uli/skins/waeup_student/add_student.py

    r1422 r1593  
    1313acco_cat = context.portal_accommodation
    1414import logging
    15 logger = logging.getLogger('Student.Add')
     15logger = logging.getLogger('Skins.add_student')
    1616
    1717validate = REQUEST.has_key("cpsdocument_edit_button") and\
     
    6767student_rec = context.getFormattedStudentEntry(context.students_catalog(id = sid)[0])
    6868psm = "Student record with Id %s and Password %s has been created." % (sid,password)
    69 logger.info('"%s","created student","%s"' % (member,sid))
     69logger.info('%s created student %s' % (member,sid))
    7070return context.add_student_form(rendered = rendered,
    7171                                 #psm = "%s, %s" % (psm,ds),
  • WAeUP_SRP/branches/uli/skins/waeup_student/application_edit.py

    r1343 r1593  
    1616current = DateTime.DateTime()
    1717import logging
    18 logger = logging.getLogger('Student.Application.Edit')
     18logger = logging.getLogger('Skins.application_edit')
    1919
    2020# Until ajax posts directly to its own script...
     
    3030
    3131if info is None:
    32     logger.info('"anonymous access","%s"' % REQUEST.get('URL0'))
     32    logger.info('Anonymous user tried to access %s"' % REQUEST.get('URL0'))
    3333    return REQUEST.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())
    3434
     
    5656    elif cpsdocument_edit_and_view_button:
    5757        if 1: ## app_doc.passport is not None:
    58             logger.info('"%s", "proceeded to start clearance"' % (info['id']))
     58            logger.info('%s proceeded to start clearance' % (info['id']))
    5959            action = "/start_clearance"
    6060            base_url = student.absolute_url()
  • WAeUP_SRP/branches/uli/skins/waeup_student/change_password.py

    r1527 r1593  
    1414current = DateTime.DateTime()
    1515#pr = context.portal_registration
    16 logger = logging.getLogger('Student.change_password')
     16logger = logging.getLogger('Skins.change_password')
    1717validate = request.has_key("change_password")
    1818students_dir = context.portal_directories.students
     
    2424requested_id = context.getStudentId()
    2525if requested_id and not context.isStaff() and member_id != requested_id:
    26     logger.info('"%s", "tried to access", "%s"' % (member_id,requested_id))
     26    logger.info('%s tried to access %s' % (member_id,requested_id))
    2727    return None
    2828elif context.isStaff():
     
    7474args['__ac_name'] = student_id
    7575args['__ac_password'] = password
     76logger.info('%s changed password from %s to %s' % (member_id,old_password,password))
    7677from urllib import urlencode
    7778url = "%s/logged_in?%s" % (context.absolute_url(),urlencode(args))
  • WAeUP_SRP/branches/uli/skins/waeup_student/clearance_edit.py

    r1217 r1593  
    1616current = DateTime.DateTime()
    1717import logging
    18 logger = logging.getLogger('Student.Clearance.Edit')
     18logger = logging.getLogger('Skins.clearance_edit')
    1919request = REQUEST
    2020
     
    7070    if cpsdocument_edit_button or result_edit_button:
    7171        psm = "Content changed!"
    72         logger.info('"%s","edited clearance of","%s"' % (member_id,student_id ))
     72        logger.info('%s edited clearance of %s' % (member_id,student_id ))
    7373        if clear_doc.clr_ac_pin == "":
    7474            res = context.portal_pins(student=member_id)
     
    9292                    missing = True
    9393            if missing:
    94                 logger.info('"%s","requested clearance with documents missing"' % (student_id))
     94                logger.info('%s requested clearance with documents missing' % (student_id))
    9595                psm = "You have not uploaded all necessary documents to request clearance!"
    9696            else:
    97                 logger.info('"%s","requested clearance"' % (student_id))
     97                logger.info('%s requested clearance' % (student_id))
    9898                info['clear_doc'].edit(mapping = {'request_date': current,})
    9999                wftool.doActionFor(info['clear'],'close')
     
    103103                    action = "/clearance_view"
    104104        elif acknowledge and info['review_state'] != "clearance_pin_entered":
    105             logger.info('"%s","repeatedly requested clearance"' % (student_id))
     105            logger.info('%s repeatedly requested clearance' % (student_id))
    106106            psm = "You have already requested clearance!"
    107107        else:
    108108            psm = "You must tick the acknowledgement check box before submission!"
    109109    elif clear_and_validate_button and info['review_state'] == "clearance_requested":
    110         logger.info('"%s","cleared","%s"' % (member_id,student_id ))
     110        logger.info('%s cleared %s' % (member_id,student_id ))
    111111        #from Products.zdb import set_trace
    112112        #set_trace()
     
    117117        psm = "This student is already cleared!"
    118118    elif reject_clearance_button:
    119         logger.info('"%s","rejected clearance for","%s"' % (member_id,student_id ))
     119        logger.info('%s rejected clearance for %s' % (member_id,student_id ))
    120120        wftool.doActionFor(info['clear'],'open')
    121121        wftool.doActionFor(info['student'],'reject_clearance')
    122122        action = "/contact_student_form"
    123123        psm = "Student's clearance request has been rejected! Please fill and submit the form below!"
     124        subject = "Clearance request rejected"
     125        args['subject'] = subject
     126        args['continue'] = 'external_clearance_edit_form'
    124127else:
    125128    psm = "Please correct your errors!"
     
    128131args['portal_status_message'] = psm
    129132url = clear.absolute_url() + action + '?' + urlencode(args)
    130 REQUEST.RESPONSE.redirect(url)
     133return REQUEST.RESPONSE.redirect(url)
    131134
  • WAeUP_SRP/branches/uli/skins/waeup_student/clearance_slip.pt

    r1156 r1593  
    1 <metal:html tal:define="info context/getClearanceInfo">
    2   <metal:body use-macro="here/main_template/macros/master">
    3     <metal:main fill-slot="main">
     1<metal:body use-macro="here/main_template/macros/master">
     2    <metal:main fill-slot="main"
     3                 tal:define="info context/getClearanceInfo">
    44      <span tal:condition="not: info">
    55        <span tal:content="here/illegal_view" />
     
    6666      </span>
    6767    </metal:main>
    68   </metal:body>
    69 </metal:html>
     68</metal:body>
  • WAeUP_SRP/branches/uli/skins/waeup_student/contact_student_form.pt

    r1455 r1593  
     1<metal:block define-macro="contact_student_form">
    12<metal:body use-macro="here/main_template/macros/master">
    23    <metal:main fill-slot="main"
    34                tal:define="member python:context.portal_membership.getAuthenticatedMember();
    45                        info context/getStudentBaseInfo;
     6                        subject python:context.REQUEST.get('subject');
     7                        continue python:context.REQUEST.get('continue')
    58                        ">
    69      <span tal:condition="not: info">
     
    811      </span>                       
    912   
    10       <span tal:condition="info">
     13      <span tal:condition="python: info and subject">
    1114      <h3>Contact Student</h3>
    1215      <br />
     
    2326      <input type="hidden" name="student_email" type="text" id="student_email"
    2427             tal:attributes="value info/student/email"/>                   
    25 
     28      <input type="hidden" name="probtype" type="text" id="probtype"
     29             tal:attributes="value subject"/>     
     30             
    2631      <table width="100%" border="0" cellspacing="5" cellpadding="0">
    2732        <tr>
     
    4247        </tr>
    4348        <tr>
    44           <td>
    45              <strong>Type of Rejection: </strong>
     49          <td valign="top">
     50             <strong>Reason of Notification: </strong>
    4651          </td>
    47           <td>
    48               <select name="probtype" class="boxgreen" id="probtype">
    49                 <option>Clearance request rejected</option>
    50               </select>       
     52          <td valign="bottom">
     53             <span tal:content="subject" />
    5154          </td>
    5255        </tr>       
     
    6770      </span>
    6871      <form action="." method="post" class="group">
    69             <input type="submit" name="external_clearance_edit_form:method"
     72            <input type="submit" name="."
     73                       tal:attributes="name string:${continue}:method"
    7074                       class="context" value="Continue" />
    7175      </form>     
     
    7377    </metal:main>
    7478</metal:body>
     79</metal:block>
  • WAeUP_SRP/branches/uli/skins/waeup_student/course_registration_slip.pt

    r1516 r1593  
    1 <metal:html tal:define="info context/getStudyLevelInfo;
     1<metal:body use-macro="here/main_template/macros/master">
     2    <metal:main fill-slot="main"
     3                tal:define="info context/getStudyLevelInfo;
    24                  is_so context/isSectionOfficer;
    35                  is_ca info/is_ca;
    46                  show_check_boxes info/show_check_boxes;
    5                   is_student info/is_student;
    6                   status_info info/status_info;
    7                   review_state info/review_state;
    8                   view_only info/view_only">
    9   <metal:body use-macro="here/main_template/macros/master">
    10     <metal:main fill-slot="main">
     7                  validated python:context.getStudentReviewState() in ('courses_validated',);
     8                              is_student info/is_student;
     9                          status_info info/status_info;
     10                          review_state info/review_state;
     11                          view_only info/view_only">
    1112      <span tal:condition="not: info">
    1213        <span tal:content="here/illegal_view" />
     
    1415      <span tal:condition="info">
    1516      <h3>Course Registration Slip</h3>
     17     
    1618      <br />
    17       <table width="" cellpadding="2" cellspacing="0">
     19     
     20      <div tal:condition="validated">
     21        - validated by Course Adviser -
     22      </div>
     23      <div tal:condition="not: validated">
     24        - not yet validated by Course Adviser -
     25      </div>
     26     
     27      <br />
     28      <span tal:omit-tag=""
     29            tal:content="structure python: info['app_doc'].render(proxy=info['app_doc'],
     30            layout_mode='view_info',
     31            layout_id='student_application_fe')"
     32            />           
     33
     34      <table  cellpadding="2" cellspacing="0">
    1835          <tr>
    19             <td valign="top"><span class="dlabel">Name</span>:
    20             </td>
    21             <td>
    22               <span tal:content="info/student/name" />
    23             </td>     
    24           </tr>
    25           <tr>
    26             <td valign="top"><span class="dlabel">Student Id</span>:
    27             </td>
    28             <td>
    29               <span tal:content="info/student/id" />
    30             </td>     
    31           </tr>
    32           <tr>
    33             <td valign="top"><span class="dlabel">Matriculation No</span>:
    34             </td>
    35             <td>
    36               <span tal:content="info/student/matric_no" />
    37             </td>     
    38           </tr>
    39           <tr>
    40             <td valign="top"><span class="dlabel">Faculty Id</span>:
     36            <td valign="top" width="180px"><span class="dlabel">Faculty Id</span>:
    4137            </td>
    4238            <td>
     
    111107       </span>             
    112108    </metal:main>
    113   </metal:body>
    114 </metal:html>
     109</metal:body>
    115110 
  • WAeUP_SRP/branches/uli/skins/waeup_student/create_level.py

    r1513 r1593  
    2121response = request.RESPONSE
    2222redirect = response.redirect
    23 logger = logging.getLogger('Student.create_level')
     23logger = logging.getLogger('Skins.create_level')
    2424mtool = context.portal_membership
    2525member = mtool.getAuthenticatedMember()
     
    3030cert_id = student.course
    3131current_level = student.level
    32 in_progress =  session.get('in_progress','finished')
    33 if in_progress == 'finished':
     32in_progress =  request.get('in_progress','not started')
     33
     34if context.hasObject(current_level):
     35    response.redirect("%s/%s" % (context.absolute_url(),current_level))
     36    return
     37
     38if in_progress in ('not started','started'):
    3439    session.set('in_progress','started')
    35     view = context.in_progress_view(refresh=3,page='%s/study_level_view' % current_level)
     40    view = context.in_progress_view(refresh=3,page='create_level?in_progress=started')
    3641    response.setHeader('Content-type','text/html; charset=ISO-8859-15')
    3742    response.setHeader('Content-length','%d' % (len(view)))
     
    3944    response.write(view)
    4045    response.write('')
    41 elif in_progress == 'started':
    42     return
     46    if in_progress == 'started':
     47        return
     48   
     49
    4350context.invokeFactory('StudentStudyLevel',"%s" % current_level)
    4451level = getattr(context,"%s" % current_level)
     
    5764        c_res = aq_courses(query)
    5865        if not c_res:
    59             logger.info('"%s","%s course not found in courses catalog"' % (student.id,co.CosCode))
     66            logger.info('%s", course %s not found in courses_catalog' % (student.id,co.CosCode))
    6067            continue
    6168        course_cat_entry = c_res[0]
     
    6774                score = int(co.Score)
    6875            except:
    69                 logger.info('"%s"," course %s invalid score %s"' % (student.id,
     76                logger.info('%s, course %s has invalid score %s"' % (student.id,
    7077                                                                    co.CosCode,
    7178                                                                    co.Score))
    7279                continue
    73             if int(c_res[0].passmark) <= score: 
     80            if int(c_res[0].passmark) <= score:
    7481                continue
    7582            carry_over = True
     
    99106        d['core_or_elective'] = getattr(c.getObject().getContent(),'core_or_elective')
    100107        course_result.getContent().edit(mapping=d)
    101 session.set('in_progress','finished')
    102108return
    103 return response.redirect("%s" % level.absolute_url())
  • WAeUP_SRP/branches/uli/skins/waeup_student/getAccommodationInfo.py

    r1474 r1593  
    1313"""
    1414import logging
    15 logger = logging.getLogger('Student.Accommodation.Info')
     15logger = logging.getLogger('Skins.getAccommodationInfo')
    1616import DateTime
    1717
     
    2929    requested_id = context.getStudentId()
    3030    if requested_id and not context.isStaff() and member_id != requested_id:
    31         logger.info('"%s", "tried to access", "%s"' % (member_id,requested_id))
     31        logger.info('%s tried to access %s' % (member_id,requested_id))
    3232        return None
    3333    elif context.isStaff():
     
    3737res = context.students_catalog(id=student_id)
    3838if len(res) != 1:
    39     logger.info('"%s","not found in students_catalog"')
     39    logger.info('%s not found in students_catalog' % student_id)
    4040    return None
    4141
  • WAeUP_SRP/branches/uli/skins/waeup_student/getApplicationInfo.py

    r1435 r1593  
    1313"""
    1414import logging
    15 logger = logging.getLogger('Student.Application.Info')
     15logger = logging.getLogger('Skins.getApplicationInfo')
    1616
    1717request = context.REQUEST
     
    2828requested_id = context.getStudentId()
    2929if requested_id and not context.isStaff() and member_id != requested_id:
    30     logger.info('"%s", "accessed application object of", "%s"' % (member_id,requested_id))
     30    logger.info('%s tried to access application object of %s' % (member_id,requested_id))
    3131    student_id = requested_id
     32    return None
    3233elif context.isStaff():
    3334    student_id = requested_id
  • WAeUP_SRP/branches/uli/skins/waeup_student/getClearanceInfo.py

    r1162 r1593  
    1313"""
    1414import logging
    15 logger = logging.getLogger('Student.Clearance.Info')
     15logger = logging.getLogger('Skins.getClearanceInfo')
    1616from DateTime import DateTime
    1717
     
    3030requested_id = context.getStudentId()
    3131if requested_id and not context.isStaff() and member_id != requested_id:
    32     logger.info('"%s", "tried to access", "%s"' % (member_id,requested_id))
     32    logger.info('%s tried to access %s' % (member_id,requested_id))
    3333    return None
    3434elif context.isStaff():
  • WAeUP_SRP/branches/uli/skins/waeup_student/getMemberInfo.py

    r1541 r1593  
    2828requested_id = context.getStudentId()
    2929if requested_id and not context.isStaff() and member_id != requested_id:
    30     logger.info('"%s", "accessed personal object of", "%s"' % (member_id,requested_id))
     30    logger.info('%s tried to access personal object of %s' % (member_id,requested_id))
    3131    student_id = requested_id
     32    return None
    3233elif context.isStaff():
    3334    student_id = requested_id
  • WAeUP_SRP/branches/uli/skins/waeup_student/getNewStudentStatistics.py

    r1530 r1593  
    1313"""
    1414import logging
    15 logger = logging.getLogger('Student.Statistics')
     15logger = logging.getLogger('Skins.getNewStudentStatistics')
    1616
    1717try:
     
    2121except:
    2222    evalAdvancedQuery = None
    23 logger.info('"%s","invoked new statistics"' % context.portal_membership.getAuthenticatedMember())
     23logger.info('%s invoked statistics' % context.portal_membership.getAuthenticatedMember())
    2424l = []
    2525if not context.isStaff():
     
    108108    if total:
    109109        dep['cleared_and_validated_percent'] = "%.0f" % round(cav*100/total)
    110        
     110
    111111    ora = len([s for s in fac_ids if s in or_ids])
    112112    dep['objection_raised'] = ora
  • WAeUP_SRP/branches/uli/skins/waeup_student/getPersonalInfo.py

    r1203 r1593  
    1313"""
    1414import logging
    15 logger = logging.getLogger('Student.Personal.Info')
     15logger = logging.getLogger('Skins.getPersonalInfo')
    1616
    1717request = context.REQUEST
     
    2828requested_id = context.getStudentId()
    2929if requested_id and not context.isStaff() and member_id != requested_id:
    30     logger.info('"%s", "accessed personal object of", "%s"' % (member_id,requested_id))
     30    logger.info('%s tried to access personal object of %s' % (member_id,requested_id))
    3131    student_id = requested_id
     32    return None
    3233elif context.isStaff():
    3334    student_id = requested_id
  • WAeUP_SRP/branches/uli/skins/waeup_student/getRegStatistics.py

    r1530 r1593  
    1313"""
    1414import logging
    15 logger = logging.getLogger('Student.Statistics')
     15logger = logging.getLogger('Skins.getRegStatistics')
    1616
    1717try:
     
    2121except:
    2222    evalAdvancedQuery = None
    23 logger.info('"%s","invoked reg statistics"' % context.portal_membership.getAuthenticatedMember())
     23logger.info('%s invoked statistics' % context.portal_membership.getAuthenticatedMember())
    2424l = []
    2525if not context.isStaff():
     
    8181    if total:
    8282        dep['courses_registered_percent'] = "%.0f" % round(creg*100/total)
    83        
     83
    8484    cval = len([s for s in fac_ids if s in cval_ids])
    8585    dep['courses_validated'] = cval
  • WAeUP_SRP/branches/uli/skins/waeup_student/getRetStudentStatistics.py

    r1536 r1593  
    1313"""
    1414import logging
    15 logger = logging.getLogger('Student.Statistics')
     15logger = logging.getLogger('Skins.getRetStudentStatistics')
    1616
    1717try:
     
    2121except:
    2222    evalAdvancedQuery = None
    23 logger.info('"%s","invoked returning statistics"' % context.portal_membership.getAuthenticatedMember())
     23logger.info('%s invoked statistics' % context.portal_membership.getAuthenticatedMember())
    2424l = []
    2525if not context.isStaff():
    2626    return l
    2727dep = {}
    28 sum = 0
    2928dep['id'] = "All Faculties"
    3029
    31 #from Products.zdb import set_trace;set_trace()
    3230
    33 ret_res = context.portal_catalog(review_state ='returning')
    34 ret_ids = [r.getId for r in ret_res]
    35 ret = len(ret_res)
    36 dep['total'] = ret
     31ret_res1 = context.portal_catalog(review_state = 'returning')
     32ret_ids1 = [r.getId for r in ret_res1]
     33total_ret = len(ret_ids1)
     34
     35ret_res2 = context.portal_catalog(review_state = ('school_fee_paid','courses_registered','courses_validated',))
     36ret_ids2 = [r.getId for r in ret_res2]
     37
     38retquery = Ge('level','300') | (Eq('level','200') & Eq('entry_mode','UME'))
     39ret_res3 = aq_students(retquery)
     40ret_ids3 = [r.id for r in ret_res3]
    3741
    3842l.append(dep)
     43sum_ret = 0
     44sum_sfp = 0
    3945fs = context.portal_catalog(portal_type="Faculty")
    4046for fid in [f.getId for f in fs]:
     
    4551    stud_ids = [r.id for r in stud_res]
    4652    total = float(len(stud_res))
    47 
    4853    if total == 0:
    4954        continue
    50 
    51     ret = len([s for s in stud_ids if s in ret_ids])
    52     dep['returned'] = ret
    53     sum += ret
    54 
    55     if ret == 0:
    56         continue
     55    sfp = len([s for s in stud_ids if s in ret_ids2 and s in ret_ids3])
     56    dep['sfp'] = sfp
     57    ret = len([s for s in stud_ids if s in ret_ids1])
     58    dep['ret'] = ret
     59    sum_ret += ret
     60    sum_sfp += sfp
    5761
    5862    l.append(dep)
    5963
    60 l[0]['sum'] = sum
     64l[0]['ret'] = sum_ret
     65l[0]['sfp'] = sum_sfp
     66l[0]['total_ret'] = total_ret + sum_sfp
     67l[0]['total_li'] = sum_ret + sum_sfp
     68
    6169
    6270return l
  • WAeUP_SRP/branches/uli/skins/waeup_student/getSchoolFeePrefix.py

    r1364 r1593  
    1 ## Script (Python) "getMaintenancePrefix"
     1## Script (Python) "getSchoolFeePrefix"
    22##bind container=container
    33##bind context=context
     
    1616    return None
    1717
    18 import logging   
    19 logger = logging.getLogger('EPayment.getSchoolFeePrefix')   
     18import logging
     19logger = logging.getLogger('Skins.getSchoolFeePrefix')
    2020
    2121student_id = context.getStudentId()
     
    2424                                     id = sbrain.course)
    2525if not res:
    26     logger.info('"%s","certificate not found", "%s"' % (student_id,course))
     26    logger.info('%s, certificate %s not found' % (student_id,course))
    2727    prefix = "--"
    2828else:
  • WAeUP_SRP/branches/uli/skins/waeup_student/getSessionResults.py

    r1524 r1593  
    2727if requested_id and not context.isStaff() and member_id != requested_id:
    2828    import logging
    29     logger = logging.getLogger('Student.SessionResults.Info')
    30     logger.info('"%s", "tried to access", "%s"' % (member_id,requested_id))
     29    logger = logging.getLogger('Skins.getSessionResults')
     30    logger.info('%s tried to access %s' % (member_id,requested_id))
    3131    return None
    3232elif context.isStaff():
     
    9999    gpa = "%4.2f" % gpa
    100100
    101 
     101#set_trace()
    102102verdict_voc = context.portal_vocabularies.verdicts
    103 if verdict_voc.has_key(student_from_cat.verdict):
    104     info['verdict'] = verdict = verdict_voc.get(student_from_cat.verdict).upper()
     103verdict_code = student_from_cat.get('verdict',None)
     104if verdict_code:
     105    info['verdict'] = verdict = verdict_voc.get(verdict_code,'N/A').upper()
    105106else:
    106     info['verdict'] = 'N/A'
     107    info['verdict'] = verdict = 'N/A'
    107108
    108109if student_from_cat.level:
  • WAeUP_SRP/branches/uli/skins/waeup_student/getStudentBaseInfo.py

    r1369 r1593  
    1313"""
    1414import logging
    15 logger = logging.getLogger('Student.Base.Info')
     15logger = logging.getLogger('Skins.getStudentBaseInfo')
    1616from DateTime import DateTime
    1717
     
    2929requested_id = context.getStudentId()
    3030if requested_id and not context.isStaff() and member_id != requested_id:
    31     logger.info('"%s", "tried to access", "%s"' % (member_id,requested_id))
     31    logger.info('%s tried to access %s' % (member_id,requested_id))
    3232    return None
    3333elif context.isStaff():
  • WAeUP_SRP/branches/uli/skins/waeup_student/getStudentFolderInfo.py

    r1472 r1593  
    1 ## Script (Python) "getStudentInfo"
     1## Script (Python) "getStudentFolderInfo"
    22##bind container=container
    33##bind context=context
     
    2121
    2222import logging
    23 logger = logging.getLogger('Student.Info')
     23logger = logging.getLogger('Skins.getStudentFolderInfo')
    2424
    2525
     
    3838        break
    3939    if member_id != requested_id:
    40         logger.info('"%s", "tried to access", "%s"' % (member_id,requested_id))
     40        logger.info('%s tried to access %s' % (member_id,requested_id))
    4141        student_id = member_id
    4242        mtool.assertViewable(context)
  • WAeUP_SRP/branches/uli/skins/waeup_student/getStudentInfo.py

    r1286 r1593  
    2121
    2222import logging
    23 logger = logging.getLogger('Student.Info')
     23logger = logging.getLogger('Skins.getStudentInfo')
    2424
    2525
     
    4242            break
    4343        if member_id != requested_id:
    44             logger.info('"%s", "tried to access", "%s"' % (member_id,requested_id))
     44            logger.info('%s tried to access %s' % (member_id,requested_id))
    4545            student_id = member_id
    4646            mtool.assertViewable(context)
  • WAeUP_SRP/branches/uli/skins/waeup_student/getStudyCourseInfo.py

    r1537 r1593  
    5252levels = context.objectIds()
    5353review_state = wftool.getInfoFor(context,'review_state',None)
    54 if review_state != 'content_addable':
     54student_review_state = context.getStudentReviewState()
     55if review_state != 'content_addable' and student_review_state == 'school_fee_paid': #and context.isStudent():
    5556    wftool.doActionFor(context,'close_for_edit')
    56 student_review_state = context.getStudentReviewState()
    5757may_register = (student_review_state in ('school_fee_paid',)) and\
    5858               current_level not in levels and\
    5959               (sbrain.verdict in ('A','B') or sbrain.jamb_reg_no.startswith('6'))
    60                
     60
    6161levels.sort()
    6262info['create_level'] = None
     
    7272info['items'] = items
    7373
    74 try: 
     74try:
    7575    info['verdict'] = context.portal_vocabularies.verdicts.get(info['doc'].current_verdict).upper()
    7676except:
    77     info['verdict'] = course.current_verdict 
     77    info['verdict'] = course.current_verdict
    7878
    7979return info
  • WAeUP_SRP/branches/uli/skins/waeup_student/getStudyLevelInfo.py

    r1515 r1593  
    6161info['review_state'] = review_state = context.getStudentReviewState()
    6262info['view_only'] =  review_state != "school_fee_paid"
    63 info['show_check_boxes'] =  (is_ca and review_state in ('courses_registered',)) or\
     63info['show_check_boxes'] =  (is_ca and review_state in ('school_fee_paid',)) or\
    6464                            (is_student and context.getStudentReviewState() == "school_fee_paid") or\
    6565                            (is_so)
     
    108108normal.sort(cmp_semester)
    109109info['normal'] = normal
     110
     111students_object = context.portal_url.getPortalObject().campus.students
     112student = getattr(students_object, student_id)
     113info['app'] = student.application
     114info['app_doc'] = student.application.getContent()
     115
    110116return info
  • WAeUP_SRP/branches/uli/skins/waeup_student/getTransferInfo.py

    r1368 r1593  
    1 ## Script (Python) "getClearanceInfo"
     1## Script (Python) "getTransferInfo"
    22##bind container=container
    33##bind context=context
     
    1313"""
    1414import logging
    15 logger = logging.getLogger('Student.Transfer.Info')
     15logger = logging.getLogger('Skins.getTransferInfo')
    1616from DateTime import DateTime
    1717
     
    2929requested_id = context.getStudentId()
    3030if requested_id and not context.isStaff() and member_id != requested_id:
    31     logger.info('"%s", "tried to access", "%s"' % (member_id,requested_id))
     31    logger.info('%s tried to access %s' % (member_id,requested_id))
    3232    return None
    3333elif context.isStaff():
  • WAeUP_SRP/branches/uli/skins/waeup_student/get_searchable_student_states.py

    r1033 r1593  
    2323    return [item for item in voc.items() if item[0].startswith('clear') or
    2424                                         item[0] in ("all",)]
     25elif "CourseAdvisers" in member.getGroups():
     26    return [item for item in voc.items() if item[0].startswith('courses') or
     27                                         item[0] in ("all",)]
    2528return voc.items()
    2629
  • WAeUP_SRP/branches/uli/skins/waeup_student/layout_application_view_info.pt

    r1435 r1593  
    55              dm options/datastructure/getDataModel;
    66              widgets python:context.getRenderedWidgets(layout);
    7               fields python:('jamb_reg_no','app_email','app_mobile')"
     7              info context/getStudentBaseInfo;"
    88              >
    99 
     
    2020          </td>
    2121          <td>
    22             <span tal:content="python:context.getStudentBaseInfo()['student']['name']" />
     22            <span tal:content="info/student/name" />
    2323          </td>     
    2424        </tr>
     
    2727          </td>
    2828          <td>
    29             <span tal:content="python:context.getStudentBaseInfo()['student']['sex']" />
     29            <span tal:content="info/student/sex" />
    3030          </td>     
    3131        </tr>         
     
    3434          </td>
    3535          <td>
    36             <span tal:content="python:context.getStudentBaseInfo()['id']" />
     36            <span tal:content="info/id" />
    3737          </td>     
    3838        </tr>
    39 
    40         <tr tal:repeat="field fields">
    41           <tal:block tal:define="cell python: widgets[field]">
    42             <tal:block define="widget cell/widget">
    43               <div tal:attributes="class cell/widget_css_class|string:label;
    44               id python:widget.getHtmlWidgetId()+'_widget';"
    45               >
    46                 <td >
    47                   <span class="dlabel"
    48                         tal:condition="widget/label"
    49                         tal:content="widget/label">label</span>:
    50                 </td>
    51                 <td>
    52                   <span tal:replace="structure cell/widget_rendered" />
    53                 </td>
    54               </div>
    55             </tal:block>
    56           </tal:block>
    57         </tr>
     39        <tr valign="top">
     40          <td><span class="dlabel">Matriculation No</span>:
     41          </td>
     42          <td>
     43            <span tal:content="info/student/matric_no" />
     44          </td>     
     45        </tr>       
     46        <tr valign="top">
     47          <td><span class="dlabel">JAMB Registration No</span>:
     48          </td>
     49          <td>
     50            <span tal:content="info/student/jamb_reg_no" />
     51          </td>     
     52        </tr>   
     53        <tr valign="top">
     54          <td><span class="dlabel">Email</span>:
     55          </td>
     56          <td>
     57            <span tal:content="info/student/email" />
     58          </td>     
     59        </tr>         
     60        <tr valign="top">
     61          <td><span class="dlabel">Phone</span>:
     62          </td>
     63          <td>
     64            <span tal:content="info/student/phone" />
     65          </td>     
     66        </tr>         
     67        <tr valign="top">
     68          <td><span class="dlabel">Level</span>:
     69          </td>
     70          <td>
     71            <span tal:content="info/student/level" />
     72          </td>     
     73        </tr>           
    5874      </table>
    5975       
  • WAeUP_SRP/branches/uli/skins/waeup_student/mail2student.py

    r909 r1593  
    3737     co_name,
    3838     co_email,
    39      student_email, 
     39     student_email,
    4040     co_email,
    4141     'henrik@waeup.org',
  • WAeUP_SRP/branches/uli/skins/waeup_student/personal_edit.py

    r1457 r1593  
    1616current = DateTime.DateTime()
    1717import logging
    18 logger = logging.getLogger('Student.Personal.Edit')
     18logger = logging.getLogger('Skins.personal_edit')
    1919
    2020info = context.getPersonalInfo()
    2121
    2222if info is None:
    23     logger.info('"anonymous access","%s"' % REQUEST.get('URL0'))
     23    logger.info('Anonymous user tried to access %s' % REQUEST.get('URL0'))
    2424    return REQUEST.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())
    2525
     
    5353                                              sex = ds.get('sex'),
    5454                                             )
    55         logger.info('"%s", "edited personal data"' % (info['id']))
     55        logger.info('%s edited personal data' % (info['id']))
    5656        #action = ""
    5757        #base_url = student.absolute_url()
  • WAeUP_SRP/branches/uli/skins/waeup_student/raise_objection.py

    r1161 r1593  
    1414import DateTime
    1515import logging
    16 logger = logging.getLogger('Student.Objection')
     16logger = logging.getLogger('Skins.raise_objection')
    1717
    1818wf = context.portal_workflow
    1919info = context.getApplicationInfo()
    2020if not info:
    21     logger.info('"%s", "tried to access", "%s"' % (context.portal_membership.getAuthenticatedMember(),context.getStudentId()))
     21    logger.info('%s tried to access %s' % (context.portal_membership.getAuthenticatedMember(),context.getStudentId()))
    2222    return context.admission_form()
    2323current = DateTime.DateTime()
  • WAeUP_SRP/branches/uli/skins/waeup_student/refresh_level.py

    r1510 r1593  
    1 ##parameters=
     1## Script (Python) "refresh_level"
     2##bind container=container
     3##bind context=context
     4##bind namespace=
     5##bind script=script
     6##bind subpath=traverse_subpath
     7##parameters=REQUEST=None, student=None, action_after_reject=None, action_after_validate=None
    28# $Id$
    39"""
     
    1622aq_courses = context.courses_catalog.evalAdvancedQuery
    1723
     24import logging
     25logger = logging.getLogger('Skins.refresh_level')
     26
     27from urllib import urlencode
     28
    1829current = DateTime.DateTime()
    1930request = context.REQUEST
     
    2132response = request.RESPONSE
    2233redirect = response.redirect
    23 logger = logging.getLogger('Student.create_level')
     34logger = logging.getLogger('Skins.refresh_level')
    2435mtool = context.portal_membership
    2536member = mtool.getAuthenticatedMember()
     
    3243if in_progress == 'finished':
    3344    session.set('in_progress','started')
    34     view = context.in_progress_view(refresh=3,page='study_level_view')
     45    view = context.in_progress_view(refresh=3,page=action_after_validate)
    3546    response.setHeader('Content-type','text/html; charset=ISO-8859-15')
    3647    response.setHeader('Content-length','%d' % (len(view)))
     
    5162        c_res = aq_courses(query)
    5263        if not c_res:
    53             logger.info('"%s","%s course not found in courses catalog"' % (student.id,co.CosCode))
     64            logger.info('%s, course %s not found in courses_catalog' % (student.id,co.CosCode))
    5465            continue
    5566        course_cat_entry = c_res[0]
     
    6071                score = int(co.Score)
    6172            except:
    62                 logger.info('"%s"," course %s invalid score %s"' % (student.id,
     73                logger.info('%s, course %s has invalid score %s' % (student.id,
    6374                                                                    co.CosCode,
    6475                                                                    co.Score))
    6576                continue
    66             if int(c_res[0].passmark) <= score: 
     77            if int(c_res[0].passmark) <= score:
    6778                continue
    6879            carry_over = True
     
    96107            course_result.getContent().edit(mapping=d)
    97108session.set('in_progress','finished')
    98 return
    99 return response.redirect("%s" % level.absolute_url())
     109logger.info('%s updated course list' % member)
     110
     111args = {}
     112psm = "Course list updated!"
     113args['portal_status_message'] = psm
     114url = context.absolute_url() + '/' + action_after_validate + '?' + urlencode(args)
     115return REQUEST.RESPONSE.redirect(url)
  • WAeUP_SRP/branches/uli/skins/waeup_student/register_courses.py

    r1513 r1593  
    1 ## Script (Python) "getStudyCourseInfo"
     1## Script (Python) "register_courses"
    22##bind container=container
    33##bind context=context
     
    55##bind script=script
    66##bind subpath=traverse_subpath
    7 ##parameters=student=None
     7##parameters=REQUEST=None, student=None, action_after_reject=None, action_after_validate=None
    88##title=
    99##
     
    1212close the Students StudyLevel
    1313"""
     14from Products.CMFCore.WorkflowCore import WorkflowException
    1415try:
    1516    from Products.zdb import set_trace
     
    1819        pass
    1920
     21from urllib import urlencode       
     22
    2023request = context.REQUEST
    2124mtool = context.portal_membership
     
    2326member_id = str(member)
    2427import logging
    25 logger = logging.getLogger('Student.register_courses')
     28logger = logging.getLogger('Skins.register_courses')
    2629
    2730wftool = context.portal_workflow
    28 wftool.doActionFor(context,'close')
    2931students_folder = context.portal_url.getPortalObject().campus.students
    30 student = getattr(students_folder,context.getStudentId())
    31 wftool.doActionFor(student,'register_courses')
    32 logger.info('"%s","courses registered"' % student.getId())
    33 return request.RESPONSE.redirect("%s" % context.absolute_url())
     32student_id = context.getStudentId()
     33student = getattr(students_folder,student_id)
     34try:
     35    wftool.doActionFor(context,'close')
     36except WorkflowException,E:
     37    logger.info('%s WorkflowException %s for %s' % (member_id,E,student_id))
     38    return request.RESPONSE.redirect("%s" % context.absolute_url())
     39try:
     40    wftool.doActionFor(student,'register_courses')
     41except WorkflowException,E:
     42    logger.info('%s WorkflowException %s for %s' % (member_id,E,student_id))
     43    return request.RESPONSE.redirect("%s" % context.absolute_url())
     44logger.info('%s registered course list of %s' % (member_id,student_id))
     45
     46args = {}
     47psm = "You successfully submitted your course list!"
     48args['portal_status_message'] = psm
     49url = context.absolute_url() + '/' + action_after_validate + '?' + urlencode(args)
     50return REQUEST.RESPONSE.redirect(url)
  • WAeUP_SRP/branches/uli/skins/waeup_student/reject_courses.py

    r1515 r1593  
    1 ## Script (Python) "getStudyCourseInfo"
     1## Script (Python) "reject_courses"
    22##bind container=container
    33##bind context=context
     
    55##bind script=script
    66##bind subpath=traverse_subpath
    7 ##parameters=student=None
     7##parameters=REQUEST=None, student=None, action_after_reject=None, action_after_validate=None
    88##title=
    99##
     
    1212close the Students StudyLevel
    1313"""
     14from Products.CMFCore.WorkflowCore import WorkflowException
    1415try:
    1516    from Products.zdb import set_trace
     
    1718    def set_trace():
    1819        pass
    19 
     20from urllib import urlencode
    2021request = context.REQUEST
    2122mtool = context.portal_membership
     
    2324member_id = str(member)
    2425import logging
    25 logger = logging.getLogger('Student.reject_courses')
     26logger = logging.getLogger('Skins.reject_courses')
    2627
    2728wftool = context.portal_workflow
     
    2930wftool.doActionFor(context,'close_for_edit')
    3031students_folder = context.portal_url.getPortalObject().campus.students
    31 student = getattr(students_folder,context.getStudentId())
    32 wftool.doActionFor(student,'reject_courses')
    33 logger.info('"%s","rejects course list for","%s"' % (member,student.getId()))
    34 return request.RESPONSE.redirect("%s" % context.absolute_url())
     32student_id = context.getStudentId()
     33student = getattr(students_folder,student_id)
     34try:
     35    wftool.doActionFor(student,'reject_courses')
     36except WorkflowException,E:
     37    logger.info('%s WorkflowException %s for %s' % (member_id,E,student_id))
     38    return request.RESPONSE.redirect("%s" % context.absolute_url())
     39logger.info('%s rejected course list of %s' % (member_id,student_id))
     40
     41args = {}
     42
     43psm = "Student's course list has been rejected! Please fill and submit the form below!"
     44subject = "Course list rejected"
     45args['subject'] = subject
     46args['continue'] = action_after_validate
     47args['portal_status_message'] = psm
     48url = context.absolute_url() + '/' + action_after_reject + '?' + urlencode(args)
     49return REQUEST.RESPONSE.redirect(url)
  • WAeUP_SRP/branches/uli/skins/waeup_student/request_transfer.py

    r1378 r1593  
    1414import logging
    1515from urllib import urlencode
    16 logger = logging.getLogger('Student.Transfer.Request')
     16logger = logging.getLogger('Skins_request_transfer')
    1717import DateTime
    1818lt = context.portal_layouts
     
    2828requested_id = context.getStudentId()
    2929if requested_id and not context.isStaff() and member_id != requested_id:
    30     logger.info('"%s", "accessed application object of", "%s"' % (member_id,requested_id))
     30    logger.info('%s tried to access object of %s' % (member_id,requested_id))
    3131    student_id = requested_id
     32    return None
    3233elif context.isStaff():
    3334    student_id = requested_id
     
    5051
    5152if paid:
    52     logger.info('"%s", "opened (paid) request transfer form of", "%s"' % (member_id,student_id))
     53    logger.info('%s opened (paid) request transfer form of %s' % (member_id,student_id))
    5354    return context.request_transfer_form(rendered = None,
    5455                                 psm = None,
     
    9192    payments = getattr(student,'payments')
    9293#from Products.zdb import set_trace; set_trace()
     94
     95logger.info('%s paid transfer form for %s' % (member_id,student_id))
    9396info = {}
    9497order_id = ds.get('pin_n')
  • WAeUP_SRP/branches/uli/skins/waeup_student/search_students.py

    r1500 r1593  
    1313"""
    1414import logging
    15 logger = logging.getLogger('Search.Timer')
     15logger = logging.getLogger('Skins.search_students')
    1616from DateTime import DateTime
    1717#
     
    6161user_info['faculties'] = []
    6262co_view = False
     63ca_view = False
    6364faculties =  fget('faculties')
    6465departments = fget('departments')
    65 dep_str = fac_str = ''
     66certificate_level = fget('certificate_level')
     67dep_str = fac_str = certificate_level_str = ''
    6668if "ClearanceOfficers" in member.getGroups():
    6769    state = "clearance_requested"
     
    8082                 In('localUsersWithRoles', ("user:%s" % member,))
    8183        res = evalAdvancedQuery(query)
     84        logger.info('ClearanceOfficer %s initiated student_search' % member)
    8285        faculties = []
    8386        if res:
     
    9396        user_info['departments'] = departments
    9497        dep_str = " ".join(departments)
     98elif "CourseAdvisers" in member.getGroups():
     99    state = "courses_registered"
     100    only_review = False
     101    ca_view = True
     102    if certificate_level:
     103        #from Products.zdb import set_trace;set_trace()
     104        certificate_level_str = certificate_level
     105        certificate_level = certificate_level.split()
     106    else:
     107        query = In('portal_type',('StudyLevel',)) &\
     108                 In('localUsersWithRoles', ("user:%s" % member,))
     109        res = evalAdvancedQuery(query)
     110        logger.info('CourseAdviser %s initiated student_search' % member)
     111        certificate_level = []
     112        if res:
     113            certificate_level = ['/'.join(f.getPath().split('/')[-2:]) for f in res]
     114        user_info['certificate_level'] = certificate_level
     115        certificate_level_str = " ".join(certificate_level)
    95116default = {'search_mode': 'student_id',
    96117        'review_state': state,
     
    106127                      faculties = fac_str,
    107128                      departments = dep_str,
     129                      certificate_level = certificate_level_str,
    108130                      commit = False,
    109131                      )
     
    148170        students_folder = context.portal_url.getPortalObject().campus.students
    149171        if hasattr(students_folder,term.strip()):
     172            logger.info('%s searches for student with id %s' % (member,term))
    150173            request.RESPONSE.redirect("%s/%s" % (students_folder.absolute_url(),term))
    151174        return context.search_students_form(rendered = rend,
     
    156179    elif what == "department":
    157180        res = context.students_catalog(department=term.strip())
     181        logger.info('%s searches for student in department %s' % (member,term))
    158182        search_set = [r.id for r in res]
    159183    elif what == "matric_no":
    160184        res = context.students_catalog(matric_no=term.strip())
     185        logger.info('%s searches for student with matric_no %s' % (member,term))
    161186        search_set = [r.id for r in res]
    162187    elif what == "jamb_reg_no":
     
    164189        st_u = "%s" % term.strip().upper()
    165190        res = aq_students(In('jamb_reg_no',(st_l,st_u)))
     191        logger.info('%s searches for student with jamb_reg_no %s' % (member,term))
    166192        search_set = [r.id for r in res]
    167193    elif what == "name":
    168194        pt = ('StudentPersonal')
    169195        query = In('portal_type',pt) & Eq('SearchableText',"%s*" % term.strip())
     196        logger.info('%s searches for student with name %s' % (member,term))
    170197        res = evalAdvancedQuery(query)
    171198        if res:
     
    181208    query = Eq('review_state',state)
    182209    review_res = evalAdvancedQuery(query)
     210
     211    logger.info('%s searches for students in review_state %s' % (member,state))
     212
    183213    if with_timer:
    184214        end = DateTime().timeTime()
     
    196226        logger.info('"%s","searchtime","%6.2f"' % (member,end-start))
    197227    start = DateTime().timeTime()
     228    search_set = [r.id for r in res]
     229    if with_timer:
     230        end = DateTime().timeTime()
     231        logger.info('"%s","searchtime","%6.2f"' % (member,end-start))
     232elif ca_view:
     233    only_review = False
     234    with_review = True
     235    if with_timer:
     236        start = DateTime().timeTime()
     237        logger.info('"%s","start 200"' % member)
     238    courses = [cl.split('/')[0] for cl in certificate_level]
     239    levels = [cl.split('/')[1] for cl in certificate_level]
     240    query = In('course',courses) & In('level',levels)
     241    res = aq_students(query)
     242    if with_timer:
     243        end = DateTime().timeTime()
     244        logger.info('"%s","searchtime","%6.2f"' % (member,end-start))
     245        start = DateTime().timeTime()
    198246    search_set = [r.id for r in res]
    199247    if with_timer:
     
    250298                             allowed = allowed,
    251299                             co_view = co_view,
     300                             ca_view = ca_view
    252301                             )
    253302return context.search_students_form(rendered = rend,
  • WAeUP_SRP/branches/uli/skins/waeup_student/search_students_form.pt

    r1570 r1593  
    11<metal:body use-macro="here/main_template/macros/master">
    2     <metal:block fill-slot="header"
    3                  tal:define="creation creation|nothing;
    4                  edition edition|nothing;
    5                  metadata metadata|nothing"
    6                  >
    7     </metal:block>
    8    
    92    <metal:main fill-slot="main"
    103            tal:define="rendered options/rendered;
     
    125            students options/students;
    136            info options/info|nothing;
    14             is_so context/isSectionOfficer;           
     7            is_so context/isSectionOfficer;
    158            allowed options/allowed|nothing"
    169            >
     
    3023      &nbsp;&nbsp;&nbsp;&nbsp;</nobr>
    3124      <span tal:condition="is_so">
    32       <nobr><a href="view_logs">View Log Files</a>
    33       &nbsp;&nbsp;&nbsp;&nbsp;</nobr>
    34 
     25         <nobr><a href="view_logs">View Log Files</a>
     26         &nbsp;&nbsp;&nbsp;&nbsp;</nobr>
    3527         <nobr><a href="add_student">Add Student Record</a>       
    3628         &nbsp;&nbsp;&nbsp;&nbsp;</nobr>
     
    9789                         onclick="javascript:window.open('','edit','width=600, height=700, directories=no, toolbar=no, location=no, menubar=no, scrollbars=yes, status=no, resizable=no, dependent=no')"
    9890                         >[view and change state]</a></td>
    99                     <td tal:condition="options/co_view|nothing"><span tal:replace="student/review_state|nothing" /></td>   
     91                    <td tal:condition="options/ca_view|nothing">
     92                      <a href="id"
     93                         tal:attributes="href string:${context/portal_url}/campus/students/${student/id}/study_course/study_course/${student/level}/external_study_level_view"
     94                         target="edit"
     95                         onclick="javascript:window.open('','edit','width=600, height=700, directories=no, toolbar=no, location=no, menubar=no, scrollbars=yes, status=no, resizable=no, dependent=no')"
     96                         >[view and validate course list]</a></td>
    10097                  </tr>
    10198                </span>
  • WAeUP_SRP/branches/uli/skins/waeup_student/set_access_data.py

    r1267 r1593  
    88current = DateTime.DateTime()
    99pr = context.portal_registration
    10 logger = logging.getLogger('Student.SetAccessData')
     10logger = logging.getLogger('Skins.set_access_data')
    1111validate = REQUEST.has_key("cpsdocument_edit_button")
    1212
    1313if matric_no is None:
    14     logger.info('"No matric_no in request"')
     14    logger.info('No matric_no in request')
    1515    return REQUEST.RESPONSE.redirect("%s" % context.portal_url())
    1616lt = context.portal_layouts
     
    2121    sid = st_res[0].id
    2222else:
    23     logger.info('"%s","Studentobject does not exist"' % matric_no)
     23    logger.info('Student object with matric_no does not exist' % matric_no)
    2424res,psm,ds = lt.renderLayout(layout_id= 'student_session_results_search',
    2525                      schema_id= 'student_returning',
     
    5353        #psm = "You are already registered please log in with your UserId %s" % sid
    5454        psm = ""
    55         logger.info('"%s","repeatedly tried to set password"' % sid)
     55        logger.info('%s repeatedly tried to set password' % sid)
    5656    except:
    5757        psm = "The system encountered an error. Please try again."
    58         logger.info('"%s","set_access error","%s"' % (sid,password))
     58        logger.info('%s, makeStudentMember error, password = %s' % (sid,password))
    5959if psm != '':
    6060    return context.set_access_data_form(rendered = res,
  • WAeUP_SRP/branches/uli/skins/waeup_student/start_clearance.py

    r1364 r1593  
    88pr = context.portal_registration
    99import logging
    10 logger = logging.getLogger('Student.Clearance.Start')
     10logger = logging.getLogger('Skins.start_clearance')
    1111
    1212#type_name = 'Student'
     
    2323if info is None:
    2424    member_id = str(context.portal_membership.getAuthenticatedMember())
    25     logger.info('"%s","tried to start clearance for", "%s"' % (member_id,request.get('PATH_INFO').split('/')[-2]))
     25    logger.info('%s tried to start clearance for %s' % (member_id,request.get('PATH_INFO').split('/')[-2]))
    2626    return redirect("%s/srp_invalid_access" % context.portal_url())
    2727app_doc = info['app_doc']
     
    5555    psm = "You have already entered a clearance pin!"
    5656    error = True
    57     logger.info('"%s", "tried to start clearance though already started"' % (info['id']))
     57    logger.info('%s tried to start clearance though already started' % (info['id']))
    5858elif psm == 'invalid':
    5959    psm = "Please correct your input!"
    6060    error = True
    61     logger.info('"%s","entered wrong clearance pin"' % (info['id']))
     61    logger.info('%s entered wrong clearance pin' % (info['id']))
    6262elif app_doc.passport is None:
    6363    #psm = "You must upload your passport picture before you can start the registration process!"
    6464    #error = True
    65     logger.info('"%s", "started clearance without passport picture"' % (info['id']))
     65    logger.info('%s started clearance without passport picture' % (info['id']))
    6666if error:
    6767    return context.clearance_pin_form(rendered = res,
     
    7474session.set("clicked","clicked")
    7575pin = str(ds.get('clr_ac_pin'))
    76 logger.info('"%s", "started clearance with pin", "%s"' % (info['id'],pin))
     76logger.info('%s started clearance with pin %s' % (info['id'],pin))
    7777wf.doActionFor(info['student'],'enter_clearance_pin')
    7878wf.doActionFor(info['clear'],'open')
     
    8989
    9090if info['penalty']:
    91     logger.info('"%s","started late clearance"' % (info['id']))
     91    logger.info('%s started late clearance' % (info['id']))
    9292
    9393return redirect("%s/clearance_edit_form" % info['clear'].absolute_url())
  • WAeUP_SRP/branches/uli/skins/waeup_student/statistics_ret_view.pt

    r1532 r1593  
    2424      <h3>Returning Student Statistics</h3>
    2525      <br />     
     26      <span tal:content="python:departments[0]['total_ret']" />
     27      returning student records have been imported.
     28      <span tal:content="python:departments[0]['total_li']" /> returning students
     29      have logged in.
     30      <br /><br />
    2631      <span tal:condition="not:isAnon">
    2732        <table>
    2833          <tr class="odd ajaxtd">
    2934            <th >Faculty</th>
    30             <th align="right">Returning</th>
     35            <th align="right">RET</th>
     36            <th align="right">SFP</th>
    3137          </tr>
    3238          <tr tal:define="d python:departments[0]"
     
    3440              <td width="80px">All Faculties</td>
    3541              <td width="80px" align="right">
    36                 <span tal:content="d/sum" /> of <span tal:content="d/total" />
     42                <span tal:content="d/ret" />
     43              </td>   
     44              <td width="80px" align="right">
     45                <span tal:content="d/sfp" />
    3746              </td>             
    3847          </tr>
     
    4150              <td width="80px"> <span tal:content="d/id" /> </td>
    4251              <td width="80px" align="right">
    43                 <span tal:content="d/returned " />
    44               </td>             
     52                <span tal:content="d/ret" />
     53              </td>       
     54              <td width="80px" align="right">
     55                <span tal:content="d/sfp" />
     56              </td>                             
    4557          </tr>
    4658        </table>
    4759        <br />
     60        <table>
     61        <tr><td>RET:</td> <td>Returning students who have logged in</td></tr>
     62        <tr><td>SFP:</td> <td>Returning students who already paid their school fee</td></tr>
     63        </table>       
    4864      </span>
    4965      </span>
  • WAeUP_SRP/branches/uli/skins/waeup_student/students_index.py

    r1239 r1593  
    2323students_url = "%s/campus/students" % (context.portal_url())
    2424
    25 if "ClearanceOfficers" in member.getGroups():
    26     return redirect("%s/search_students" % context.portal_url())
     25if "ClearanceOfficers" in member.getGroups() or\
     26   "CourseAdvisers" in member.getGroups():
     27    return redirect("%s/campus/students/search_students" % context.portal_url())
    2728if context.isSectionOfficer():
    28     return redirect("%s/search_students" % context.portal_url())
     29    return redirect("%s/campus/students/search_students" % context.portal_url())
    2930if context.isStudent():
    3031    id = str(member)
  • WAeUP_SRP/branches/uli/skins/waeup_student/study_level_view.pt

    r1519 r1593  
    66                 global is_ca info/is_ca;
    77                 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">
     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">
    1212      <a href=""
    1313         tal:attributes="href string:${here/academicsParent}">
     
    6363        <h4>Session Courses</h4>
    6464        <br />
    65         <table class="contentListing" width="100%" summary="content layout" id="folder_content">     
     65      <div class="" tal:condition="not: info/normal">
     66        Your faculty has not yet provided the list of courses for your certificate. Please contact your faculty!
     67      </div>
     68        <table class="contentListing" width="100%" id="folder_content"
     69               tal:condition="info/normal">     
    6670          <tr tal:repeat="row info/normal"
    6771              tal:attributes="class python:test(repeat['row'].even(), 'even ajaxtd', 'odd ajaxtd')">
     
    97101            <td align="left" valign="top" rowspan="3"></td>
    98102            <td align="left" valign="top">
    99                 <input type="submit" name="course_result_delete:method" value="Delete selected"
     103                <input type="submit" name="delete_course_result:method" value="Delete selected"
    100104                       class="destructive" i18n:attributes="value"
    101105                       tal:attributes="onclick python:'return window.confirm(\'%s\')' %
     
    106110                       />
    107111                <br /><br />
    108                 <input type="submit" name="register_courses:method"
     112                <input tal:condition="info/normal"
     113                       type="submit" name="register_courses:method"
    109114                       class="context" value="Submit" />
    110115            </td>
     
    122127                       % (cpsmcat('button_select_all'), cpsmcat('button_deselect_all'))"
    123128                       />
    124                 <input type="submit" name="course_result_delete:method" value="Delete selected"
     129                <input type="submit" name="delete_course_result:method" value="Delete selected"
    125130                       class="destructive" i18n:attributes="value"
    126131                       tal:attributes="onclick python:'return window.confirm(\'%s\')' %
    127                        ('really delete checked courses', )"
     132                       ('Do you really want to delete the courses selected?', )"
    128133                       />
    129134                <input
     
    154159                       />
    155160                <input tal:condition="python: review_state == 'school_fee_paid'"
    156                        type="submit" name="course_result_delete:method" value="Delete selected"
     161                       type="submit" name="delete_course_result:method" value="Delete selected"
    157162                       class="destructive" i18n:attributes="value"
    158163                       tal:attributes="onclick python:'return window.confirm(\'%s\')' %
     
    169174                <input tal:condition="python: review_state in ('courses_registered', 'courses_validated',)" type="submit" name="reject_courses:method"
    170175                       class="context" value="Reject" />
     176                       
     177                <input type="hidden" name="action_after_validate" type="text" id="action_after_validate"
     178                       tal:attributes="value string:/study_level_view"/>                         
     179                <input type="hidden" name="action_after_reject" type="text" id="action_after_reject"
     180                       tal:attributes="value string:/contact_student_form"/>   
     181                                             
    171182
    172183            </td>
     
    183194            <td><input type="text" name="course_id"
    184195                       tal:attributes="value request/course_id|nothing"/></td>
    185             <td tal:condition="request/error|nothing"
    186                 tal:content="request/error" />
    187196            <td colspan="2">
    188197              <input type="submit" name="add"
    189198                     class="context" value="Add Course"
    190199                     />
     200              <input type="hidden" name="action_after_validate" type="text" id="action_after_validate"
     201                       tal:attributes="value string:/study_level_view"/>                       
    191202            </td>               
    192203        </table>
  • WAeUP_SRP/branches/uli/skins/waeup_student/validate_courses.py

    r1513 r1593  
    1 ## Script (Python) "getStudyCourseInfo"
     1## Script (Python) "validate_courses"
    22##bind container=container
    33##bind context=context
     
    55##bind script=script
    66##bind subpath=traverse_subpath
    7 ##parameters=student=None
     7##parameters=student=None, action_after_reject=None, action_after_validate=None
    88##title=
    99##
     
    1212close the Students StudyLevel
    1313"""
     14from Products.CMFCore.WorkflowCore import WorkflowException
    1415try:
    1516    from Products.zdb import set_trace
     
    2324member_id = str(member)
    2425import logging
    25 logger = logging.getLogger('Student.validate_courses')
     26logger = logging.getLogger('Skins.validate_courses')
    2627
    2728wftool = context.portal_workflow
    2829students_folder = context.portal_url.getPortalObject().campus.students
    29 student = getattr(students_folder,context.getStudentId())
    30 wftool.doActionFor(student,'validate_courses')
    31 logger.info('"%s","validated courses for","%s"' % (member,student.getId()))
    32 return request.RESPONSE.redirect("%s" % context.absolute_url())
     30student_id = context.getStudentId()
     31student = getattr(students_folder,student_id)
     32try:
     33    wftool.doActionFor(student,'validate_courses')
     34except WorkflowException,E:
     35    logger.info('%s WorkflowException %s for %s' % (member_id,E,student_id))
     36    return request.RESPONSE.redirect("%s" % context.absolute_url())
     37logger.info('%s validated course list of %s' % (member_id,student_id))
     38
     39psm = 'portal_status_message=Course list validated!'
     40url = context.absolute_url() + '/' + action_after_validate +  '?' + psm
     41return request.RESPONSE.redirect(url)
Note: See TracChangeset for help on using the changeset viewer.