Changeset 1707


Ignore:
Timestamp:
25 Apr 2007, 11:58:39 (18 years ago)
Author:
joachim
Message:

new import function for createStudents,
catalog fields added

Location:
WAeUP_SRP/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/trunk/Students.py

    r1700 r1707  
    428428            app = student.application
    429429            app_doc = app.getContent()
    430             picture ="%s/import/pictures/%s.jpg" % (i_home,jamb_reg_no)
    431430            #import pdb;pdb.set_trace()
     431            picture ="%s/import/pictures/%s.jpg" % (i_home,picture_id)
    432432            if os.path.exists(picture):
    433433                file = open(picture)
     
    538538    ###)
    539539
    540     security.declareProtected(ModifyPortalContent,"createNewStudents")###(
    541     def createParttimeStudents(self):
    542         """load Parttime Studentdata from CSV values"""
     540    security.declareProtected(ModifyPortalContent,"createStudents")###(
     541    def createStudents(self):
     542        """load Studentdata from CSV values"""
    543543        import transaction
    544544        import random
     
    546546        wftool = self.portal_workflow
    547547        students_folder = self.portal_catalog({'meta_type': 'StudentsFolder'})[-1].getObject()
    548         csv_d = {'jamb_reg_no': "Reg_No",
    549                  'jamb_firstname': "Firstname",
    550                  'jamb_middlename': "Middlename",
    551                  'jamb_lastname': "Lastname",
    552                  'jamb_sex': "Sex",
    553                  'entry_mode': 'Entry_mode',
    554                  'jamb_age': "Age",
    555                  'jamb_state': "State",
    556 ##                 'jamb_first_cos': "AdminCourse",
    557                  'faculty': "AdminFaculty",
    558                  'course_code': "AdmitCoscode",
    559                  'stud_status':"AdmitStatus",
    560                  'department': "AdmitDept",
    561                  'jamb_lga': "LGA",
     548        csv_d = {'jamb_reg_no': "reg_no",
     549                 'entry_mode': 'entry_mode',
     550                 'jamb_firstname': "firstname",
     551                 'jamb_middlename': "middlename",
     552                 'jamb_lastname': "lastname",
     553                 'jamb_sex': "sex",
     554                 'jamb_state': "state",
     555                 'birthday': "date_of_birth",
    562556                 'app_email': "email",
    563                  'app_mobile': "PhoneNumbers",
     557                 'study_course': "study_course",
     558                 'perm_address': "address",
    564559                 }
    565560        csv_fields = [f[1] for f in csv_d.items()]
     
    576571        logger = logging.getLogger('Students.StudentsFolder.createNewStudents')
    577572        logger.info('Start loading from %s.csv' % name)
    578         l = self.portal_catalog({'meta_type': "Certificate"})
    579573        certs = {}
    580         cert_docs = {}
    581         for f in l:
    582             certs[f.getId] = f.getObject().getContent()
    583574        try:
    584             result = csv.DictReader(open("%s/import/%s.csv" % (i_home,name),"rb"))
     575            results = csv.DictReader(open("%s/import/%s.csv" % (i_home,name),"rb"))
    585576        except:
    586577            logger.error('Error reading %s.csv' % name)
    587578            return
    588         for jamb in result:
    589             jamb['Error'] = "Processing "
    590             logger.info(format % jamb)
    591             jamb_reg_no = jamb.get(csv_d['jamb_reg_no'])
    592             res = self.portal_catalog({'portal_type': "StudentApplication",
    593                                      'SearchableText': jamb_reg_no })
     579        for result in results:
     580            #result['Error'] = "Processing "
     581            #logger.info(format % result)
     582            jamb_reg_no = result.get(csv_d['jamb_reg_no'])
     583            res = self.students_catalog(jamb_reg_no = jamb_reg_no)
    594584            if res:
    595585                em = 'Student with RegNo %s already exists\n' % jamb_reg_no
    596586                logger.info(em)
    597                 jamb['Error'] = "Student exists"
    598                 no_import.append(format % jamb)
    599                 continue
    600             cert_id = makeCertificateCode(jamb.get(csv_d['course_code']))
     587                result['Error'] = "Student exists"
     588                no_import.append(format % result)
     589                continue
     590            cert_id = makeCertificateCode(result.get(csv_d['study_course']))
    601591            if cert_id not in certs.keys():
    602                 em = 'No Certificate with ID %s \n' % cert_id
    603                 logger.info(em)
    604                 jamb['Error'] = "No Certificate %s" % cert_id
    605                 no_import.append( format % jamb)
    606                 continue
    607             res = self.portal_pumeresults(jamb_reg_no = jamb_reg_no)
    608             if len(res) == 1:
    609                 self.portal_pumeresults.modifyRecord(jamb_reg_no = jamb_reg_no,
    610                                                      status = jamb.get(csv_d['stud_status']),
    611                                                      )
    612             jamb_reg_no =jamb.get(csv_d['jamb_reg_no'])
     592                res = self.portal_catalog(meta_type = "Certificate",id = cert_id)
     593                if not res:
     594                    em = 'No Certificate with ID %s \n' % cert_id
     595                    logger.info(em)
     596                    result['Error'] = "No Certificate %s" % cert_id
     597                    no_import.append( format % result)
     598                    continue
     599                cert = res[0]
     600                cert_path = cert.getPath().split('/')
     601                certificate = certs[cert_id] = {'faculty': cert_path[-4],
     602                                     'department': cert_path[-3]}
    613603            cert_doc = certs[cert_id]
    614604            catalog_entry = {}
    615605            catalog_entry['jamb_reg_no'] = jamb_reg_no
    616             jamb_name = jamb.get(csv_d['jamb_lastname'])
    617             jamb_name.replace('>','')
    618             jamb_name.replace('<','')
    619             names = jamb_name.split()
    620             letter = names[-1][0].upper()
    621             sid = self.generateStudentId(letter)
    622             not_created = True
    623             while not_created:
    624                 try:
    625                     students_folder.invokeFactory('Student', sid)
    626                     not_created = False
    627                 except BadRequest:
    628                     sid = self.generateStudentId(letter)
     606            firstname = result.get(csv_d['jamb_firstname'])
     607            middlename = result.get(csv_d['jamb_middlename'])
     608            lastname = result.get(csv_d['jamb_lastname'])
     609            sid = self.generateStudentId('x')
     610            students_folder.invokeFactory('Student', sid)
    629611            catalog_entry['id'] = sid
    630612            tr_count += 1
     
    632614            student = getattr(self,sid)
    633615            student.manage_setLocalRoles(sid, ['Owner',])
    634             student.invokeFactory('StudentPume','pume')
    635             dp = {'Title': 'Pume Data'}
    636616            student.invokeFactory('StudentApplication','application')
    637617            da = {'Title': 'Application Data'}
    638             da["jamb_lastname"] = jamb_name
     618            da["jamb_firstname"] = firstname
     619            da["jamb_middlename"] = middlename
     620            da["jamb_lastname"] = lastname
     621            catalog_entry['entry_session'] = da["entry_session"] = self.getSessionId()[-2:]
     622            catalog_entry['entry_level'] = da["entry_level"] = 'NA'
     623            catalog_entry['sex'] = sex = result.get(csv_d['jamb_sex']).startswith('F')
    639624            da_fields = ('jamb_reg_no',
    640625                         'jamb_sex',
    641                          #'jamb_state',
    642                          'jamb_score',
    643 ##                         'jamb_first_cos',
    644                          'jamb_sex',
    645626                         'jamb_state',
    646                          'jamb_lga',
     627                         'entry_mode',
    647628                         'app_email',
    648                          'app_mobile',
    649629                         )
    650630            for f in da_fields:
    651                 da[f] = jamb.get(csv_d[f])
    652             catalog_entry['email'] = jamb.get(csv_d['app_email'])
     631                da[f] = result.get(csv_d[f])
     632            catalog_entry['email'] = da['app_email']
     633            catalog_entry['entry_mode'] = da['entry_mode']
    653634            app = student.application
    654635            app_doc = app.getContent()
     636            app.getContent().edit(mapping=da)
    655637            picture ="%s/import/pictures/%s.jpg" % (i_home,jamb_reg_no)
    656             #import pdb;pdb.set_trace()
    657             if os.path.exists(picture):
    658                 file = open(picture)
    659                 if False:
    660                     img = PIL.Image.open(file)
    661                     img.thumbnail((150,200),
    662                                   resample=PIL.Image.ANTIALIAS)
    663                     # We now need a buffer to write to. It can't be the same
    664                     # as the inbuffer as the PNG writer will write over itself.
    665                     outfile = StringIO()
    666                     img.save(outfile, format=img.format)
    667                 else:
    668                     outfile = file.read()
     638            app.manage_setLocalRoles(sid, ['Owner',])
     639            picture_id = da['jamb_reg_no'].replace('/','_')
     640            file = None
     641            for ext in ('jpg','JPG'):
     642                picture ="%s/import/pictures/%s.%s" % (i_home,picture_id,ext)
     643                if os.path.exists(picture):
     644                    file = open(picture)
     645                    break
     646            if file is not None:
     647                outfile = file.read()
    669648                app_doc.manage_addFile('passport',
    670649                                       file=outfile,
    671650                                       title="%s.jpg" % jamb_reg_no)
    672             app.getContent().edit(mapping=da)
    673             app.manage_setLocalRoles(sid, ['Owner',])
    674651            #wftool.doActionFor(app,'close')
    675             dp_fields = (
    676                          #'pume_eng_score',
    677                          #'pume_gen_score',
    678                          'pume_tot_score',
    679                          )
    680             dp['pume_tot_score'] = jamb.get(csv_d['pume_tot_score']) or "No Option Shaded"
    681             pume = student.pume
    682             pume.getContent().edit(mapping=dp)
    683             #wftool.doActionFor(pume,'close')
    684             pume.manage_setLocalRoles(sid, ['Owner',])
    685             #student.getContent().createSubObjects()
    686652            dp = {}
    687             if len(names) == 3:
    688                 dp['firstname'] = names[0].capitalize()
    689                 dp['middlename'] = names[1].capitalize()
    690                 dp['lastname'] = names[2].capitalize()
    691             elif len(names) == 2:
    692                 dp['firstname'] = names[0].capitalize()
    693                 dp['middlename'] = ''
    694                 dp['lastname'] = names[1].capitalize()
    695             else:
    696                 dp['firstname'] = ''
    697                 dp['middlename'] = ''
    698                 dp['lastname'] = jamb_name
    699             dp['sex'] = jamb.get(csv_d['jamb_sex']) == 'F'
    700             catalog_entry['sex'] = dp['sex']
     653            dp['firstname'] = firstname
     654            dp['middlename'] = middlename
     655            dp['lastname'] = lastname
     656            dp['email'] = da['app_email']
     657            dp['sex'] = sex
    701658            catalog_entry['name'] = "%(firstname)s %(middlename)s %(lastname)s" % dp
    702659            student.invokeFactory('StudentPersonal','personal')
     
    705662            per_doc.edit(mapping = dp)
    706663            per.manage_setLocalRoles(sid, ['Owner',])
    707             if jamb.get(csv_d['stud_status']) == "Admitted":
    708                 wftool.doActionFor(student,'pume_pass')
    709                 wftool.doActionFor(student,'admit')
    710             else:
    711                 wftool.doActionFor(student,'pume_fail')
    712                 wftool.doActionFor(student,'reject_admission')
    713                 continue
     664            wftool.doActionFor(student,'pume_pass')
     665            wftool.doActionFor(student,'admit')
    714666            #
    715667            # Clearance
     
    717669            student.invokeFactory('StudentClearance','clearance')
    718670            #wftool.doActionFor(student.clearance,'open')
    719             dp = {'Title': 'Clearance/Eligibility Record'}
    720             student.clearance.manage_setLocalRoles(sid, ['Owner',])
     671            clearance = student.clearance
     672            dc = {'Title': 'Clearance/Eligibility Record'}
     673            clearance = student.clearance
     674            date_str = result.get(csv_d['birthday'])
     675            date = DateTime.DateTime(date_str)
     676            dc['birthday'] = date
     677            clearance.getContent().edit(mapping=dc)
     678            clearance.manage_setLocalRoles(sid, ['Owner',])
    721679            #
    722680            # Study Course
     
    725683            study_course = student.study_course
    726684            dsc = {}
    727             #from_certificate = ['title',
    728             #                   'max_elect',
    729             #                   'max_pass',
    730             #                   'n_core',
    731             #                   'nr_years',
    732             #                   'probation_credits',
    733             #                   'promotion_credits',
    734             #                   'start_level',
    735             #                  ]
    736             #for f in from_certificate:
    737             #    dsc[f] = getattr(cert_doc,f)
    738             #dsc['faculty'] = jamb.get(csv_d['faculty'])
    739             #dsc['department'] = jamb.get(csv_d['department'])
    740             catalog_entry['faculty'] = jamb.get(csv_d['faculty'])
    741             catalog_entry['department'] = jamb.get(csv_d['department'])
    742             catalog_entry['course'] = cert_id
    743685            #catalog_entry['level'] = getattr(cert_doc,'start_level')
    744             catalog_entry['level'] = '100'
    745             dsc['study_course'] = cert_id
    746             dsc['entry_level'] = '100'
    747             #dsc['entry_session'] = jamb.get(csv_d['session'])
     686            catalog_entry['session'] = dsc['current_session'] = da['entry_session']
     687            catalog_entry['level'] = dsc['current_level'] = 'NA'
     688            catalog_entry['mode'] = dsc['current_mode'] = da['entry_mode']
     689            catalog_entry['course'] = dsc['study_course'] = cert_id
     690            catalog_entry['faculty'] = certificate['faculty']
     691            catalog_entry['department'] = certificate['department']
     692            catalog_entry['verdict'] = dsc['current_verdict'] = 'NA'
     693            catalog_entry['review_state'] = self.portal_workflow.getInfoFor(student,'review_state',None)
    748694            study_course.getContent().edit(mapping=dsc)
     695            #import pdb;pdb.set_trace()
    749696            self.students_catalog.addRecord(**catalog_entry)
    750697            if tr_count > 10:
  • WAeUP_SRP/trunk/WAeUPTables.py

    r1705 r1707  
    231231    key = "id"
    232232    affected_types = {   ###(
    233                       'StudentApplication':
     233                      'StudentApplication':
     234                          {'id': 'application',
     235                           'fields':
    234236                             ('jamb_reg_no',
    235237                              'entry_mode',
     238                              'entry_level',
    236239                              'entry_session',
    237                               ),
     240                              )
     241                              },
    238242                      'StudentClearance':
     243                          {'id': 'clearance',
     244                           'fields':
    239245                             ('matric_no',
    240                               ),
     246                              )
     247                              },
    241248                         'StudentPersonal':
     249                          {'id': 'personal',
     250                           'fields':
    242251                             ('name',
    243252                              'sex',
    244253                              'email',
    245254                              'phone',
    246                               ),
     255                              )
     256                              },
    247257                         'StudentStudyCourse':
     258                          {'id': 'study_course',
     259                           'fields':
    248260                             ('course',
    249261                              'faculty',
     
    253265                              'session',
    254266                              'verdict',
    255                               ),
     267                              )
     268                              },
    256269                         }
    257270    ###)
     
    380393            else:
    381394                for pt in self.affected_types.keys():
    382                     if n in self.affected_types[pt]:
     395                    if n in self.affected_types[pt]['fields']:
    383396                        if reindextypes.has_key(pt):
    384397                            reindextypes[pt].append(n)
     
    395408            if pghandler: pghandler.report(i)
    396409            student_brain = students[i]
     410            student_object = student_brain.getObject()
    397411            data = {}
    398412            modified = False
     
    401415                modified = True
    402416                data['review_state'] = student_brain.review_state
    403             if reindextypes:
    404                 query = Eq('path',student_brain.getPath())
    405                 sub_brains = aq_portal(query)
     417            sub_objects = False
     418            for pt in reindextypes.keys():
    406419                modified = True
    407                 spath = student_brain.getPath()
    408                 if len(sub_brains) > 1:
    409                     for sub_brain in sub_brains:
    410                         if not sub_brain.portal_type in reindextypes.keys():
    411                             continue
    412                         doc = sub_brain.getObject().getContent()
    413                         for field in self.affected_types[sub_brain.portal_type]:
    414                             if hasattr(self,'get_from_doc_%s' % field):
    415                                 data[field] = getattr(self,'get_from_doc_%s' % field)(doc)
    416                             else:
    417                                 data[field] = getattr(doc,field)
    418                 elif len(sub_brains) == 1 and noattr:
    419                     import_res = self.returning_import(id = sid)
    420                     if not import_res:
    421                         continue
    422                     import_record = import_res[0]
    423                     data['matric_no'] = import_record.matric_no
    424                     data['sex'] = import_record.Sex == 'F'
    425                     data['name'] = "%s %s %s" % (import_record.Firstname,
    426                                                  import_record.Middlename,
    427                                                  import_record.Lastname)
    428                     data['matric_no'] = import_record.Entryregno
     420                try:
     421                    doc = getattr(student_object,self.affected_types[pt]['id']).getContent()
     422                    sub_objects = True
     423                except:
     424                    continue
     425                for field in self.affected_types[pt]['fields']:
     426                    if hasattr(self,'get_from_doc_%s' % field):
     427                        data[field] = getattr(self,'get_from_doc_%s' % field)(doc)
     428                    else:
     429                        data[field] = getattr(doc,field)
     430                #from pdb import set_trace;set_trace()
     431            if not sub_objects and noattr:
     432                import_res = self.returning_import(id = sid)
     433                if not import_res:
     434                    continue
     435                import_record = import_res[0]
     436                data['matric_no'] = import_record.matric_no
     437                data['sex'] = import_record.Sex == 'F'
     438                data['name'] = "%s %s %s" % (import_record.Firstname,
     439                                             import_record.Middlename,
     440                                             import_record.Lastname)
     441                data['matric_no'] = import_record.Entryregno
    429442            if reindex_special and 'registered_courses' in reindex_special:
    430443                query = Eq('id','study_course') & Eq('path',student_brain.getPath())
     
    480493            sid = data['id'] = student_brain.getId
    481494            data['review_state'] = student_brain.review_state
    482             sub_brains = self.portal_catalog(path = spath)
    483             if len(sub_brains) > 1:
    484                 for sub_brain in sub_brains:
    485                     if not sub_brain.portal_type in self.affected_types.keys():
    486                         continue
    487                     doc = sub_brain.getObject().getContent()
    488                     for field in self.affected_types[sub_brain.portal_type]:
    489                         if hasattr(self,'get_from_doc_%s' % field):
    490                             data[field] = getattr(self,'get_from_doc_%s' % field)(doc)
    491                         else:
    492                             data[field] = getattr(doc,field)
    493             elif len(sub_brains) == 1:
    494                 #import pdb;pdb.set_trace()
     495            sub_objects = False
     496            for pt in self.affected_types.keys():
     497                modified = True
     498                try:
     499                    doc = getattr(student_object,self.affected_types[pt]['id']).getContent()
     500                    sub_objects = True
     501                except:
     502                    continue
     503                for field in self.affected_types[pt]['fields']:
     504                    if hasattr(self,'get_from_doc_%s' % field):
     505                        data[field] = getattr(self,'get_from_doc_%s' % field)(doc)
     506                    else:
     507                        data[field] = getattr(doc,field)
     508                #from pdb import set_trace;set_trace()
     509            if not sub_objects and noattr:
    495510                import_res = self.returning_import(id = sid)
    496511                if not import_res:
     
    503518                                             import_record.Lastname)
    504519                data['matric_no'] = import_record.Entryregno
     520##            sub_brains = self.portal_catalog(path = spath)
     521##            if len(sub_brains) > 1:
     522##                for sub_brain in sub_brains:
     523##                    if not sub_brain.portal_type in self.affected_types.keys():
     524##                        continue
     525##                    doc = sub_brain.getObject().getContent()
     526##                    for field in self.affected_types[sub_brain.portal_type]:
     527##                        if hasattr(self,'get_from_doc_%s' % field):
     528##                            data[field] = getattr(self,'get_from_doc_%s' % field)(doc)
     529##                        else:
     530##                            data[field] = getattr(doc,field)
     531##            elif len(sub_brains) == 1:
     532##                #import pdb;pdb.set_trace()
     533##                import_res = self.returning_import(id = sid)
     534##                if not import_res:
     535##                    continue
     536##                import_record = import_res[0]
     537##                data['matric_no'] = import_record.matric_no
     538##                data['sex'] = import_record.Sex == 'F'
     539##                data['name'] = "%s %s %s" % (import_record.Firstname,
     540##                                             import_record.Middlename,
     541##                                             import_record.Lastname)
     542##                data['matric_no'] = import_record.Entryregno
    505543            study_course = getattr(student_obj,'study_course',None)
    506544            current_level = data.get('level',None)
     
    548586            return
    549587        elif pt == 'CourseResult' and mt == 'CPS Proxy Folder':
    550             from pdb import set_trace;set_trace()
    551            
     588            pass
    552589        if event_type not in ('sys_modify_object'):
    553             from pdb import set_trace;set_trace()
     590            #from pdb import set_trace;set_trace()
    554591            return
    555592        if mt == 'CPS Proxy Folder':
  • WAeUP_SRP/trunk/WAeUPTool.py

    r1700 r1707  
    4242import transaction
    4343import csv,re,os
    44 
     44from Products.AdvancedQuery import Eq, Between, Le,In
     45
     46def getObject(object,name):
     47    if object.hasObject(name):
     48        return getattr(object,name)
     49    return None
     50   
    4551class WAeUPTool(UniqueObject, SimpleItem, ActionProviderBase):
    4652    """WAeUP tool"""
     
    5763                     )
    5864
     65    def rwrite(self,s):
     66        response = self.REQUEST.RESPONSE
     67        response.setHeader('Content-type','text/html; charset=ISO-8859-15')
     68        response.write("%s<br />\r\n" % s)
    5969
    6070    def generateStudentId(self,letter): ###(
  • WAeUP_SRP/trunk/profiles/default/schemas/student_application.xml

    r1705 r1707  
    88 <field name="entry_mode" meta_type="CPS String Field"/>
    99 <field name="entry_session" meta_type="CPS String Field"/>
     10 <field name="entry_level" meta_type="CPS String Field"/>
    1011  <field name="objection_date" meta_type="CPS DateTime Field"/>
    1112  <field name="jamb_age" meta_type="CPS Int Field"/>
  • WAeUP_SRP/trunk/profiles/default/students_catalog.xml

    r1705 r1707  
    4040  <indexed_attr value="level"/>
    4141 </index>
     42 <index name="entry_level" meta_type="FieldIndex">
     43  <indexed_attr value="entry_level"/>
     44 </index>
    4245 <index name="mode" meta_type="FieldIndex">
    4346  <indexed_attr value="mode"/>
     
    6467 <column value="email"/>
    6568 <column value="phone"/>
     69 <column value="entry_level"/>
    6670 <column value="level"/>
    6771 <column value="mode"/>
  • WAeUP_SRP/trunk/skins/waeup_default/getSessionId.py

    r1440 r1707  
    1515now = DateTime.DateTime()
    1616if now.month() > 7:
    17     return "%s" % now.year()
    18 return "%s" % (now.year() - 1)
     17    s = "%s" % now.year()
     18else:
     19    s = "%s" % (now.year() - 1)
     20return s
  • WAeUP_SRP/trunk/skins/waeup_utilities/setNewEntryMode.py

    r1706 r1707  
    2323setheader = request.RESPONSE.setHeader
    2424students = context.portal_url.getPortalObject().campus.students
     25import logging
     26logger = logging.getLogger('Skins.setNewEntryMode')
    2527
    2628def rwrite(s):
     
    3032brains = context.portal_catalog(portal_type = 'Student')
    3133count = 0
     34commit_count = 0
    3235#set_trace()
     36logger.info('setNewEntryMode start')
    3337for brain in brains:
    3438    stud_obj = brain.getObject()
    3539    try:     
    3640        app_doc = stud_obj.application.getContent()
    37         try:
    38             sc_doc = stud_obj.study_course.getContent()
    39         except:
    40             sc_doc = None
    4141    except:
    4242        continue
     43    try:
     44        sc_doc = stud_obj.study_course.getContent()
     45    except:
     46        sc_doc = None
    4347    em = getattr(app_doc,'entry_mode',None)
    44     new_em = "%s_ft" % em.lower()
    45     app_doc.edit(mapping={'entry_mode': new_em})
     48    if em in ('ume_ft','de_ft'):
     49        new_em = em
     50    else:
     51        new_em = "%s_ft" % em.lower()
     52    if em in ('ume_ft','UME'):
     53        el = "100"
     54    elif em in ('de_ft','DE'):
     55        el = "200"
     56    app_doc.edit(mapping={'entry_mode': new_em,
     57                          'entry_level': el})
     58    sid = brain.getId
    4659    if sc_doc:
    4760        sc_doc.edit(mapping={'current_mode': new_em})
     61        context.students_catalog.modifyRecord(id = sid,
     62                                              mode=new_em,
     63                                              entry_mode=new_em,
     64                                              entry_level=el)
     65    else:
     66        context.students_catalog.modifyRecord(id = sid,
     67                                              entry_mode=new_em,
     68                                              entry_level=el)
     69       
    4870    count += 1
     71    commit_count += 1
     72    if commit_count > 1000:
     73        context.waeup_tool.doCommit()
     74        logger.info('committing %d total %d' % (commit_count,count))
     75        commit_count = 0
    4976    s = "%d: %s %s -> %s" % (count,brain.getPath(),em,new_em)
    5077    rwrite(s)
    5178rwrite('Done')
     79logger.info('setNewEntryMode finish')
    5280
    5381
Note: See TracChangeset for help on using the changeset viewer.