Changeset 1170 for WAeUP_SRP


Ignore:
Timestamp:
1 Jan 2007, 18:08:45 (18 years ago)
Author:
joachim
Message:

createReturningStudent?matric_no=All,
now creates all students-baseobject. Commits every 100 objects
100 students with commit takes about 38 seconds.

Location:
WAeUP_SRP/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/trunk/WAeUPTool.py

    r1169 r1170  
    3737from Students import makeCertificateCode
    3838import logging
     39import transaction
    3940
    4041
     
    6364            sid = "%c%d" % (letter,r.randint(99999,1000000))
    6465        return sid
     66    ###)
     67
     68    security.declareProtected(ModifyPortalContent,'createOne') ###(
     69    def createOne(self,student_brain,commit=False):
     70        students_folder = self.portal_url.getPortalObject().campus.students
     71        sid = self.waeup_tool.generateStudentId('?')
     72        students_folder.invokeFactory('Student', sid)
     73        student = getattr(students_folder,sid)
     74        self.portal_workflow.doActionFor(student,'return')
     75        student.manage_setLocalRoles(sid, ['Owner',])
     76        matric_no = student_brain.matric_no
     77        jamb_reg_no = student_brain.Entryregno
     78        self.students_catalog.addRecord(id = sid,
     79                                           matric_no = matric_no,
     80                                           jamb_reg_no = jamb_reg_no,
     81                                           sex = student_brain.Sex == "F",
     82                                           name = "%s %s %s" % (student_brain.Firstname,
     83                                                                student_brain.Middlename,
     84                                                                student_brain.Lastname)
     85                                        )
     86        if commit:
     87            transaction.commit()
     88        return sid,jamb_reg_no
    6589    ###)
    6690
  • WAeUP_SRP/trunk/skins/waeup_student/createReturningStudent.py

    r1169 r1170  
    2121#if str(member) not in ("admin","joachim"):
    2222#    return "not possible"
     23def createOne(student_brain):
     24    sid = context.waeup_tool.generateStudentId('?')
     25    students_folder.invokeFactory('Student', sid)
     26    student = getattr(students_folder,sid)
     27    wftool.doActionFor(student,'return')
     28    student.manage_setLocalRoles(sid, ['Owner',])
     29    jamb_reg_no = student_brain.Entryregno,
     30    context.students_catalog.addRecord(id = sid,
     31                                       matric_no = matric_no,
     32                                       jamb_reg_no = jamb_reg_no,
     33                                       sex = student_brain.Sex == "F",
     34                                       name = "%s %s %s" % (student_brain.Firstname,
     35                                                            student_brain.Middlename,
     36                                                            student_brain.Lastname)
     37                                    )
     38    return sid,jamb_reg_no
     39
    2340if not matric_no:
    2441    return "No MatricNo"
    2542
    26 if context.students_catalog(matric_no=matric_no):
    27     return "Student with %s already exists" % matric_no
    28 res = context.returning_import(matric_no = matric_no)
    29 if len(res) != 1:
    30     return "MatricNo %s not found in Returning Table" % matric_no
    31 student_brain = res[0]
    32 sid = context.waeup_tool.generateStudentId('?')
    33 students_folder.invokeFactory('Student', sid)
    34 logger.info('"%s","Created Student","%s", "%s" ' % (member,sid,matric_no))
    35 student = getattr(students_folder,sid)
    36 wftool.doActionFor(student,'return')
    37 student.manage_setLocalRoles(sid, ['Owner',])
    38 jamb_reg_no = student_brain.Entryregno,
    39 context.students_catalog.addRecord(id = sid,
    40                                    matric_no = matric_no,
    41                                    jamb_reg_no = jamb_reg_no,
    42                                    sex = student_brain.Sex == "F",
    43                                    name = "%s %s %s" % (student_brain.Firstname,
    44                                                         student_brain.Middlename,
    45                                                         student_brain.Lastname)
    46                                 )
    47 return "Student MatricNo %s, StudentId %s Jamb %s created" % (matric_no,sid,jamb_reg_no)
     43if matric_no != 'All':
     44    if context.students_catalog(matric_no=matric_no):
     45        return "Student with %s already exists" % matric_no
     46    res = context.returning_import(matric_no = matric_no)
     47    if len(res) != 1:
     48        return "MatricNo %s not found in Returning Table" % matric_no
     49    student_brain = res[0]
     50    #sid,jamb_reg_no = context.waeup_tool.createOne(student_brain)
     51    sid,jamb_reg_no = context.createOne(student_brain)
     52    logger.info('"%s","Created Student","%s", "%s" ' % (member,sid,matric_no))
     53    return "Student MatricNo %s, StudentId %s Jamb %s created" % (matric_no,sid,jamb_reg_no)
    4854
     55students = context.returning_import(emil="adf")
     56count = 1
     57total = 0
     58logger.info('"%s","Create Students start"' % (member))
     59#from Products.zdb import set_trace;set_trace()
     60for student in students:
     61    if context.students_catalog(matric_no=student.matric_no):
     62        logger.info('"Student already exists","%s"' % (student.matric_no))
     63        continue
     64    if count > 100:
     65        context.waeup_tool.createOne(student,commit=True)
     66        logger.info('"%s","Commited Students","%s", "%s" ' % (member,count,total))
     67        total += count
     68        count = 1
     69    else:
     70        context.waeup_tool.createOne(student)
     71        count += 1
     72logger.info('"%s","Create Students finish","%s"' % (member,total))
Note: See TracChangeset for help on using the changeset viewer.