diff --git a/.circleci/circleci_settings.py b/.circleci/circleci_settings.py index 9a45dae09d..7922e3e4fa 100644 --- a/.circleci/circleci_settings.py +++ b/.circleci/circleci_settings.py @@ -21,13 +21,8 @@ 'creme.mobile', ]) -GENERATED_MEDIA_NAMES_FILE = BASE_DIR / '_generated_media_names.py' -# NB: "creme_project" same name in config.yml -GENERATED_MEDIA_NAMES_MODULE = 'creme_project._generated_media_names' - -MEDIA_ROOT = BASE_DIR / 'media' / 'upload' STATIC_ROOT = BASE_DIR / 'media' / 'static' - +MEDIA_ROOT = BASE_DIR / 'media' / 'upload' # JOBMANAGER_BROKER = 'redis://@localhost:6379/0' GEOLOCATION_TOWNS = [ diff --git a/.circleci/config.yml b/.circleci/config.yml index 91f2f7e89a..9f9a5ffd22 100755 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -97,6 +97,7 @@ commands: description: Setup Creme static resources steps: - run: creme generatemedia --settings=<< pipeline.parameters.instance_directory >>.settings + - run: creme collectstatic --settings=<< pipeline.parameters.instance_directory >>.settings --no-input setup-creme-unit-tests: description: Setup Creme database @@ -109,6 +110,7 @@ commands: - run: creme migrate --settings=<< pipeline.parameters.instance_directory >>.settings - run: creme creme_populate --settings=<< pipeline.parameters.instance_directory >>.settings - run: creme generatemedia --settings=<< pipeline.parameters.instance_directory >>.settings + - run: creme collectstatic --settings=<< pipeline.parameters.instance_directory >>.settings --no-input run-creme-unit-tests: description: Run Creme unit tests diff --git a/.dockerignore b/.dockerignore index 8104d94b4d..78f52dee90 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,5 @@ -__pycache__/ -*.py[cod] +**/__pycache__/ +**/*.py[cod] .git/ .githooks/ @@ -11,7 +11,6 @@ __pycache__/ # creme/media/upload/*/* # creme/media/static/* # creme/local_settings.py -# creme/_generated_media_names.py # *.sqlite # *.db diff --git a/.eslintignore b/.eslintignore index f9ca67004c..da8e111f2a 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,4 @@ +**/*.min.js **/js/jquery/1.11/* **/js/jquery/1.12/* **/js/jquery/2.x/* @@ -16,7 +17,7 @@ **/js/jquery/ui/* **/js/lib/underscore/* **/js/lib/momentjs/* -**/js/lib/leaflet*.js +**/js/lib/leaflet/* **/js/lib/editor/* **/js/lib/Sortable/* **/js/lib/Select2/* @@ -28,4 +29,4 @@ **/sketch/js/lib/filesaver-*.js !**/sketch/js/lib/d3-radial-axis.js **/tiny_mce/** -**/media/static/** \ No newline at end of file +**/media/static/** diff --git a/.karma.conf.js b/.karma.conf.js index ebc6d20269..7c5aaca97a 100644 --- a/.karma.conf.js +++ b/.karma.conf.js @@ -32,7 +32,7 @@ return paths.map(function(path) { if (isDirectory(path)) { if (path[path.length - 1] !== '/') { - path = path + '/'; + path = path + '/'; } if (path.indexOf('/js/tests/') !== -1) { @@ -72,9 +72,9 @@ module.exports = function(config) { // TODO: use path from the config var commonfiles = [ - staticsPath + '/l10n--' + language + '-*.js', - staticsPath + '/lib*.js', - staticsPath + '/main*.js' + staticsPath + '/' + language + '.js', + staticsPath + '/lib.js', + staticsPath + '/main.js' ]; var qunitfiles = [ @@ -88,7 +88,7 @@ module.exports = function(config) { THEME_NAME: 'icecream' }; var coverageFiles = [ - staticsPath + '/main*.js' + staticsPath + '/main.js' ] var isEmpty = function(s) { diff --git a/Dockerfile b/Dockerfile index afa8421279..ea82c5aef3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,19 +30,23 @@ USER creme_user COPY docker/docker_settings.py /srv/creme/docker_settings.py ENV DJANGO_SETTINGS_MODULE docker_settings +COPY --chown=creme_user:creme_user . /srv/creme/src -RUN --mount=type=bind,source=.,target=/tmp/src \ - --mount=type=cache,target=/srv/creme/.cache,uid=1001 \ - set -eux; \ +RUN set -eux; \ mkdir -p /srv/creme/logs; \ - mkdir -p /srv/creme/data; \ - cp -r /tmp/src /srv/creme/src; \ + mkdir -p /srv/creme/data; + +RUN --mount=type=cache,target=/srv/creme/.cache,uid=1001 \ + set -eux; \ python3 -m venv /srv/creme/venv; \ /srv/creme/venv/bin/pip install --cache-dir=/srv/creme/.cache/pip --upgrade pip setuptools wheel; \ /srv/creme/venv/bin/pip install --cache-dir=/srv/creme/.cache/pip /srv/creme/src[mysql,pgsql]; \ - /srv/creme/venv/bin/pip install --cache-dir=/srv/creme/.cache/pip --upgrade uWSGI supervisor; \ - rm -rf /srv/creme/src; \ - /srv/creme/venv/bin/creme generatemedia; + /srv/creme/venv/bin/pip install --cache-dir=/srv/creme/.cache/pip --upgrade uWSGI supervisor; + +RUN set -eux; \ + /srv/creme/venv/bin/creme generatemedia; \ + /srv/creme/venv/bin/creme collectstatic; \ + rm -rf /srv/creme/src; ENV PATH /srv/creme:/srv/creme/venv/bin:$PATH diff --git a/Makefile b/Makefile index 8de1c8a50e..3aaa8a8e7d 100644 --- a/Makefile +++ b/Makefile @@ -54,6 +54,8 @@ reset-db: ## Install or upgrade nodejs requirements .PHONY: node-update node-update: + pip install --upgrade nodeenv + nodeenv -n 18.15.0 --prebuilt -p npm install --no-save npm run eslint-install @@ -66,6 +68,7 @@ ifeq (${DJANGO_SETTINGS_MODULE},) endif $(eval CREME_MEDIA ?= $(shell creme print_settings --settings=${DJANGO_SETTINGS_MODULE} --skip-checks --no-color STATIC_ROOT --format value)) creme generatemedia --settings=${DJANGO_SETTINGS_MODULE} + creme collectstatic --noinput ## Run the Django test suite diff --git a/creme/billing/templates/billing/bricks/exporters.html b/creme/billing/templates/billing/bricks/exporters.html index 5adac14f2f..ff56034afb 100644 --- a/creme/billing/templates/billing/bricks/exporters.html +++ b/creme/billing/templates/billing/bricks/exporters.html @@ -1,5 +1,5 @@ {% extends 'creme_core/bricks/base/table.html' %} -{% load i18n media creme_bricks %} +{% load i18n static creme_bricks %} {% load url from creme_core_tags %} {% block brick_extra_class %}{{block.super}} billing-exporters-brick{% endblock %} @@ -24,8 +24,8 @@ {{exporter.verbose_name}}
diff --git a/creme/billing/templates/billing/forms/widgets/exporter-option.html b/creme/billing/templates/billing/forms/widgets/exporter-option.html index 1e1848c974..d411f902e4 100644 --- a/creme/billing/templates/billing/forms/widgets/exporter-option.html +++ b/creme/billing/templates/billing/forms/widgets/exporter-option.html @@ -1,12 +1,12 @@ -{% load media %} +{% load static %} {% if widget.wrap_label %}