[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()
This commit is contained in:
rldhont 2015-03-30 21:11:25 +02:00
parent b6a419439e
commit eb5717d539

View File

@ -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( "," );