Skip to content

Commit 5b41187

Browse files
committed
WFS-T debugging and using provider for adding features
1 parent 727d66a commit 5b41187

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/mapserver/qgswfsserver.cpp

+12-3
Original file line numberDiff line numberDiff line change
@@ -1168,6 +1168,9 @@ QDomDocument QgsWFSServer::transaction( const QString& requestBody )
11681168
typeName = actionElem.attribute( "typeName" );
11691169
}
11701170

1171+
if ( typeName.contains( ":" ) )
1172+
typeName = typeName.section( ":", 1, 1 );
1173+
11711174
QDomNodeList typeNameList = mDocElem.elementsByTagName( typeName );
11721175
if ( typeNameList.count() == 0 )
11731176
{
@@ -1424,13 +1427,12 @@ QDomDocument QgsWFSServer::transaction( const QString& requestBody )
14241427
}
14251428
// Add the feature to th layer
14261429
// and store it to put it's Feature Id in the response
1427-
layer->addFeature( *f, true );
1428-
inFeatList << *f;
1430+
inFeatList.append( *f );
14291431
}
14301432
}
14311433
}
14321434
// Commit the changes of the insert elements
1433-
if ( !layer->commitChanges() )
1435+
if ( !provider->addFeatures( inFeatList ) )
14341436
{
14351437
QDomElement trElem = doc.createElement( "TransactionResult" );
14361438
QDomElement stElem = doc.createElement( "Status" );
@@ -1444,6 +1446,13 @@ QDomDocument QgsWFSServer::transaction( const QString& requestBody )
14441446
trElem.appendChild( locElem );
14451447

14461448
QDomElement mesElem = doc.createElement( "Message" );
1449+
QStringList mesErrors;
1450+
mesErrors << QString( "ERROR: %n feature(s) not added.").arg(inFeatList.size());
1451+
if ( provider->hasErrors() )
1452+
{
1453+
mesErrors << "\n Provider errors:" << provider->errors();
1454+
provider->clearErrors();
1455+
}
14471456
mesElem.appendChild( doc.createTextNode( layer->commitErrors().join( "\n " ) ) );
14481457
trElem.appendChild( mesElem );
14491458

0 commit comments

Comments
 (0)