Skip to content

Commit

Permalink
Merge pull request #3878 from camptocamp/merge23
Browse files Browse the repository at this point in the history
 Merge remote-tracking branch 'origin/2.3'
  • Loading branch information
sbrunner authored Jun 28, 2018
2 parents dbc39f5 + 6cbbd5f commit 2611379
Show file tree
Hide file tree
Showing 125 changed files with 1,462 additions and 1,162 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,15 @@
/admin/npm-packages
/admin/c2cgeoportal_admin/locale/
/admin/c2cgeoportal_admin.egg-info/
/docker/qgisserver/commons/
/docker/admin-build/Dockerfile
/docker/admin-build/npm-packages
/docker/test-db/12-alembic.sql
/docker/test-db/13-alembic-static.sql
/docker/test-mapserver/mapserver.map
/doc/index.rst
/doc/developer/server_side.rst
/doc/integrator/create_application.rst
/doc/integrator/upgrade_application.rst
/dist/
/docker-compose.yaml
Expand Down
14 changes: 9 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,15 @@ script:
- (cd /tmp/travis/nondockertestgeomapfish/; ./docker-run rm /build/c2ctemplate-cache.json)
- "(cd /tmp/travis/nondockertestgeomapfish/; \
./docker-run make --makefile=empty-vars.mk geoportal/config.yaml)"
- (cd /tmp/travis/nondockertestgeomapfish/; ./docker-run make --makefile=travis.mk alembic.ini)
- (cd /tmp/travis/nondockertestgeomapfish/; ./docker-run alembic --name=main upgrade head)
- (cd /tmp/travis/nondockertestgeomapfish/; ./docker-run alembic --name=static upgrade head)
- (cd /tmp/travis/nondockertestgeomapfish/; ./docker-run alembic --name=static downgrade base)
- (cd /tmp/travis/nondockertestgeomapfish/; ./docker-run alembic --name=main downgrade base)
- (cd /tmp/travis/nondockertestgeomapfish/; ./docker-run make --makefile=travis.mk geoportal/alembic.ini)
- "(cd /tmp/travis/nondockertestgeomapfish/; \
./docker-run alembic --config=geoportal/alembic.ini --name=main upgrade head)"
- "(cd /tmp/travis/nondockertestgeomapfish/; \
./docker-run alembic --config=geoportal/alembic.ini --name=static upgrade head)"
- "(cd /tmp/travis/nondockertestgeomapfish/; \
./docker-run alembic --config=geoportal/alembic.ini --name=static downgrade base)"
- "(cd /tmp/travis/nondockertestgeomapfish/; \
./docker-run alembic --config=geoportal/alembic.ini --name=main downgrade base)"
## END FOR NON DOCKER TESTS
- ./docker-run make doc

Expand Down
8 changes: 2 additions & 6 deletions Dockerfile.mako
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,13 @@ RUN \
ttf2eot /usr/lib/node_modules/ngeo/contribs/gmf/fonts/gmf-icons.ttf \
/usr/lib/node_modules/ngeo/contribs/gmf/fonts/gmf-icons.eot && \
ttf2woff /usr/lib/node_modules/ngeo/contribs/gmf/fonts/gmf-icons.ttf \
/usr/lib/node_modules/ngeo/contribs/gmf/fonts/gmf-icons.woff && \
convert /usr/lib/node_modules/ngeo/contribs/gmf/cursors/grab.png \
/usr/lib/node_modules/ngeo/contribs/gmf/cursors/grab.cur && \
convert /usr/lib/node_modules/ngeo/contribs/gmf/cursors/grabbing.png \
/usr/lib/node_modules/ngeo/contribs/gmf/cursors/grabbing.cur
/usr/lib/node_modules/ngeo/contribs/gmf/fonts/gmf-icons.woff

RUN \
mkdir --parents /opt/angular-locale && \
for LANG in en fr de it en-ch fr-ch de-ch it-ch; \
do \
wget -O /opt/angular-locale/angular-locale_$LANG.js https://raw.githubusercontent.com/angular/angular.js/v`grep '"angular"' /usr/lib/node_modules/ngeo/package.json | cut --delimiter \" --fields 4 | tr --delete '\r\n'`/src/ngLocale/angular-locale_$LANG.js; \
curl --output /opt/angular-locale/angular-locale_$LANG.js https://raw.githubusercontent.com/angular/angular.js/v`grep '"angular"' /usr/lib/node_modules/ngeo/package.json | cut --delimiter \" --fields 4 | tr --delete '\r\n'`/src/ngLocale/angular-locale_$LANG.js; \
done

