Ignore:
Timestamp:
20 Feb 2008, 16:50:08 (17 years ago)
Author:
joachim
Message:

first version with import_mode per line, please copy xml files to okene.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/base/WAeUPTool.py

    r3186 r3191  
    13531353        if filename == pend_str:
    13541354            pending_only = True
    1355         mode = "create"
    1356         if edit:
    1357             if filename.endswith('_toDelete'):
    1358                 mode = "delete"
    1359             else:
    1360                 mode = "edit"
     1355        # mode = "create"
     1356        # if edit:
     1357        #     if filename.endswith('_toDelete'):
     1358        #         mode = "delete"
     1359        #     else:
     1360        #         mode = "edit"
    13611361        importer_name = ''.join([part.capitalize() for part in name.split('_')])
    1362         importer = eval("%sImport" % importer_name)(mode,self)
     1362        importer = eval("%sImport" % importer_name)(self)
    13631363        logger = importer.logger
    13641364        if importer.init_errors:
    1365             logger.info(self.init_errors)
    1366             return self.init_errors
     1365            logger.info(importer.init_errors)
     1366            return importer.init_errors
    13671367        member = importer.member
    13681368        current = importer.current
     
    14231423        info['imported_from'] = import_source_fn
    14241424        attrs = csv.reader(open(import_source_path,"rb")).next()
     1425        if "import_mode" not in attrs:
     1426            msg = 'import_mode must be in heading'
     1427            return msg
     1428           
    14251429        import_keys = [k.strip() for k in attrs if not (k.strip().startswith('ignore')
    14261430                                                        or k.strip() in info.keys())]
     
    14301434            msg = 'not ignorable key(s): "%s" found in heading' % ", ".join(diff2schema)
    14311435            return msg
    1432         if mode in importer.required_modes:
    1433             required_keys = [importer.layout.getIdUnprefixed(id)
    1434                                 for id,widget in importer.layout.objectItems()
    1435                                 if widget.is_required]
    1436             if not set(required_keys).issubset(set(import_keys)):
    1437                 diff2import = set(required_keys).difference(set(import_keys))
    1438                 msg = 'required key(s): "%s" not found in heading' % ", ".join(diff2import)
    1439                 return msg
     1436        # if import_mode in importer.required_modes:
     1437        #     required_keys = [importer.layout.getIdUnprefixed(id)
     1438        #                         for id,widget in importer.layout.objectItems()
     1439        #                         if widget.is_required]
     1440        #     if not set(required_keys).issubset(set(import_keys)):
     1441        #         diff2import = set(required_keys).difference(set(import_keys))
     1442        #         msg = 'required key(s): "%s" not found in heading' % ", ".join(diff2import)
     1443        #         return msg
    14401444        #
    14411445        # start importing
     
    14671471                start = False
    14681472                adapters = [MappingStorageAdapter(importer.schema, item)]
    1469                 logger.info('%(member)s starts import from %(import_source_fn)s in %(mode)s mode' % vars())
    1470                 #logger.info('%s starts import from %s in %s mode with schema and layout %s' % (member,filename,mode,iname))
     1473                logger.info('%(member)s starts import from %(import_source_fn)s' % vars())
    14711474            dm = DataModel(item, adapters,context=self)
    14721475            ds = DataStructure(data=item,datamodel=dm)
     
    14741477            total += 1
    14751478            error_count = 0
    1476             for k in import_keys:
    1477                 if k not in item.keys() or k not in importer.validators.keys():
    1478                     continue
    1479                 if not importer.validators[k](ds,mode=mode):
    1480                     if error_count:
    1481                         error_string += ' ++ '
    1482                     error_string += "%s: %s" % (k,self.translation_service(ds.getError(k),
     1479            import_mode = item.get('import_mode','edit')
     1480            import_method = getattr(importer, '%(import_mode)s' % vars(),None )
     1481            if import_method is None:
     1482                error_string += "no %(import_mode)s " % vars()
     1483            else:
     1484                for k in import_keys:
     1485                    if k not in item.keys() or k not in importer.validators.keys():
     1486                        continue
     1487                    if not importer.validators[k](ds,mode=import_mode):
     1488                        if error_count:
     1489                            error_string += ' ++ '
     1490                            error_string += "%s: %s" % (k,self.translation_service(ds.getError(k),
    14831491                                                                           ds.getErrorMapping(k)))
    1484                     error_count += 1
     1492                            error_count += 1
    14851493            if error_string:
    14861494                error = error_string
     
    14901498                temp_item = item.copy()
    14911499                temp_item.update(dm)
    1492                 import_method = importer.import_method
    1493                 if pending_only:
    1494                     import_mode = temp_item.get('import_mode','edit')
    1495                     import_method = getattr(importer, '%(import_mode)s' % vars() )
    1496                     info['import_mode'] = import_mode
    14971500                results = import_method(temp_item)
    14981501                id = results[0]
     
    15671570        elapse = time.time() - elapse
    15681571        copy2(pending_tmp,pending_path)
    1569         msg = "finished importing in %(mode)s mode from %(import_source_fn)s in %(elapse).2f seconds, " % vars()
     1572        msg = "finished importing from %(import_source_fn)s in %(elapse).2f seconds, " % vars()
    15701573        msg += "%(count)d records totally read, %(total_added_to_imported)d added to %(imported_fn)s, " % vars()
    15711574        if pending_only:
Note: See TracChangeset for help on using the changeset viewer.