|
|
@@ -4,6 +4,7 @@
|
|
|
import urlparse
|
|
|
import urllib
|
|
|
from lxml import objectify
|
|
|
+from lxml import etree
|
|
|
import os,sys
|
|
|
import tempfile
|
|
|
import logging
|
|
|
@@ -281,11 +282,24 @@ class OWS:
|
|
|
def setFilter(self,mapobj,request):
|
|
|
""" Set WFS filter encoding
|
|
|
"""
|
|
|
- logging.debug("Setting filter for layer %s to %s" % (request.getValueByName("layers"),request.getValueByName("fes")))
|
|
|
+ # get the layer
|
|
|
layerobj = mapobj.getLayerByName(request.getValueByName("layers"))
|
|
|
- layerobj.setMetaData("wfs_filter",request.getValueByName("fes"))
|
|
|
- # layerobj.metadata.get("wfs_filter") is still fine
|
|
|
-
|
|
|
+
|
|
|
+ # get the filter
|
|
|
+ fes = request.getValueByName("fes")
|
|
|
+ logging.debug("FES received from HSLayers: %s" % fes)
|
|
|
+
|
|
|
+ # cut off the opening and closing <Filter> tag
|
|
|
+ # - this is needed for mapserver
|
|
|
+ root = etree.XML(fes)
|
|
|
+ msFilter = ""
|
|
|
+ for child in root:
|
|
|
+ msFilter += etree.tostring(child)
|
|
|
+ logging.debug("Setting the filter %s" % msFilter)
|
|
|
+
|
|
|
+ # set the filter
|
|
|
+ layerobj.setMetaData("wfs_filter",msFilter)
|
|
|
+
|
|
|
|
|
|
def getService():
|
|
|
|