COPY commons /opt/c2cgeoportal_commons
Expand Down
26 changes: 13 additions & 13 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,17 @@ dockerBuild {
sh 'make docker-build'
sh 'docker run --name geomapfish-db --env=POSTGRES_USER=www-data --env=POSTGRES_PASSWORD=www-data --env=POSTGRES_DB=geomapfish --publish=5432:5432 --detach camptocamp/geomapfish-test-db'
sh 'travis/test-upgrade-convert.sh init ${HOME}/workspace'
sh './docker-run travis/status.sh'
sh './docker-run travis/short-make build'
}
stage('Tests') {
checkout scm
parallel 'Lint and test c2cgeoportal': {
sh './docker-run travis/status.sh'
sh './docker-run travis/empty-make help'
sh 'bash -c "test \\"`./docker-run id`\\" == \\"uid=0(root) gid=0(root) groups=0(root)\\""'
sh './docker-run travis/short-make build'
sh './docker-run make doc'
// lint
sh './docker-run make checks'
sh './docker-run travis/status.sh'
// Test return code
sh './docker-run true'
sh 'if ./docker-run false; then false; fi'
Expand Down Expand Up @@ -96,8 +95,6 @@ dockerBuild {
sh '(cd ${HOME}/workspace/testgeomapfish/; git commit -m "Upgrade the po files")'
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-run travis/empty-make --makefile=travis.mk help)'
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-run make --makefile=travis.mk build)'
sh 'cat ${HOME}/workspace/testgeomapfish/testdb/*.sql'
sh 'cat ${HOME}/workspace/testgeomapfish/geoportal/config.yaml'
withCredentials([[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'dockerhub',
Expand All @@ -106,9 +103,12 @@ dockerBuild {
]]) {
try {
sh 'docker login -u "$USERNAME" -p "$PASSWORD"'
sh '(cd ${HOME}/workspace/testgeomapfish/; docker-compose up --force-recreate -d)'
sh '(cd ${HOME}/workspace/testgeomapfish/; docker-compose exec -T geoportal wait-for-db)'
sh './docker-run travis/waitwsgi http://`netstat --route --numeric|grep ^0.0.0.0|awk \'{print($2)}\'`:8080/'
sh '(cd ${HOME}/workspace/testgeomapfish/; docker-compose up -d)'
timeout(time: 2, unit: 'MINUTES') {
sh '(cd ${HOME}/workspace/testgeomapfish/; docker-compose exec -T geoportal wait-for-db)'
sh '(cd ${HOME}/workspace/testgeomapfish/; docker-compose exec -T geoportal create-demo-theme)'
sh './docker-run travis/waitwsgi http://`netstat --route --numeric|grep ^0.0.0.0|awk \'{print($2)}\'`:8080/'
}
for (path in [
'c2c/health_check',
'c2c/health_check?max_level=9',
Expand Down Expand Up @@ -151,12 +151,12 @@ dockerBuild {
-name \\*.py | xargs travis/squote'''
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-run travis/status.sh)'
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-run make --makefile=empty-vars.mk geoportal/config.yaml)'
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-run make --makefile=travis.mk alembic.ini)'
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-run make --makefile=travis.mk geoportal/alembic.ini)'
try {
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-compose-run alembic --name=main upgrade head)'
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-compose-run alembic --name=static upgrade head)'
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-compose-run alembic --name=static downgrade base)'
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-compose-run alembic --name=main downgrade base)'
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-compose-run alembic --config=geoportal/alembic.ini --name=main upgrade head)'
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-compose-run alembic --config=geoportal/alembic.ini --name=static upgrade head)'
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-compose-run alembic --config=geoportal/alembic.ini --name=static downgrade base)'
sh '(cd ${HOME}/workspace/testgeomapfish/; ./docker-compose-run alembic --config=geoportal/alembic.ini --name=main downgrade base)'
} catch (Exception error) {
sh '(cd ${HOME}/workspace/testgeomapfish/; docker-compose --file=docker-compose-build.yaml logs)'
throw error
Expand Down
59 changes: 44 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -65,20 +65,24 @@ ADMIN_SRC_FILES = $(shell ls -1 commons/c2cgeoportal_commons/models/*.py) \

APPS += desktop mobile
APPS_PACKAGE_PATH_NONDOCKER = geoportal/c2cgeoportal_geoportal/scaffolds/nondockercreate/geoportal/+package+_geoportal
APPS_HTML_FILES = $(addprefix $(APPS_PACKAGE_PATH_NONDOCKER)/static-ngeo/js/apps/, $(addsuffix .html.ejs_tmpl, $(APPS)))
APPS_PACKAGE_PATH = geoportal/c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal
APPS_HTML_FILES = $(addprefix $(APPS_PACKAGE_PATH_NONDOCKER)/static-ngeo/js/apps/, $(addsuffix .html.ejs_tmpl, $(APPS)))
APPS_HTML_FILES += $(addprefix $(APPS_PACKAGE_PATH)/static-ngeo/js/apps/, $(addsuffix .html.ejs_tmpl, $(APPS)))
APPS_JS_FILES = $(addprefix $(APPS_PACKAGE_PATH)/static-ngeo/js/apps/Controller, $(addsuffix .js_tmpl, $(APPS)))
APPS_ALT += desktop_alt mobile_alt oeedit oeview
APPS_PACKAGE_PATH_ALT = geoportal/c2cgeoportal_geoportal/scaffolds/update/CONST_create_template/geoportal/+package+_geoportal/
APPS_HTML_FILES += $(addprefix $(APPS_PACKAGE_PATH_ALT)/static-ngeo/js/apps/, $(addsuffix .html.ejs_tmpl, $(APPS_ALT)))
APPS_JS_FILES += $(addprefix $(APPS_PACKAGE_PATH_ALT)/static-ngeo/js/apps/Controller, $(addsuffix .js_tmpl, $(APPS_ALT)))
APPS_FILES = $(APPS_HTML_FILES) $(APPS_JS_FILES) \
$(APPS_PACKAGE_PATH)/static-ngeo/js/apps/contextualdata.html \
$(APPS_PACKAGE_PATH)/static-ngeo/js/apps/image/background-layer-button.png \
$(APPS_PACKAGE_PATH)/static-ngeo/js/apps/image/favicon.ico \
$(APPS_PACKAGE_PATH)/static-ngeo/js/apps/image/logo.png

APPS_ALT += desktop_alt mobile_alt oeedit oeview
APPS_PACKAGE_PATH_ALT_NONDOCKER = geoportal/c2cgeoportal_geoportal/scaffolds/nondockerupdate/CONST_create_template/geoportal/+package+_geoportal
APPS_PACKAGE_PATH_ALT = geoportal/c2cgeoportal_geoportal/scaffolds/update/CONST_create_template/geoportal/+package+_geoportal
APPS_HTML_FILES_ALT = $(addprefix $(APPS_PACKAGE_PATH_ALT_NONDOCKER)/static-ngeo/js/apps/, $(addsuffix .html.ejs_tmpl, $(APPS_ALT)))
APPS_HTML_FILES_ALT += $(addprefix $(APPS_PACKAGE_PATH_ALT)/static-ngeo/js/apps/, $(addsuffix .html.ejs_tmpl, $(APPS_ALT)))
APPS_JS_FILES_ALT += $(addprefix $(APPS_PACKAGE_PATH_ALT)/static-ngeo/js/apps/Controller, $(addsuffix .js_tmpl, $(APPS_ALT)))
APPS_FILES_ALT = $(APPS_HTML_FILES_ALT) $(APPS_JS_FILES_ALT)

.PHONY: help
help:
@echo "Usage: $(MAKE) <target>"
Expand All @@ -103,6 +107,7 @@ docker-build:
.PHONY: build
build: \
docker-build-build \
docker-build-qgisserver \
docker-build-testdb \
prepare-tests

Expand All @@ -122,7 +127,7 @@ clean:
rm --force geoportal/c2cgeoportal_admin/locale/en/LC_MESSAGES/c2cgeoportal_admin.po
rm --recursive --force geoportal/c2cgeoportal_geoportal/static/build
rm --force $(MAKO_FILES:.mako=)
rm --force $(APPS_FILES)
rm --force $(APPS_FILES) $(APPS_FILES_ALT)
rm --force geoportal/tests/functional/alembic.yaml

.PHONY: clean-all
Expand Down Expand Up @@ -177,9 +182,22 @@ docker-build-build: $(shell docker-required --path . --replace-pattern='^test(.*
geoportal/c2cgeoportal_geoportal/scaffolds/nondockerupdate/CONST_create_template/ \
$(MO_FILES) \
$(L10N_PO_FILES) \
$(APPS_FILES)
$(APPS_FILES) \
$(APPS_FILES_ALT)
docker build --build-arg=VERSION=$(VERSION) --tag=$(DOCKER_BASE)-build:$(MAJOR_VERSION) .

docker/qgisserver/commons: commons
rm --recursive --force $@
cp --recursive $< $@
rm --recursive --force $@/c2cgeoportal_commons/alembic
rm $@/tests.yaml.mako
touch $@

.PHONY: docker-build-qgisserver
docker-build-qgisserver: $(shell docker-required --path docker/qgisserver) docker/qgisserver/commons
docker build --tag=$(DOCKER_BASE)-qgisserver:$(MAJOR_VERSION) docker/qgisserver


.PHONY: prepare-tests
prepare-tests: \
geoportal/tests/functional/test.ini \
Expand All @@ -195,9 +213,9 @@ prepare-tests: \

.PHONY: tests
tests:
py.test --color=yes --cov=commons/c2cgeoportal_commons commons/acceptance_tests
py.test --color=yes --cov-append --cov=geoportal/c2cgeoportal_geoportal geoportal/tests
py.test --color=yes --cov-append --cov=admin/c2cgeoportal_admin admin/acceptance_tests
py.test --verbose --color=yes --cov=commons/c2cgeoportal_commons commons/acceptance_tests
py.test --verbose --color=yes --cov-append --cov=geoportal/c2cgeoportal_geoportal geoportal/tests
py.test --verbose --color=yes --cov-append --cov=admin/c2cgeoportal_admin admin/acceptance_tests

.PHONY: flake8
flake8:
Expand Down Expand Up @@ -232,11 +250,11 @@ pylint: $(BUILD_DIR)/commons.timestamp

.PHONY: mypy
mypy:
MYPYPATH=/usr/local/lib/python3.6/site-packages:/opt/c2cwsgiutils \
MYPYPATH=/usr/local/lib/python3.6/dist-packages:/opt/c2cwsgiutils \
mypy --disallow-untyped-defs --strict-optional --follow-imports skip \
commons/c2cgeoportal_commons
# TODO: add --disallow-untyped-defs
MYPYPATH=/usr/local/lib/python3.6/site-packages/ \
MYPYPATH=/usr/local/lib/python3.6/dist-packages/ \
mypy --ignore-missing-imports --strict-optional --follow-imports skip \
geoportal/c2cgeoportal_geoportal \
admin/c2cgeoportal_admin \
Expand Down Expand Up @@ -315,7 +333,7 @@ transifex-init: $(TX_DEPENDENCIES) \
# Import ngeo templates

.PHONY: import-ngeo-apps
import-ngeo-apps: $(APPS_FILES)
import-ngeo-apps: $(APPS_FILES) $(APPS_FILES_ALT)

.PRECIOUS: ngeo
ngeo:
Expand Down Expand Up @@ -348,12 +366,23 @@ $(APPS_PACKAGE_PATH)/static-ngeo/js/apps/Controller%.js_tmpl: ngeo/contribs/gmf/
mkdir --parent $(dir $@)
import-ngeo-apps --js $* $< $@

$(APPS_PACKAGE_PATH_ALT)/static-ngeo/js/apps/%.html.ejs_tmpl: ngeo/contribs/gmf/apps/%/index.html.ejs
$(APPS_PACKAGE_PATH_ALT)/static-ngeo/js/apps/%.html.ejs_tmpl: \
ngeo/contribs/gmf/apps/%/index.html.ejs \
geoportal/c2cgeoportal_geoportal/scaffolds/update/CONST_create_template/
$(PRERULE_CMD)
mkdir --parent $(dir $@)
import-ngeo-apps --html $* $< $@

$(APPS_PACKAGE_PATH_ALT)/static-ngeo/js/apps/Controller%.js_tmpl: ngeo/contribs/gmf/apps/%/Controller.js
$(APPS_PACKAGE_PATH_ALT_NONDOCKER)/static-ngeo/js/apps/%.html.ejs_tmpl: \
ngeo/contribs/gmf/apps/%/index.html.ejs \
geoportal/c2cgeoportal_geoportal/scaffolds/update/CONST_create_template/
$(PRERULE_CMD)
mkdir --parent $(dir $@)
import-ngeo-apps --html --non-docker $* $< $@

$(APPS_PACKAGE_PATH_ALT)/static-ngeo/js/apps/Controller%.js_tmpl: \
ngeo/contribs/gmf/apps/%/Controller.js \
geoportal/c2cgeoportal_geoportal/scaffolds/update/CONST_create_template/
$(PRERULE_CMD)
mkdir --parent $(dir $@)
import-ngeo-apps --js $* $< $@
Expand Down
8 changes: 4 additions & 4 deletions admin/acceptance_tests/user_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,10 +199,7 @@ def test_submit_new(self, pw_gen_mock, smtp_mock, dbsession, test_app):
'id': '',
'username': 'new_user',
'email': 'valid@email.net',
'role_name': 'secretary_2',
'is_password_changed': 'false',
'_password': 'da39a3ee5e6b4b0d3255bfef95601890afd80709',
'temp_password': ''},
'role_name': 'secretary_2'},
status=302)

user = dbsession.query(User). \
Expand All @@ -216,6 +213,9 @@ def test_submit_new(self, pw_gen_mock, smtp_mock, dbsession, test_app):
assert user.username == 'new_user'
assert user.email == 'valid@email.net'
assert user.role_name == 'secretary_2'
assert user.password is not None and len(user.password)
assert user.temp_password is None
assert user.is_password_changed == False

parts = list(email.message_from_string(sender_mock.sendmail.mock_calls[0][1][2]).walk())
assert EXPECTED_WELCOME_MAIL.format('new_user', 'new_user', 'basile') == \
Expand Down
4 changes: 2 additions & 2 deletions admin/c2cgeoportal_admin/views/functionalities.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def index(self):
return super().index()

@view_config(route_name='c2cgeoform_grid',
renderer='json')
renderer='fast_json')
def grid(self):
return super().grid()

Expand All @@ -49,7 +49,7 @@ def save(self):

@view_config(route_name='c2cgeoform_item',
request_method='DELETE',
renderer='json')
renderer='fast_json')
def delete(self):
return super().delete()

Expand Down
4 changes: 2 additions & 2 deletions admin/c2cgeoportal_admin/views/interfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def index(self):
return super().index()

@view_config(route_name='c2cgeoform_grid',
renderer='json')
renderer='fast_json')
def grid(self):
return super().grid()

Expand All @@ -55,7 +55,7 @@ def save(self):

@view_config(route_name='c2cgeoform_item',
request_method='DELETE',
renderer='json')
renderer='fast_json')
def delete(self):
return super().delete()

Expand Down
4 changes: 2 additions & 2 deletions admin/c2cgeoportal_admin/views/layer_groups.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def index(self):
return super().index()

@view_config(route_name='c2cgeoform_grid',
renderer='json')
renderer='fast_json')
def grid(self):
return super().grid()

Expand All @@ -64,7 +64,7 @@ def save(self):

@view_config(route_name='c2cgeoform_item',
request_method='DELETE',
renderer='json')
renderer='fast_json')
def delete(self):
return super().delete()

Expand Down
4 changes: 2 additions & 2 deletions admin/c2cgeoportal_admin/views/layers_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def index(self):
return super().index()

@view_config(route_name='c2cgeoform_grid',
renderer='json')
renderer='fast_json')
def grid(self):
return super().grid()

Expand All @@ -82,7 +82,7 @@ def save(self):

@view_config(route_name='c2cgeoform_item',
request_method='DELETE',
renderer='json')
renderer='fast_json')
def delete(self):
return super().delete()

Expand Down
6 changes: 3 additions & 3 deletions admin/c2cgeoportal_admin/views/layers_wms.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def index(self):
return super().index()

@view_config(route_name='c2cgeoform_grid',
renderer='json')
renderer='fast_json')
def grid(self):
return super().grid()

Expand Down Expand Up @@ -96,7 +96,7 @@ def save(self):

@view_config(route_name='c2cgeoform_item',
request_method='DELETE',
renderer='json')
renderer='fast_json')
def delete(self):
return super().delete()

Expand All @@ -108,7 +108,7 @@ def duplicate(self):

@view_config(route_name='convert_to_wmts',
request_method='POST',
renderer='json')
renderer='fast_json')
def convert_to_wmts(self):
src = self._get_object()
dbsession = self._request.dbsession
Expand Down
Loading

0 comments on commit 2611379

Please sign in to comment.