Пример #1
0
def write_back(layer=None, ajax=True):
    user = current_user

    connection = psycopg2.connect(
        database=current_app.config.get('TEMP_PG_DB'),
        host=current_app.config.get('TEMP_PG_HOST'),
        user=current_app.config.get('TEMP_PG_USER'),
        password=current_app.config.get('TEMP_PG_PASSWORD'),
        sslmode='allow',
    )

    couch = CouchDBBox(current_app.config.get('COUCH_DB_URL'), '%s_%s' % (SystemConfig.AREA_BOX_NAME, user.id))
    schema = couch.layer_schema(layer)
    extend_schema_for_couchdb(schema)
    tablename = 'tmp%s%s' % (user.id, layer)
    tmp_db = TempPGDB(connection=connection, tablename=tablename, schema=schema)
    couch.store_features(layer, tmp_db.load_features(), delete_missing=tmp_db.imported_feature_ids())
    connection.close()

    # write changes back to PostGIS to prevent multiple inserts
    create_wfs(user, [layer])

    signals.features_updated.send(user)

    if ajax:
        return Response(response='success', status=200, headers=None, mimetype='application/json', content_type=None)
Пример #2
0
def write_back(layer=None, ajax=True):
    user = current_user

    connection = psycopg2.connect(
        database=current_app.config.get('TEMP_PG_DB'),
        host=current_app.config.get('TEMP_PG_HOST'),
        user=current_app.config.get('TEMP_PG_USER'),
        password=current_app.config.get('TEMP_PG_PASSWORD'),
        sslmode='allow',
    )

    couch = CouchDBBox(current_app.config.get('COUCH_DB_URL'), '%s_%s' % (SystemConfig.AREA_BOX_NAME, user.id))
    schema = couch.layer_schema(layer)
    extend_schema_for_couchdb(schema)
    tablename = 'tmp%s%s' % (user.id, layer)
    tmp_db = TempPGDB(connection=connection, tablename=tablename, schema=schema)
    couch.store_features(layer, tmp_db.load_features(), delete_missing=tmp_db.imported_feature_ids())
    connection.close()

    signals.features_updated.send(user, layer=layer)

    if ajax:
        return Response(response='success', status=200, headers=None, mimetype='application/json', content_type=None)