From eb5717d53916eb3f5886ddcee2a4111a3ac2dc9f Mon Sep 17 00:00:00 2001 From: rldhont Date: Mon, 30 Mar 2015 21:11:25 +0200 Subject: [PATCH] [BUGFIX] In WFS GetFeature joined fields not are not returned In the WFS GetFeature Request, the joined fields are not returned. It's due to the use of provider instead of layer to retrieve all fields. The correction is to use layer->pendingFields() and layer->pendingAllAttributesList() --- src/server/qgswfsserver.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/server/qgswfsserver.cpp b/src/server/qgswfsserver.cpp index 5cb34085beb..373bb34357a 100644 --- a/src/server/qgswfsserver.cpp +++ b/src/server/qgswfsserver.cpp @@ -463,10 +463,12 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format QgsFeature feature; QgsAttributeMap featureAttributes; - const QgsFields& fields = provider->fields(); + //const QgsFields& fields = provider->fields(); + const QgsFields& fields = layer->pendingFields(); mWithGeom = true; - QgsAttributeList attrIndexes = provider->attributeIndexes(); + //QgsAttributeList attrIndexes = provider->attributeIndexes(); + QgsAttributeList attrIndexes = layer->pendingAllAttributesList(); QDomNodeList queryChildNodes = queryElem.childNodes(); if ( queryChildNodes.size() ) @@ -804,12 +806,14 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format QgsFeature feature; QgsAttributeMap featureAttributes; - const QgsFields& fields = provider->fields(); + //const QgsFields& fields = provider->fields(); + const QgsFields& fields = layer->pendingFields(); //map extent searchRect = layer->extent(); - QgsAttributeList attrIndexes = provider->attributeIndexes(); + //QgsAttributeList attrIndexes = provider->attributeIndexes(); + QgsAttributeList attrIndexes = layer->pendingAllAttributesList(); if ( mPropertyName != "*" ) { QStringList attrList = mPropertyName.split( "," );