diff --git a/docker-run b/docker-run index 4cdc1e385b..b42d507569 100755 --- a/docker-run +++ b/docker-run @@ -49,9 +49,11 @@ def main(): if is_windows else dir_path[1:].replace("/", "-") try: - git_branch = subprocess.check_output([ - "git", "rev-parse", "--abbrev-ref", "HEAD" - ]).decode("utf-8").strip() + git_branch = \ + os.environ['TRAVIS_BRANCH'] if 'TRAVIS_BRANCH' in os.environ else \ + subprocess.check_output([ + "git", "rev-parse", "--abbrev-ref", "HEAD" + ]).decode("utf-8").strip() git_hash = subprocess.check_output([ "git", "rev-parse", "HEAD" ]).decode("utf-8").strip() diff --git a/docker/test-mapserver/Dockerfile b/docker/test-mapserver/Dockerfile index d7d697fb28..d00174d63c 100644 --- a/docker/test-mapserver/Dockerfile +++ b/docker/test-mapserver/Dockerfile @@ -1,3 +1,3 @@ -FROM camptocamp/mapserver:7.0 +FROM camptocamp/mapserver:7.2 LABEL maintainer Camptocamp "info@camptocamp.com" COPY *.map /etc/mapserver/ diff --git a/geoportal/c2cgeoportal_geoportal/lib/dbreflection.py b/geoportal/c2cgeoportal_geoportal/lib/dbreflection.py index bfcdf70943..832a15e27a 100644 --- a/geoportal/c2cgeoportal_geoportal/lib/dbreflection.py +++ b/geoportal/c2cgeoportal_geoportal/lib/dbreflection.py @@ -26,8 +26,7 @@ # The views and conclusions contained in the software and documentation are those # of the authors and should not be interpreted as representing official policies, # either expressed or implied, of the FreeBSD Project. - - +import threading import warnings from typing import Dict, Tuple # noqa, pylint: disable=unused-import @@ -125,6 +124,9 @@ def _get_schema(tablename): return tablename, schema +_get_table_lock = threading.RLock() + + def get_table(tablename, schema=None, session=None, primary_key=None): if schema is None: tablename, schema = _get_schema(tablename) @@ -148,12 +150,13 @@ def get_table(tablename, schema=None, session=None, primary_key=None): if primary_key is not None: # Ensure we have a primary key to be able to edit views args.append(Column(primary_key, Integer, primary_key=True)) - table = Table( - *args, - schema=schema, - autoload=True, - autoload_with=engine - ) + with _get_table_lock: + table = Table( + *args, + schema=schema, + autoload=True, + autoload_with=engine + ) return table diff --git a/geoportal/c2cgeoportal_geoportal/scaffolds/create/docker-compose-build.yaml.mako b/geoportal/c2cgeoportal_geoportal/scaffolds/create/docker-compose-build.yaml.mako index b65c92e65c..fe4fb7fad1 100644 --- a/geoportal/c2cgeoportal_geoportal/scaffolds/create/docker-compose-build.yaml.mako +++ b/geoportal/c2cgeoportal_geoportal/scaffolds/create/docker-compose-build.yaml.mako @@ -15,7 +15,7 @@ services: image: ${docker_base}-config:${docker_tag} mapserver: - image: camptocamp/mapserver:7.0 + image: camptocamp/mapserver:7.2 volumes_from: - config:rw ${service_defaults('mapserver', 80)}\ diff --git a/geoportal/c2cgeoportal_geoportal/scaffolds/create/docker-compose.yaml.mako b/geoportal/c2cgeoportal_geoportal/scaffolds/create/docker-compose.yaml.mako index 16e3b86d2d..ae68d43169 100644 --- a/geoportal/c2cgeoportal_geoportal/scaffolds/create/docker-compose.yaml.mako +++ b/geoportal/c2cgeoportal_geoportal/scaffolds/create/docker-compose.yaml.mako @@ -19,7 +19,7 @@ ${service_defaults('config')}\ ${service_defaults('print', 8080)}\ mapserver: - image: camptocamp/mapserver:7.0 + image: camptocamp/mapserver:7.2 user: www-data volumes_from: - config:rw diff --git a/geoportal/c2cgeoportal_geoportal/scaffolds/create/mapserver/tinyows.xml.tmpl.mako b/geoportal/c2cgeoportal_geoportal/scaffolds/create/mapserver/tinyows.xml.tmpl.mako index fdad87d5b2..1e13812c11 100644 --- a/geoportal/c2cgeoportal_geoportal/scaffolds/create/mapserver/tinyows.xml.tmpl.mako +++ b/geoportal/c2cgeoportal_geoportal/scaffolds/create/mapserver/tinyows.xml.tmpl.mako @@ -1,7 +1,7 @@ diff --git a/geoportal/c2cgeoportal_geoportal/scaffolds/create/vars.yaml_tmpl b/geoportal/c2cgeoportal_geoportal/scaffolds/create/vars.yaml_tmpl index a9ea8c3861..7414b304f2 100644 --- a/geoportal/c2cgeoportal_geoportal/scaffolds/create/vars.yaml_tmpl +++ b/geoportal/c2cgeoportal_geoportal/scaffolds/create/vars.yaml_tmpl @@ -26,7 +26,6 @@ vars: constants: &constants defaultTheme: Demo defaultLang: en - gmfSearchGroups: [osm, district] gmfSearchActions: - action: add_theme title: Add a theme @@ -66,6 +65,9 @@ vars: mobile: <<: *interface redirect_interface: desktop + constants: + <<: *constants + gmfSearchGroups: [] mobile_alt: <<: *interface constants: @@ -76,6 +78,9 @@ vars: <<: *interface redirect_interface: mobile do_redirect: True + constants: + <<: *constants + gmfSearchGroups: [] routes: <<: *routes gmfProfileJsonUrl: profile.json diff --git a/geoportal/c2cgeoportal_geoportal/scaffolds/nondockercreate/vars.yaml_tmpl b/geoportal/c2cgeoportal_geoportal/scaffolds/nondockercreate/vars.yaml_tmpl index 6ee1ccf943..84ba78d404 100644 --- a/geoportal/c2cgeoportal_geoportal/scaffolds/nondockercreate/vars.yaml_tmpl +++ b/geoportal/c2cgeoportal_geoportal/scaffolds/nondockercreate/vars.yaml_tmpl @@ -26,7 +26,6 @@ vars: constants: &constants defaultTheme: Demo defaultLang: en - gmfSearchGroups: [osm, district] gmfSearchActions: - action: add_theme title: Add a theme @@ -66,6 +65,9 @@ vars: mobile: <<: *interface redirect_interface: desktop + constants: + <<: *constants + gmfSearchGroups: [] mobile_alt: <<: *interface constants: @@ -76,6 +78,9 @@ vars: <<: *interface redirect_interface: mobile do_redirect: True + constants: + <<: *constants + gmfSearchGroups: [] routes: <<: *routes gmfProfileJsonUrl: profile.json diff --git a/geoportal/c2cgeoportal_geoportal/scaffolds/update/CONST_vars.yaml_tmpl b/geoportal/c2cgeoportal_geoportal/scaffolds/update/CONST_vars.yaml_tmpl index 38112a1ba5..e6d149ef43 100644 --- a/geoportal/c2cgeoportal_geoportal/scaffolds/update/CONST_vars.yaml_tmpl +++ b/geoportal/c2cgeoportal_geoportal/scaffolds/update/CONST_vars.yaml_tmpl @@ -72,7 +72,7 @@ vars: TINYOWS_URL: http://tinyows:8080/ MAPSERVER_URL: http://mapserver:8080/ PRINT_URL: http://print:8080/print/ - DEVSERVER_URL: http://webpack-dev-server:8080${entry_point} + DEVSERVER_HOST: webpack-dev-server:8080 REDIS_HOST: redis REDIS_PORT: 6379 C2C_REDIS_URL: redis://redis:6379 @@ -272,6 +272,8 @@ vars: - name: geometryValidation # V1 type: boolean - name: excludeProperties # not yet used + - name: customOpenLayersOptions + type: json # WMS - name: directedFilterAttributes type: list @@ -399,7 +401,7 @@ vars: print_url: '{PRINT_URL}' mapserver_url: '{MAPSERVER_URL}' mapcache_url: '{MAPCACHE_URL}' - devserver_url: '{DEVSERVER_URL}' + devserver_url: http://{DEVSERVER_HOST}{entry_point} memcached_host: '{MEMCACHED_HOST}' memcached_port: '{MEMCACHED_PORT}' tilegeneration_sqs_queue: '{TILEGENERATION_SQS_QUEUE}' @@ -596,8 +598,8 @@ runtime_environment: default: http://print:8080/print/ - name: MAPCACHE_URL default: http://mapcache:8080/ - - name: DEVSERVER_URL - default: http://webpack-dev-server:8080/ + - name: DEVSERVER_HOST + default: webpack-dev-server:8080 - name: REDIS_HOST default: redis - name: REDIS_PORT diff --git a/geoportal/c2cgeoportal_geoportal/templates/dynamic.js b/geoportal/c2cgeoportal_geoportal/templates/dynamic.js index 943dfa7c36..f203881c83 100644 --- a/geoportal/c2cgeoportal_geoportal/templates/dynamic.js +++ b/geoportal/c2cgeoportal_geoportal/templates/dynamic.js @@ -28,6 +28,9 @@ wfs_permalink.update(interface_config.get('wfs_permalink', {})) % for name, value in interface_config['constants'].items(): module.constant('${name}', ${json.dumps(value) | n}) % endfor +% if 'gmfSearchGroups' not in interface_config['constants']: + module.constant('gmfSearchGroups', ${json.dumps(fulltextsearch_groups) | n}); +% endif module.constant('langUrls', ${json.dumps(lang_urls) | n}); module.constant('cacheVersion', '${get_cache_version()}'); module.constant('ngeoWfsPermalinkOptions', ${json.dumps(wfs_permalink) | n}); diff --git a/geoportal/c2cgeoportal_geoportal/views/dev.py b/geoportal/c2cgeoportal_geoportal/views/dev.py index 3eb8fc4bdb..037dcdba21 100644 --- a/geoportal/c2cgeoportal_geoportal/views/dev.py +++ b/geoportal/c2cgeoportal_geoportal/views/dev.py @@ -33,7 +33,6 @@ from pyramid.httpexceptions import HTTPFound from pyramid.view import view_config import re -import os logger = logging.getLogger(__name__) @@ -45,8 +44,6 @@ class Dev(Proxy): def __init__(self, request): super().__init__(request) self.dev_url = self.request.registry.settings['devserver_url'] - if 'VISIBLE_ENTRY_POINT' in os.environ: - self.dev_url = self.dev_url.replace('${VISIBLE_ENTRY_POINT}', os.environ['VISIBLE_ENTRY_POINT']) @view_config(route_name='dev') def dev(self): diff --git a/geoportal/tests/functional/test_entry.py b/geoportal/tests/functional/test_entry.py index f42038cb71..eadfafc682 100644 --- a/geoportal/tests/functional/test_entry.py +++ b/geoportal/tests/functional/test_entry.py @@ -1165,7 +1165,7 @@ def test_layer(self): "minResolutionHint": 1.76, "maxResolutionHint": 8.8200000000000003, "public": True, - "queryable": 0, + "queryable": 1, "metadataUrls": [{ "url": "http://example.com/wmsfeatures.metadata", "type": "TC211", diff --git a/travis/docker-compose-build.yaml.mako b/travis/docker-compose-build.yaml.mako index 180e8c63b2..2d25181738 100644 --- a/travis/docker-compose-build.yaml.mako +++ b/travis/docker-compose-build.yaml.mako @@ -23,7 +23,7 @@ ${service_defaults('db', 5432)}\ ${service_defaults('external-db', 5432)}\ mapserver: - image: camptocamp/mapserver:7.0 + image: camptocamp/mapserver:7.2 volumes_from: - config:rw links: diff --git a/travis/docker-compose.yaml.mako b/travis/docker-compose.yaml.mako index 432abe9ab3..53450f31fb 100644 --- a/travis/docker-compose.yaml.mako +++ b/travis/docker-compose.yaml.mako @@ -26,7 +26,7 @@ ${service_defaults('external-db', 5432)}\ ${service_defaults('print', 8080)}\ mapserver: - image: camptocamp/mapserver:7.0 + image: camptocamp/mapserver:7.2 user: www-data volumes_from: - config:rw