Changeset 2069 for WAeUP_SRP/trunk


Ignore:
Timestamp:
27 Jul 2007, 16:04:30 (17 years ago)
Author:
joachim
Message:

add end_level,lga,perm_address fix for #316

Location:
WAeUP_SRP/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/trunk/WAeUPTables.py

    r2039 r2069  
    8989        raise NotImplemented
    9090
    91     def modifyRecord(self, **data):
     91    def modifyRecord(self, record=None, **data):
    9292        #records = self.searchResults(uid=uid)
    9393        uid = data[self.key]
    94         records = self.searchResults({"%s" % self.key : uid})
    95         if len(records) > 1:
    96             # Can not happen, but anyway...
    97             raise ValueError("More than one record with uid %s" % uid)
    98         if len(records) == 0:
    99             raise KeyError("No record for uid %s" % uid)
    100         record = records[0]
     94        if record is None:
     95            records = self.searchResults({"%s" % self.key : uid})
     96            if len(records) > 1:
     97                # Can not happen, but anyway...
     98                raise ValueError("More than one record with uid %s" % uid)
     99            if len(records) == 0:
     100                raise KeyError("No record for uid %s" % uid)
     101            record = records[0]
    101102        record_data = {}
    102103        for field in self.schema() + self.indexes():
     
    237238    affected_types = {   ###(
    238239                      'StudentApplication':
    239                           {'id': 'application',
    240                            'fields':
    241                              ('jamb_reg_no',
    242                               'entry_mode',
    243                               #'entry_level',
    244                               'entry_session',
    245                               )
    246                               },
     240                      {'id': 'application',
     241                       'fields':
     242                       ('jamb_reg_no',
     243                        'entry_mode',
     244                        #'entry_level',
     245                        'entry_session',
     246                       )
     247                      },
    247248                      'StudentClearance':
    248                           {'id': 'clearance',
    249                            'fields':
    250                              ('matric_no',
    251                               )
    252                               },
    253                          'StudentPersonal':
    254                           {'id': 'personal',
    255                            'fields':
    256                              ('name',
    257                               'sex',
    258                               'email',
    259                               'phone',
    260                               )
    261                               },
    262                          'StudentStudyCourse':
    263                           {'id': 'study_course',
    264                            'fields':
    265                              ('course',
    266                               'faculty',
    267                               'department',
    268                               'level',
    269                               'mode',
    270                               'session',
    271                               'verdict',
    272                               )
    273                               },
    274                          }
     249                      {'id': 'clearance',
     250                       'fields':
     251                       ('matric_no',
     252                        'lga',
     253                       )
     254                      },
     255                      'StudentPersonal':
     256                      {'id': 'personal',
     257                       'fields':
     258                       ('name',
     259                        'sex',
     260                        'perm_address',
     261                        'email',
     262                        'phone',
     263                       )
     264                      },
     265                      'StudentStudyCourse':
     266                      {'id': 'study_course',
     267                       'fields':
     268                       ('course', # study_course
     269                        'faculty', # from certificate
     270                        'department', # from certificate
     271                        'end_level', # from certificate
     272                        'level', # current_level
     273                        'mode',  # current_mode
     274                        'session', # current_session
     275                        'verdict', # current_verdict
     276                       )
     277                      },
     278                     }
    275279    ###)
    276280
     
    326330            return None
    327331        return certificate_res[0].getPath().split('/')[-4]
     332
     333    def get_from_doc_end_level(self,doc): ###(
     334        "return the students end_level"
     335        if doc is None:
     336            return None
     337        certificate_res = self.portal_catalog(id = doc.study_course)
     338        if len(certificate_res) != 1:
     339            return None
     340        return getattr(certificate_res[0].getObject().getContent(),'end_level','unknown')
    328341
    329342    def get_from_doc_level(self,doc):
     
    579592            data['id'] = student_id
    580593            data['registered_courses'] = registered_courses
    581             self.modifyRecord(**data)
     594            self.modifyRecord(record = student_rec, **data)
    582595            return
    583596        if pt not in self.affected_types.keys():
     
    653666
    654667    meta_type = 'WAeUP Courses Catalog'
    655     name = "students_catalog"
     668    name = "courses_catalog"
    656669    key = "code"
    657670    def __init__(self):
     
    782795###)
    783796
     797class ResultsCatalog(WAeUPTable): ###(
     798    security = ClassSecurityInfo()
     799
     800    meta_type = 'WAeUP Results Catalog'
     801    name = "course_results"
     802    key = "key"
     803    def __init__(self):
     804        WAeUPTable.__init__(self, 'course_results')
     805
     806    def manage_catalogReindex(self, REQUEST, RESPONSE, URL1): ###(
     807        """ clear the catalog, then re-index everything """
     808
     809        elapse = time.time()
     810        c_elapse = time.clock()
     811
     812        pgthreshold = self._getProgressThreshold()
     813        handler = (pgthreshold > 0) and ZLogHandler(pgthreshold) or None
     814        #self.refreshCatalog(clear=1, pghandler=handler)
     815
     816        elapse = time.time() - elapse
     817        c_elapse = time.clock() - c_elapse
     818
     819        RESPONSE.redirect(
     820            URL1 +
     821            '/manage_catalogAdvanced?manage_tabs_message=' +
     822            urllib.quote('Catalog Updated \n'
     823                         'Total time: %s\n'
     824                         'Total CPU time: %s' % (`elapse`, `c_elapse`)))
     825    ###)
     826
     827
     828InitializeClass(ResultsCatalog)
     829###)
     830
    784831class OnlinePaymentsImport(WAeUPTable): ###(
    785832
     
    791838
    792839
    793 InitializeClass(CoursesCatalog)
     840InitializeClass(OnlinePaymentsImport)
    794841###)
    795842
  • WAeUP_SRP/trunk/profiles/default/students_catalog.xml

    r1749 r2069  
    1515 <index name="name" meta_type="TextIndex">
    1616  <indexed_attr value="name"/>
     17 </index>
     18 <index name="perm_address" meta_type="TextIndex">
     19  <indexed_attr value="perm_address"/>
    1720 </index>
    1821 <index name="jamb_reg_no" meta_type="FieldIndex">
     
    4043  <indexed_attr value="level"/>
    4144 </index>
     45 <index name="end_level" meta_type="FieldIndex">
     46  <indexed_attr value="end_level"/>
     47 </index>
     48 <index name="lga" meta_type="FieldIndex">
     49  <indexed_attr value="lga"/>
     50 </index>
    4251 <index name="mode" meta_type="FieldIndex">
    4352  <indexed_attr value="mode"/>
     
    6271 <column value="course"/>
    6372 <column value="registered_courses"/>
     73 <column value="lga"/>
     74 <column value="perm_address"/>
    6475 <column value="email"/>
    6576 <column value="phone"/>
    6677 <column value="level"/>
     78 <column value="end_level"/>
    6779 <column value="mode"/>
    6880 <column value="verdict"/>
Note: See TracChangeset for help on using the changeset viewer.