Changeset 3374 for WAeUP_SRP/base


Ignore:
Timestamp:
26 Mar 2008, 08:03:17 (17 years ago)
Author:
joachim
Message:

fix for #113 + #114 okene

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/base/WAeUPImport.py

    r3372 r3374  
    409409    required_modes = ('create','edit','remove')
    410410
    411     def old_getStudentRecord(self,mapping): ###(
    412         id_field_found = False
    413         msg = ''
    414         student_record = None
    415         id_count = 0
    416         for id_key in ('matric_no','id'):
    417             id_field = mapping.get(id_key,'')
    418             if id_field:
    419                 id_count += 1
    420                 search_key = id_key
    421                 search_field = id_field
    422         while True:
    423             #if id_count > 1:
    424             #    msg = "both id and matric_no are provided"
    425             #    break
    426             if id_count == 0:
    427                 msg = "neither id nor matric_no provided"
    428                 break
    429             query = Eq(search_key,search_field)
    430             res = self.students_catalog.evalAdvancedQuery(query)
    431             if res:
    432                 student_record = res[0]
    433                 if search_key == "matric_no":
    434                     mapping['id'] = student_record.id
    435                 elif search_key == "id":
    436                     mapping['matric_no'] = student_record.matric_no
    437             else:
    438                 msg = "no student with %(search_key)s %(search_field)s" % vars()
    439             break
    440         return student_record,msg
    441     ###)
    442 
    443411    def create(self,mapping):###(
    444412        students_folder = self.portal_url.getPortalObject().campus.students
     
    462430                break
    463431            result = self.findStudent('create',student_id=id,matric_no=matric_no)
    464             #student_record,msg = self.getStudentRecord(mapping)
    465432            msg = result['msg']
    466433            if msg:
     
    500467    ###)
    501468
    502     def create_old(self,mapping):###(
    503         students_folder = self.portal_url.getPortalObject().campus.students
    504         if getattr(self,'_v_courses',None) is None:
    505             res = self.courses_catalog()
    506             self._v_courses = {}
    507             for brain in res:
    508                 self._v_courses[brain.code] = brain
    509         if getattr(self,'_v_level_created',None) is None:
    510             self._v_level_created = []
     469    def edit(self,mapping): ###(
    511470        msg = ''
    512471        key = ''
    513472        matric_no = mapping.get('matric_no','')
    514         student_id = mapping.get('id','')
    515         while True:
    516             course_id = mapping.get('code')
    517             if course_id not in self._v_courses.keys():
    518                 msg = "no course with id: %s" % course_id
    519                 break
    520             student_record,msg = self.getStudentRecord(mapping)
    521             if msg:
    522                 break
    523             student_id = student_record.id
    524             level_id = mapping.get('level_id','')
    525             code = mapping.get('code','')
    526             if student_id not in self._v_level_created:
    527                 try:
    528                     context = getattr(getattr(students_folder,
    529                                             "%(student_id)s" % vars()),
    530                                     'study_course')
    531                 except:
    532                     msg = "could not create level %(level_id)s for %(student_id)s" % vars()
    533                     break
    534                 if level_id not in context.objectIds():
    535                     context.invokeFactory('StudentStudyLevel',"%(level_id)s" % vars())
    536                     level = getattr(context,"%(level_id)s" % vars())
    537                     self.portal_workflow.doActionFor(level,'open')
    538                     # the session string must not be copied into the level object
    539                     current_verdict = getattr(student_record,'current_verdict','')
    540                     current_session = getattr(student_record,'current_session','')
    541                     if current_verdict and student_record.current_level == level_id:
    542                         level.getContent().edit(mapping={'verdict': "%s" %
    543                                                         current_verdict,
    544                                                         'session': "%s" %
    545                                                         current_session,
    546                                                         })
    547                         self.portal_workflow.doActionFor(level,'close')
    548                 self._v_level_created += student_id,
    549             mapping['key'] = key = "%(student_id)s|%(level_id)s|%(code)s" % vars()
    550             for k in ('semester','credits',):
    551                 mapping[k] = getattr(self._v_courses[course_id],k)
    552             try:
    553                 self.course_results.addRecord(**mapping)
    554             except ValueError:
    555                 msg = "course result already exists: %s" % key
    556             break
    557         return key,msg,mapping
    558     ###)
    559 
    560     def edit(self,mapping): ###(
    561         msg = ''
    562         key = ''
     473        id = mapping.get('id','')
    563474        while True:
    564475            result = self.findStudent('edit',student_id=id,matric_no=matric_no)
    565             #student_record,msg = self.getStudentRecord(mapping)
    566476            msg = result['msg']
    567477            if msg:
     
    584494        key = ''
    585495        msg = ''
    586         while True:
    587             student_record,msg = self.getStudentRecord(mapping)
     496        matric_no = mapping.get('matric_no','')
     497        id = mapping.get('id','')
     498        while True:
     499            result = self.findStudent('edit',student_id=id,matric_no=matric_no)
     500            msg = result['msg']
    588501            if msg:
    589502                break
     503            student_record = result['student_record']
    590504            student_id = student_record.id
    591505            level_id = mapping.get('level_id','')
     
    13311245            student_record = result['student_record']
    13321246            key_used = result['key_used']
    1333             # if student_id:
    1334             #     student_record = self.students_catalog.getRecordByKey(student_id)
    1335             #     if student_record is None:
    1336             #         #return '',"no student with id %s" % student_id
    1337             #         msg = "no student with id %s" % student_id
    1338             #         break
    1339             #     if matric_no and student_record.matric_no and matric_no != student_record.matric_no:
    1340             #         msg = 'student %s: matric_no %s does not match %s' % (student_record.id,
    1341             #                                                               student_record.matric_no,
    1342             #                                                               matric_no)
    1343             #         break
    1344             #     mapping['matric_no'] = student_record.matric_no
    1345             # elif matric_no:
    1346             #     res = self.students_catalog(matric_no = matric_no)
    1347             #     if not res:
    1348             #         msg = "no student with matric_no %s" % matric_no
    1349             #         break
    1350             #     student_record = res[0]
    1351             #     editable_keys.remove('matric_no')
    1352             # else:
    1353             #     msg = "no id or matric_no specified"
    1354             #     break
    1355             editable_keys.remove(key_used)
     1247            if key_used in editable_keys():
     1248                editable_keys.remove(key_used)
    13561249            student_id = student_record.id
    13571250            mapping['id'] = student_id
Note: See TracChangeset for help on using the changeset viewer.