Changeset 3178


Ignore:
Timestamp:
18 Feb 2008, 16:03:26 (17 years ago)
Author:
joachim
Message:

xxx_imported.csv -> xxx.imported.csv xxx_pending -> xxx.pending
.backup -> .old
tmp-file is removed after run

Location:
WAeUP_SRP/base
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/base/WAeUPImport.py

    r3177 r3178  
    6464        self.portal_workflow = getToolByName(waeup_tool, 'portal_workflow')
    6565        self.portal_url = getToolByName(waeup_tool, 'portal_url')
     66        self.portal_catalog = waeup_tool.portal_catalog
    6667        self.students_catalog = waeup_tool.students_catalog
    6768        self.courses_catalog = waeup_tool.courses_catalog
     
    7273        if self.import_method is None:
    7374            errors.append('No importer method %s' % mode)
    74         self.pending_path = "%s/import/%s_pending.csv" % (i_home,self.plural_name)
    75         self.pending_tmp = "%s/import/%s_pending.csv.tmp" % (i_home,self.plural_name)
    76         self.pending_backup = "%s/import/%s_pending.csv.backup" % (i_home,self.plural_name)
     75        self.pending_path = "%s/import/%s.pending" % (i_home,self.plural_name)
     76        self.pending_tmp = "%s/import/%s.pending.tmp" % (i_home,self.plural_name)
     77        self.pending_backup = "%s/import/%s.pending.old" % (i_home,self.plural_name)
    7778        self.pending_fn = os.path.split(self.pending_path)[1]
    78         self.imported_path = "%s/import/%s_imported.csv" % (i_home,self.plural_name)
     79        self.imported_path = "%s/import/%s.imported" % (i_home,self.plural_name)
    7980        self.imported_fn = os.path.split(self.imported_path)[1]
    8081        iname = "import_%s" % self.name
     
    9798        info['import_mode'] = mode
    9899        info['error'] = ''
     100        info['digest'] = ''
    99101        self.info = info
    100102        self.csv_keys.extend(self.info)
     
    119121                    pending_digests += digest,
    120122                    pending += item,
     123            datafile.close()
    121124            copy2(self.pending_path,self.pending_backup)
    122             pending_at_start = len(pending)               
    123             datafile.close()
    124125        return pending, pending_digests
    125126###)
     
    442443    name = "department"
    443444    plural_name = "%ss" % name
    444     commit_after = 100000
     445    commit_after = 1000
    445446   
    446 
    447447    def create(self,mapping):###(
    448448        "create a department in the correct faculty"
    449         fid = mapping['faculty_code']
     449        faculty_id = mapping['faculty_code']
    450450        msg = ''
    451451        if getattr(self,'_v_faculties',None) is None:
    452             res = self.portal_catalog(portal_type = "Faculty")
     452            res = self.portal_catalog(portal_type = "Department")
    453453            self._v_faculties = {}
    454454            for f in res:
    455455                self._v_faculties[f.getId] = f.getObject()
    456         while True:
    457             f = self._v_faculties.get(fid,None)
    458             if f is None:
    459                 msg =  "No Faculty with ID: %s" % fid
     456        department_id = mapping.get('code','')
     457        while True:
     458            faculty = self._v_faculties.get(faculty_id,None)
     459            if faculty is None:
     460                msg =  "No Faculty with ID: %s" % faculty_id
    460461                break
    461462            else:
    462                 did = mapping.get('code')
    463                 d = getattr(f,did,None)
     463                d = getattr(faculty,department_id,None)
    464464                if d is None or d.portal_type == "Faculty":
    465                     #logger.info('Creating Department %(code)s, %(title)s' % mapping)
    466465                    try:
    467                         f.invokeFactory('Department', did)
     466                        faculty.invokeFactory('Department', department_id)
    468467                    except BadRequest,E:
    469468                        msg =  "%s" % E
    470469                        break
    471                     d = getattr(f,did)
     470                    d = getattr(faculty,department_id)
    472471                    d.invokeFactory('CoursesFolder','courses')
    473472                    courses = getattr(d,'courses')
     
    480479                    d.getContent().edit(mapping=mapping)
    481480            break
    482         return did,msg,mapping
     481        return department_id,msg,mapping
    483482    ###)
    484483
    485484    def edit(self,mapping): ###(
    486         "create a department in the correct faculty"
     485        "edit a department in the correct faculty"
    487486        academics_folder = self.portal_url.getPortalObject().campus.academics
    488         fid = mapping['faculty_code']
    489         did = mapping.get('code')
     487        faculty_id = mapping['faculty_code']
     488        department_id = mapping.get('code','')
    490489        msg = ''
    491490        while True:
    492491            try:
    493                 d = getattr(getattr(academics_folder,fid),did,None)
     492                d = getattr(getattr(academics_folder,faculty_id),department_id,None)
    494493            except KeyError:
    495                 msg =  "Department %s or Faculty %s wrong" % (did,fid)
    496                 break
    497             else:
    498                 if d is None or d.portal_type == "Faculty":
    499                     #logger.info('Editing Department %(code)s, %(title)s' % mapping)
    500                     d.getContent().edit(mapping=mapping)
    501             break
    502         return did,msg,mapping
     494                msg =  "Department %s or Faculty %s wrong" % (department_id,faculty_id)
     495                break
     496            if d is None or d.portal_type == "Faculty":
     497                msg =  "Department %s not found" % (department_id)
     498                break
     499            d.getContent().edit(mapping=mapping)
     500            break
     501        return department_id,msg,mapping
    503502    ###)
    504503###)
     
    512511        "create a faculty"
    513512        academics_folder = self.portal_url.getPortalObject().campus.academics
    514         fid = mapping['code']
    515         msg = ''
    516         while True:
    517             if getattr(academics_folder,fid,None) is not None:
    518                 msg =  "Faculty with ID: %s exists" % fid
     513        faculty_id = mapping.get('code','')
     514        msg = ''
     515        while True:
     516            if faculty_id in academics_folder.objectIds():
     517                msg =  "Faculty with ID: %s exists" % faculty_id
    519518                break
    520519            logger.info('Creating Faculty %(code)s, %(title)s' % mapping)
    521520            try:
    522                 academics_folder.invokeFactory('Faculty', fid)
     521                academics_folder.invokeFactory('Faculty', faculty_id)
    523522            except BadRequest,E:
    524523                msg =  "%s" % E
    525524                break
    526             f = getattr(academics_folder,fid,None)
     525            f = getattr(academics_folder,faculty_id,None)
    527526            f.getContent().edit(mapping=mapping)
    528527            break
    529         return fid,msg,mapping
     528        return faculty_id,msg,mapping
    530529        ###)
    531530
     
    533532        "edit a faculty"
    534533        academics_folder = self.portal_url.getPortalObject().campus.academics
    535         fid = mapping['code']
    536         msg = ''
    537         while True:
    538             f = getattr(academics_folder,fid,None)
     534        faculty_id = mapping['code']
     535        msg = ''
     536        while True:
     537            f = getattr(academics_folder,faculty_id,None)
    539538            if f is None:
    540                 msg =  "Faculty with ID: %s does not exist" % fid
     539                msg =  "Faculty with ID: %s does not exist" % faculty_id
    541540            f.getContent().edit(mapping=mapping)
    542541            break
    543         return fid,msg,mapping
     542        return faculty_id,msg,mapping
    544543    ###)
    545544###)
  • WAeUP_SRP/base/WAeUPTool.py

    r3177 r3178  
    14961496            info['error'] = error
    14971497            mapping.update(info)
     1498            log_list = []
    14981499            if error:
    14991500                digest = makeDigest(mapping,data_keys)
    15001501                with_error_count += 1
    1501                 percent_finished = (with_error_count + imported_count)/tti_float*100
     1502                #percent_finished = (with_error_count + imported_count)/tti_float*100
    15021503                if digest not in pending_digests:
    15031504                    pending_digests += digest,
    15041505                    pending.append(mapping)
    15051506                    if not pending_only:
    1506                         logger.info("%(percent_finished)6.3f %% done added to %(pending_fn)s %(data_string)s" % vars())
     1507                        log_list += "added to %(pending_fn)s %(data_string)s" % vars(),
     1508                        #logger.info("%(percent_finished)6.3f %% done added to %(pending_fn)s %(data_string)s" % vars())
    15071509                else:
    15081510                    already_in += 1
     
    15121514                imported_count += 1
    15131515                imported += mapping,
     1516                log_list += "imported and added to  %(imported_fn)s %(data_string)s" % vars(),
     1517                #percent_finished = (with_error_count + imported_count)/tti_float*100
     1518                #logger.info("%(percent_finished)6.3f %% done imported and added to  %(imported_fn)s %(data_string)s" % vars())
     1519            if log_list:
     1520                time_till_now = time.time() - elapse
    15141521                percent_finished = (with_error_count + imported_count)/tti_float*100
    1515                 logger.info("%(percent_finished)6.3f %% done  imported and added to  %(imported_fn)s %(data_string)s" % vars())
     1522                log_list.insert(0,("%(percent_finished)6.3f %% done in %(time_till_now)3.2f secs" % vars()),)
     1523                logger.info(' '.join(log_list))
    15161524            finished = count > total_to_import - 1
    15171525            must_commit = False
     
    15571565        msg += " total %(total_pending)d; " % vars()
    15581566        logger.info(msg)
     1567        os.remove(pending_tmp)
    15591568        return msg
    15601569    ###)
  • WAeUP_SRP/base/utils.py

    r3172 r3178  
    2626    for key in data_keys:
    2727        d[key] = str(item.get(key,''))
    28     return md5.new(str(d)).digest()
     28    return md5.new(str(d)).hexdigest()
    2929
Note: See TracChangeset for help on using the changeset viewer.