Example #1
0
def addToTik(fileName, session):
    success = True
    dbsession = session

    tiks_from_db = get_tiks_from_db(dbsession)
    stat = {'count_in_db': 0, 'updated': 0, 'created': 0}

    with transaction.manager:
        with open(fileName, 'rb') as csvFile:
            reader = csv.DictReader(csvFile)
            for row in reader:
                tik_id = int(row['tik_id'])
                tik_name = row['tik'].decode('utf-8')
                tik_region_id = int(row['auto_code'])

                if tik_id in tiks_from_db:
                    stat['count_in_db'] += 1
                    print 'REG: %(reg_id)s\tTIK: %(tik_id)s\talready exists in db' % {
                        'reg_id': row['auto_code'],
                        'tik_id': tik_id
                    }
                    validate_tik_db_region(tiks_from_db[tik_id], tik_region_id)
                    if validate_tik_db_name(tiks_from_db[tik_id],
                                            tik_name) is False:
                        dbsession.query(Tik).filter(Tik.id == tik_id).update(
                            {'name': tik_name})
                        stat['updated'] += 1
                        print 'REG: %(reg_id)s\tTIK: %(tik_id)s\twas updated' % {
                            'reg_id': row['auto_code'],
                            'tik_id': tik_id
                        }
                    continue

                tik = Tik()
                tik.id = tik_id
                tik.name = tik_name
                tik.region_id = row['auto_code']
                dbsession.add(tik)

                stat['created'] += 1
                print 'REG: %(reg_id)s\tTIK: %(tik_id)s\t was added' % {
                    'reg_id': tik.region_id,
                    'tik_id': tik.id
                }

    print stat
    return success
Example #2
0
def addToTik(fileName, session):
    success = True
    dbsession = session

    tiks_from_db = get_tiks_from_db(dbsession)
    stat = {"count_in_db": 0, "updated": 0, "created": 0}

    with transaction.manager:
        with open(fileName, "rb") as csvFile:
            reader = csv.DictReader(csvFile)
            for row in reader:
                tik_id = int(row["tik_id"])
                tik_name = row["tik"].decode("utf-8")
                tik_region_id = int(row["auto_code"])

                if tik_id in tiks_from_db:
                    stat["count_in_db"] += 1
                    print "REG: %(reg_id)s\tTIK: %(tik_id)s\talready exists in db" % {
                        "reg_id": row["auto_code"],
                        "tik_id": tik_id,
                    }
                    validate_tik_db_region(tiks_from_db[tik_id], tik_region_id)
                    if validate_tik_db_name(tiks_from_db[tik_id], tik_name) is False:
                        dbsession.query(Tik).filter(Tik.id == tik_id).update({"name": tik_name})
                        stat["updated"] += 1
                        print "REG: %(reg_id)s\tTIK: %(tik_id)s\twas updated" % {
                            "reg_id": row["auto_code"],
                            "tik_id": tik_id,
                        }
                    continue

                tik = Tik()
                tik.id = tik_id
                tik.name = tik_name
                tik.region_id = row["auto_code"]
                dbsession.add(tik)

                stat["created"] += 1
                print "REG: %(reg_id)s\tTIK: %(tik_id)s\t was added" % {"reg_id": tik.region_id, "tik_id": tik.id}

    print stat
    return success
Example #3
0
def addToTik(fileName, session, regionID=None):
    """
    Если указан regionID, то ВСЕ участки этого региона удаляются,
    затем из файла импортируются ТИКи данного региона.
    Внимание!!! Здесь также удаляются УИКи, привязанные к региону.
    Если не указан regionID, то импортируется все ТИКи.
    """
    processAll = (regionID==None)
    success = True
    dbsession = session
    with transaction.manager:
        if not processAll:
            dbsession.query(Uik).filter(Uik.region_id==regionID).delete()
            dbsession.query(Tik).filter(Tik.region_id==regionID).delete()

        with open(fileName, 'rb') as csvFile:
            reader = csv.DictReader(csvFile)
            for row in reader:
                if processAll or row['auto_code'] == regionID:
                    tik = Tik()
                    tik.id   = row['tik_id']
                    tik.name = row['tik']
                    tik.link_orig = row['link_orig']
                    tik.link_save = row['link_save']
                    tik.region_id = row['auto_code']
                    dbsession.add(tik)
    return success