diff --git a/CHANGELOG b/CHANGELOG index f4d830dd14b41130d0260bdfad57da9327cdca7a..d20399e26106733cb83bd822086c3dd94252c863 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,12 @@ +smasch (1.0.0~beta.4-1) unstable; urgency=low + + * bug fix: MEDIA_ROOT was overwritten by tests that messed up with + deployment sometimes (#365) + * bug fix: media files were not served in production (#366) + * bug fix: crontab was cleared after debian package updated (#367) + + -- Piotr Gawron <piotr.gawron@uni.lu> Tue, 26 Jan 2021 16:00:00 +0200 + smasch (1.0.0~beta.3-1) unstable; urgency=low * bug fix: upgrade from 0.15 version containing subjects failed diff --git a/debian-template/postinst b/debian-template/postinst index c6f237ddcdbee5217f65bbb0896239ba1ae2bcfe..4d55be22f1298e5c52e624958c10f9a4069e06e3 100644 --- a/debian-template/postinst +++ b/debian-template/postinst @@ -50,9 +50,7 @@ if [ -d /run/systemd/system ]; then systemctl --system daemon-reload >/dev/null || true fi -if [ "$1" = "configure" ] && [ -z "$2" ]; then - crontab -u smasch -l 2>/dev/null | grep -v "runcrons" | { cat; echo "*/5 * * * * . /usr/lib/smasch/env/bin/activate && python /usr/lib/smasch/manage.py runcrons >> /var/log/smasch/cronjob.log 2>&1"; } | crontab -u smasch - -fi +crontab -u smasch -l 2>/dev/null | grep -v "runcrons" | { cat; echo "*/5 * * * * . /usr/lib/smasch/env/bin/activate && python /usr/lib/smasch/manage.py runcrons >> /var/log/smasch/cronjob.log 2>&1"; } | crontab -u smasch - #DEBHELPER# diff --git a/smash/smash/urls.py b/smash/smash/urls.py index a192a4313717c90d01ab3fc0bd8581a5dda95eb5..229328a8202d3f5a77ed622135d097dab9151030 100644 --- a/smash/smash/urls.py +++ b/smash/smash/urls.py @@ -13,20 +13,25 @@ Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ +import re from django.conf import settings from django.conf.urls import url, include -from django.conf.urls.static import static from django.contrib import admin - +from django.urls import re_path +from django.views.static import serve from two_factor.urls import urlpatterns as tf_urls from web import api_urls from web import urls urlpatterns = [ - url(r'^admin/', admin.site.urls), - url(r'', include(urls)), - url(r'^api/', include(api_urls)), - url(r'', include(tf_urls)), - ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + url(r'^admin/', admin.site.urls), + url(r'', include(urls)), + url(r'^api/', include(api_urls)), + url(r'', include(tf_urls)) +] + +if settings.SERVE_STATIC or settings.DEBUG: + urlpatterns.append(re_path(r'^%s(?P<path>.*)$' % re.escape(settings.MEDIA_URL.lstrip('/')), serve, + {'document_root': settings.MEDIA_ROOT})) diff --git a/smash/web/templates/_base.html b/smash/web/templates/_base.html index c198f9da9bd0962eddfeba8c8abc27bc5c6cd951..c7a7abef0592673cfc8d744107f41b475b9c93c9 100644 --- a/smash/web/templates/_base.html +++ b/smash/web/templates/_base.html @@ -256,7 +256,7 @@ desired effect {% block footer %} <!-- To the right --> <div class="pull-right hidden-xs"> - Version: <strong>1.0.0~beta.3</strong> + Version: <strong>1.0.0~beta.4</strong> </div> <!-- Default to the left --> diff --git a/smash/web/tests/__init__.py b/smash/web/tests/__init__.py index 915d82c0bd85fec22b86d0d5f64c16e9f10fd818..bf24a02c5d39827dcfe705b1ce4f57980458e89b 100644 --- a/smash/web/tests/__init__.py +++ b/smash/web/tests/__init__.py @@ -1,15 +1,22 @@ import logging import os +import sys + from django.conf import settings from django.contrib.auth.models import User from django.test import Client from django.test import TestCase -from web.models import Worker -from web.decorators import PermissionDecorator +from web.decorators import PermissionDecorator +from web.models import Worker from .functions import create_worker, create_user, add_permissions_to_worker -settings.MEDIA_ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data') +# if manage.py test was called, use test settings +if 'test' in sys.argv: + try: + settings.MEDIA_ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data') + except ImportError: + pass logger = logging.getLogger(__name__) @@ -19,7 +26,7 @@ class LoggedInTestCase(TestCase): self.password = 'abcd1234' #superuser self.super_worker = create_worker(user=User.objects.create_superuser(username='super', password=self.password, email='a@mail.com')) - #admin + #admin self.admin_worker = Worker.get_by_user(create_user(username='admin', password=self.password)) add_permissions_to_worker(self.admin_worker, PermissionDecorator.codenames) #staff @@ -34,15 +41,15 @@ class LoggedInTestCase(TestCase): def login_as_staff(self): self.client.logout() - self.client.login(username='staff', password=self.password) + self.client.login(username='staff', password=self.password) def login_as_admin(self): self.client.logout() - self.client.login(username='admin', password=self.password) + self.client.login(username='admin', password=self.password) def login_as_super(self): self.client.logout() - self.client.login(username='super', password=self.password) + self.client.login(username='super', password=self.password) class LoggedInWithWorkerTestCase(LoggedInTestCase):