diff --git a/conf/compose/Dockerfile.web.local b/Dockerfile similarity index 87% rename from conf/compose/Dockerfile.web.local rename to Dockerfile index bdbc035..654be14 100644 --- a/conf/compose/Dockerfile.web.local +++ b/Dockerfile @@ -3,6 +3,6 @@ ENV PYTHONUNBUFFERED 1 RUN mkdir -p /code/public/ WORKDIR /code COPY requirements /code/requirements -RUN apt-get update && apt-get -y install ghostscript && apt-get clean +RUN apt-get update && apt-get -y install ghostscript && apt-get clean && rm -rf /var/lib/apt/lists/* RUN pip install --upgrade pip && pip install -r requirements/local.txt ADD . /code/ diff --git a/Makefile b/Makefile index fdf1b23..71a13eb 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all help build build-stage virtualenv requirements-local loaddata run migrate shell collectstatic clean worker +.PHONY: all help build virtualenv requirements-local loaddata run migrate shell collectstatic clean worker # target: all - Default target. Does nothing. all: @@ -15,10 +15,6 @@ help: build: docker-compose build -# target: build-stage - Build all docker containers, defined in docker-compose.stage.yml -build-stage: - docker-compose -f docker-compose.stage.yml build - # target: virtualenv - Make virtualenv virtualenv: virtualenv -p python3 env --no-site-packages diff --git a/bin/loaddata.sh b/bin/loaddata.sh deleted file mode 100755 index 8e0366d..0000000 --- a/bin/loaddata.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -python src/manage.py loaddata src/myauth/fixtures/myauth.json -python src/manage.py loaddata src/commons/fixtures/cms.json -python src/manage.py loaddata src/commons/fixtures/djangocms_text_ckeditor.json -python src/manage.py loaddata src/commons/fixtures/sites.json -python src/manage.py loaddata src/customer/fixtures/price.json -python src/manage.py loaddata src/docs/fixtures/country.json -python src/manage.py loaddata src/docs/fixtures/currency.json -python src/manage.py loaddata src/docs/fixtures/measure.json diff --git a/conf/compose/Dockerfile.web.production b/conf/compose/Dockerfile.web.production deleted file mode 100644 index 300d31b..0000000 --- a/conf/compose/Dockerfile.web.production +++ /dev/null @@ -1,8 +0,0 @@ -FROM python:3.6 -ENV PYTHONUNBUFFERED 1 -RUN mkdir -p /code/public/ -WORKDIR /code -COPY requirements /code/requirements -RUN apt-get update && apt-get -y install ghostscript && apt-get clean -RUN pip install --upgrade pip && pip install -r requirements/production.txt -ADD . /code/ diff --git a/docker-compose.stage.yml b/docker-compose.local.yml similarity index 85% rename from docker-compose.stage.yml rename to docker-compose.local.yml index 909747f..182845c 100644 --- a/docker-compose.stage.yml +++ b/docker-compose.local.yml @@ -16,15 +16,16 @@ services: environment: RABBITMQ_DEFAULT_USER: 'dokumentor' RABBITMQ_DEFAULT_PASS: 'dokumentor' - expose: - - "5672" - - "5671" + ports: + - "8080:15672" + - "5672:5672" + - "5671:5671" celery: restart: always build: context: . - dockerfile: conf/compose/Dockerfile.web.local + dockerfile: Dockerfile command: bash -c 'cd src && celery -A dokumentor worker -l info -E' volumes: - .:/code @@ -42,20 +43,20 @@ services: redis: restart: always image: redis:latest - expose: - - '6379' + ports: + - '6379:6379' web: restart: always build: context: . - dockerfile: conf/compose/Dockerfile.web.local + dockerfile: Dockerfile command: bash -c 'python src/manage.py runserver 0.0.0.0:8000' volumes: - .:/code - entrypoint: conf/docker/entrypoint_production.sh + entrypoint: conf/docker/entrypoint.sh ports: - - "18001:8000" + - "8000:8000" env_file: conf/env environment: DJANGO_DB: 'postgres://dokumentor:dokumentor@db:5432/dokumentor' diff --git a/docker-compose.yml b/docker-compose.yml index 981ab72..d2c1467 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,16 +16,12 @@ services: environment: RABBITMQ_DEFAULT_USER: 'dokumentor' RABBITMQ_DEFAULT_PASS: 'dokumentor' - ports: - - "8080:15672" - - "5672:5672" - - "5671:5671" + expose: + - "5672" + - "5671" celery: restart: always - build: - context: . - dockerfile: conf/compose/Dockerfile.web.local command: bash -c 'cd src && celery -A dokumentor worker -l info -E' volumes: - .:/code @@ -43,20 +39,17 @@ services: redis: restart: always image: redis:latest - ports: - - '6379:6379' + expose: + - '6379' web: restart: always - build: - context: . - dockerfile: conf/compose/Dockerfile.web.local command: bash -c 'python src/manage.py runserver 0.0.0.0:8000' volumes: - .:/code - entrypoint: conf/docker/entrypoint.sh + entrypoint: conf/docker/entrypoint_production.sh ports: - - "8000:8000" + - "18001:8000" env_file: conf/env environment: DJANGO_DB: 'postgres://dokumentor:dokumentor@db:5432/dokumentor' diff --git a/requirements/base.txt b/requirements/base.txt index 32fb234..8f2aed3 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,4 +1,4 @@ -Django==1.8 +Django==1.8.18 amqp==2.1.4 anyjson==0.3.3 appdirs==1.4.3 @@ -15,7 +15,7 @@ django-cms==3.4.3 django-filer==1.2.7 django-filter==0.11.0 django-formtools==1.0 -django-mptt==0.7.0 +django-mptt==0.8.7 django-polymorphic==1.0.2 django-sekizai==0.10.0 django-simple-captcha==0.4.2 diff --git a/src/customer/views/documents.py b/src/customer/views/documents.py index 0ed35fd..0eafb96 100644 --- a/src/customer/views/documents.py +++ b/src/customer/views/documents.py @@ -3,7 +3,7 @@ import os import re from django.conf import settings -from django.http import Http404, HttpResponseRedirect, HttpResponseForbidden, HttpResponse +from django.http import Http404, HttpResponseForbidden, HttpResponse from xlwt import easyxf from xlrd import open_workbook @@ -14,7 +14,7 @@ from customer.models import License from customer.utils import raise_if_no_profile -XLS_ROOT = os.path.join(settings.TEMPLATE_DIRS[0], 'xls') +XLS_ROOT = os.path.join(settings.TEMPLATES[0]['DIRS'][0], 'xls') def get_doc(request, order_num=None): diff --git a/src/docs/autocomplete_light_registry.py b/src/docs/autocomplete_light_registry.py index 0c03b16..5518bfa 100644 --- a/src/docs/autocomplete_light_registry.py +++ b/src/docs/autocomplete_light_registry.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +# import autocomplete_light import autocomplete_light from django.db.models import Q diff --git a/src/docs/views/ajax.py b/src/docs/views/ajax.py index 95b87ca..0c8b412 100644 --- a/src/docs/views/ajax.py +++ b/src/docs/views/ajax.py @@ -3,9 +3,7 @@ import simplejson as json from django.http import HttpResponseBadRequest, HttpResponse from django.core import serializers - -# use django.apps.apps.get_model since Django 1.9 -from django.db.models.loading import get_model +from django.apps import apps from docs.models import Invoice from customer.utils import raise_if_no_profile @@ -57,7 +55,7 @@ def toggle_doc_status(request, doc_type, doc_id, doc_attr): raise_if_no_profile(request) - model_ = get_model('docs', doc_type) + model_ = apps.get_model('docs', doc_type) doc = model_.objects.get(company=request.user.profile, pk=doc_id) choices_ = doc._meta.get_field_by_name(doc_attr)[0].get_choices() diff --git a/src/dokumentor/settings/base.py b/src/dokumentor/settings/base.py index 644f23d..bc21b2d 100644 --- a/src/dokumentor/settings/base.py +++ b/src/dokumentor/settings/base.py @@ -72,12 +72,6 @@ STATICFILES_DIRS = ( os.path.join(PROJECT_DIR, 'static'), ) -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', -) - MIDDLEWARE_CLASSES = [ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', @@ -94,14 +88,44 @@ MIDDLEWARE_CLASSES = [ 'src.customer.middleware.ProfileMiddleware', ] +# TEMPLATES = [ +# { +# 'BACKEND': 'django.template.backends.django.DjangoTemplates', +# 'DIRS': [ +# os.path.join(PROJECT_DIR, 'templates'), +# +# ], +# 'APP_DIRS': True, +# 'OPTIONS': { +# 'context_processors': [ +# 'django.contrib.auth.context_processors.auth', +# 'django.template.context_processors.debug', +# 'django.template.context_processors.i18n', +# 'django.template.context_processors.media', +# 'django.template.context_processors.static', +# 'django.template.context_processors.tz', +# 'django.contrib.messages.context_processors.messages', +# 'django.template.context_processors.request', +# 'django.template.context_processors.csrf', +# 'sekizai.context_processors.sekizai', +# 'cms.context_processors.cms_settings', +# 'callback.context_processors.add_forms' +# ], +# }, +# 'loaders': [ +# 'django.template.loaders.filesystem.Loader', +# 'django.template.loaders.app_directories.Loader', +# ] +# }, +# ] + + TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ os.path.join(PROJECT_DIR, 'templates'), - ], - 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.contrib.auth.context_processors.auth', @@ -117,14 +141,14 @@ TEMPLATES = [ 'cms.context_processors.cms_settings', 'callback.context_processors.add_forms' ], + 'loaders': [ + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', + ] }, }, ] -TEMPLATE_DIRS = ( - os.path.join(PROJECT_DIR, 'templates'), -) - ROOT_URLCONF = 'dokumentor.urls' # Python dotted path to the WSGI application used by Django's runserver. @@ -151,6 +175,12 @@ INSTALLED_APPS = [ 'mptt', # utilities for implementing a modified pre-order traversal tree 'menus', # helper for model independent hierarchical website navigation 'sekizai', # for javascript and css management + 'cmsplugin_filer_file', + 'cmsplugin_filer_folder', + 'cmsplugin_filer_link', + 'cmsplugin_filer_image', + 'cmsplugin_filer_teaser', + 'cmsplugin_filer_video', 'captcha', 'yandex_money', 'filer', diff --git a/src/dokumentor/settings/local.py b/src/dokumentor/settings/local.py index 12672b1..ed83245 100644 --- a/src/dokumentor/settings/local.py +++ b/src/dokumentor/settings/local.py @@ -27,3 +27,5 @@ EMAIL_BACKEND = 'eml_email_backend.EmailBackend' EMAIL_FILE_PATH = os.path.join(ROOT_DIR, 'tmp_emails') +# import django +# django.setup()