diff --git a/g3w-admin/qdjango/tests/test_api.py b/g3w-admin/qdjango/tests/test_api.py index 9647883aa..a5737a8ce 100644 --- a/g3w-admin/qdjango/tests/test_api.py +++ b/g3w-admin/qdjango/tests/test_api.py @@ -1137,7 +1137,7 @@ def test_tokenfilter_mode_api(self): self.assertEqual(resp['data'], { 'layer': cities.qgs_layer_id, - 'qgs_expression': '$id NOT IN (6,8,9,0)', + 'qgs_expression': '$id NOT IN (9,8,6,0)', 'name': 'filter 1 layer cities', 'fid': 1, 'state': 'created' @@ -1154,7 +1154,7 @@ def test_tokenfilter_mode_api(self): self.assertEqual(resp['data'], { 'layer': cities.qgs_layer_id, - 'qgs_expression': '$id NOT IN (6,8,9,0)', + 'qgs_expression': '$id NOT IN (9,8,6,0)', 'name': 'filter 1 layer cities', 'fid': 1, 'state': 'updated' @@ -1180,7 +1180,7 @@ def test_tokenfilter_mode_api(self): self.assertEqual(resp['data'], { 'layer': cities.qgs_layer_id, - 'qgs_expression': '$id NOT IN (6,8,9,0) AND $id NOT IN (1,2)', + 'qgs_expression': '$id NOT IN (9,8,6,0) AND $id NOT IN (2,1)', 'name': 'filter 2 layer cities', 'fid': 2, 'state': 'created' @@ -1213,7 +1213,7 @@ def test_tokenfilter_mode_api(self): # Check inside the current fitlertoken token = sf.token - self.assertEqual(sf.stf_layers.all()[0].qgs_expr, '$id NOT IN (6,8,9,0)') + self.assertEqual(sf.stf_layers.all()[0].qgs_expr, '$id NOT IN (9,8,6,0)') # Delete fitler token and apply again to check for new fitler token value SessionTokenFilter.objects.all().delete() @@ -1226,7 +1226,7 @@ def test_tokenfilter_mode_api(self): }, logout=False).content) sf = SessionTokenFilter.objects.all()[0] self.assertFalse(token == sf.token) - self.assertEqual(sf.stf_layers.all()[0].qgs_expr, '$id NOT IN (6,8,9,0)') + self.assertEqual(sf.stf_layers.all()[0].qgs_expr, '$id NOT IN (9,8,6,0)') # Filter for layer check /api/config REST API: resp = json.loads(self._testApiCall('group-project-map-config', diff --git a/g3w-admin/qdjango/vector.py b/g3w-admin/qdjango/vector.py index 42993e2c3..235e99920 100644 --- a/g3w-admin/qdjango/vector.py +++ b/g3w-admin/qdjango/vector.py @@ -41,7 +41,8 @@ from core.utils.qgisapi import ( get_qgis_layer, - get_qgis_featurecount + get_qgis_featurecount, + get_layer_fids_from_server_fids ) from core.utils.structure import mapLayerAttributesFromQgisLayer from core.utils.vector import BaseUserMediaHandler @@ -416,8 +417,19 @@ def _get_sessiontokenfilter(): fidsin = request_data.get('fidsin') fidsout = request_data.get('fidsout') - token_data = {} + # Get layer fids from server fids + if fidsin: + fidsin = get_layer_fids_from_server_fids([str(fid) for fid in fidsin.split(',')], + self.metadata_layer.qgis_layer) + fidsin.reverse() + fidsin = ",".join(map(str, fidsin)) + if fidsout: + fidsout = get_layer_fids_from_server_fids([str(fid) for fid in fidsout.split(',')], + self.metadata_layer.qgis_layer) + fidsout.reverse() + fidsout = ",".join(map(str, fidsout)) + token_data = {} def _create_qgs_expr(s, fidsin=None, fidsout=None): """