update dependencies

This commit is contained in:
bkfox 2019-05-11 15:15:57 +02:00
parent 1ebafb5241
commit a951d7a319
13 changed files with 90 additions and 79 deletions

View File

@ -79,7 +79,7 @@ class AircoxMiddleware(object):
tz.activate(pytz.timezone('Europe/Brussels')) tz.activate(pytz.timezone('Europe/Brussels'))
aircox = AircoxInfo() aircox = AircoxInfo()
if request.user.is_authenticated(): if request.user.is_authenticated:
self.init_station(request, aircox) self.init_station(request, aircox)
self.init_timezone(request, aircox) self.init_timezone(request, aircox)

View File

@ -1,9 +1,10 @@
from django.conf.urls import include, url from django.urls import path
import aircox.views as views import aircox.views as views
urls = [ urls = [
url(r'^on_air', views.on_air, name='aircox.on_air'), path('on_air', views.on_air, name='aircox.on_air'),
url(r'^monitor', views.Monitor.as_view(), name='aircox.monitor'), path('monitor', views.Monitor.as_view(), name='aircox.monitor'),
url(r'^stats', views.StatisticsView.as_view(), name='aircox.stats'), path('stats', views.StatisticsView.as_view(), name='aircox.stats'),
] ]

View File

@ -8,16 +8,16 @@ from django.utils.translation import ugettext as _, ugettext_lazy
# pages and panels # pages and panels
from wagtail.contrib.settings.models import BaseSetting, register_setting from wagtail.contrib.settings.models import BaseSetting, register_setting
from wagtail.wagtailcore.models import Page, Orderable, \ from wagtail.core.models import Page, Orderable, \
PageManager, PageQuerySet PageManager, PageQuerySet
from wagtail.wagtailcore.fields import RichTextField from wagtail.core.fields import RichTextField
from wagtail.wagtailimages.edit_handlers import ImageChooserPanel from wagtail.images.edit_handlers import ImageChooserPanel
from wagtail.wagtailadmin.edit_handlers import FieldPanel, FieldRowPanel, \ from wagtail.admin.edit_handlers import FieldPanel, FieldRowPanel, \
MultiFieldPanel, InlinePanel, PageChooserPanel, StreamFieldPanel MultiFieldPanel, InlinePanel, PageChooserPanel, StreamFieldPanel
from wagtail.wagtailsearch import index from wagtail.search import index
# snippets # snippets
from wagtail.wagtailsnippets.models import register_snippet from wagtail.snippets.models import register_snippet
# tags # tags
from modelcluster.fields import ParentalKey from modelcluster.fields import ParentalKey
@ -40,6 +40,7 @@ from aircox_cms.utils import image_url
class WebsiteSettings(BaseSetting): class WebsiteSettings(BaseSetting):
station = models.OneToOneField( station = models.OneToOneField(
aircox.models.Station, aircox.models.Station,
models.SET_NULL,
verbose_name = _('aircox station'), verbose_name = _('aircox station'),
related_name = 'website_settings', related_name = 'website_settings',
unique = True, unique = True,
@ -70,6 +71,7 @@ class WebsiteSettings(BaseSetting):
) )
list_page = models.ForeignKey( list_page = models.ForeignKey(
'aircox_cms.DynamicListPage', 'aircox_cms.DynamicListPage',
on_delete=models.CASCADE,
verbose_name = _('page for lists'), verbose_name = _('page for lists'),
help_text=_('page used to display the results of a search and other ' help_text=_('page used to display the results of a search and other '
'lists'), 'lists'),
@ -121,6 +123,7 @@ class WebsiteSettings(BaseSetting):
# done manually, when the user edit it. # done manually, when the user edit it.
) )
) )
default_programs_page = ParentalKey( default_programs_page = ParentalKey(
Page, Page,
verbose_name = _('default programs page'), verbose_name = _('default programs page'),
@ -133,7 +136,7 @@ class WebsiteSettings(BaseSetting):
# /doc/ (technicians, admin): if the page has not been created, # /doc/ (technicians, admin): if the page has not been created,
# it still can be created using the `programs_to_cms` command. # it still can be created using the `programs_to_cms` command.
), ),
limit_choices_to = lambda: { limit_choices_to = {
'show_in_menus': True, 'show_in_menus': True,
'publication__isnull': False, 'publication__isnull': False,
}, },
@ -167,6 +170,7 @@ class WebsiteSettings(BaseSetting):
class Comment(models.Model): class Comment(models.Model):
publication = models.ForeignKey( publication = models.ForeignKey(
Page, Page,
on_delete=models.CASCADE,
verbose_name = _('page') verbose_name = _('page')
) )
published = models.BooleanField( published = models.BooleanField(

View File

@ -16,10 +16,10 @@ from django.utils.translation import ugettext as _, ugettext_lazy
from django.utils import timezone as tz from django.utils import timezone as tz
from django.utils.functional import cached_property from django.utils.functional import cached_property
from wagtail.wagtailadmin.edit_handlers import * from wagtail.admin.edit_handlers import *
from wagtail.wagtailcore.models import Page, Orderable from wagtail.core.models import Page, Orderable
from wagtail.wagtailimages.models import Image from wagtail.images.models import Image
from wagtail.wagtailimages.edit_handlers import ImageChooserPanel from wagtail.images.edit_handlers import ImageChooserPanel
from aircox_cms.utils import related_pages_filter from aircox_cms.utils import related_pages_filter

View File

@ -10,11 +10,11 @@ from django.urls import reverse
from modelcluster.models import ClusterableModel from modelcluster.models import ClusterableModel
from modelcluster.fields import ParentalKey from modelcluster.fields import ParentalKey
from wagtail.wagtailadmin.edit_handlers import * from wagtail.admin.edit_handlers import *
from wagtail.wagtailimages.edit_handlers import ImageChooserPanel from wagtail.images.edit_handlers import ImageChooserPanel
from wagtail.wagtailcore.models import Page from wagtail.core.models import Page
from wagtail.wagtailcore.fields import RichTextField from wagtail.core.fields import RichTextField
from wagtail.wagtailsnippets.models import register_snippet from wagtail.snippets.models import register_snippet
import aircox.models import aircox.models
from aircox_cms.models.lists import * from aircox_cms.models.lists import *
@ -52,6 +52,7 @@ class Region(ClusterableModel):
) )
model = models.ForeignKey( model = models.ForeignKey(
ContentType, ContentType,
on_delete=models.CASCADE,
verbose_name = _('model'), verbose_name = _('model'),
blank = True, null = True, blank = True, null = True,
help_text=_('this section is displayed only when the current ' help_text=_('this section is displayed only when the current '
@ -60,6 +61,7 @@ class Region(ClusterableModel):
) )
page = models.ForeignKey( page = models.ForeignKey(
Page, Page,
on_delete=models.CASCADE,
verbose_name = _('page'), verbose_name = _('page'),
blank = True, null = True, blank = True, null = True,
help_text=_('this section is displayed only on this page'), help_text=_('this section is displayed only on this page'),
@ -218,7 +220,7 @@ class SectionText(Section):
] ]
def get_context(self, request, page): def get_context(self, request, page):
from wagtail.wagtailcore.rich_text import expand_db_html from wagtail.core.rich_text import expand_db_html
context = super().get_context(request, page) context = super().get_context(request, page)
context['content'] = expand_db_html(self.body) context['content'] = expand_db_html(self.body)
return context return context
@ -232,6 +234,7 @@ class SectionImage(SectionRelativeItem):
image = models.ForeignKey( image = models.ForeignKey(
'wagtailimages.Image', 'wagtailimages.Image',
on_delete=models.CASCADE,
verbose_name = _('image'), verbose_name = _('image'),
related_name='+', related_name='+',
blank=True, null=True, blank=True, null=True,
@ -307,7 +310,7 @@ class SectionImage(SectionRelativeItem):
return self.cache return self.cache
def get_context(self, request, page): def get_context(self, request, page):
from wagtail.wagtailimages.views.serve import generate_signature from wagtail.images.views.serve import generate_signature
context = super().get_context(request, page) context = super().get_context(request, page)
image = self.related_attr(page, 'cover') or self.image image = self.related_attr(page, 'cover') or self.image
@ -461,11 +464,13 @@ class SectionTimetable(Section,DatedBaseList):
station = models.ForeignKey( station = models.ForeignKey(
aircox.models.Station, aircox.models.Station,
on_delete=models.CASCADE,
verbose_name = _('station'), verbose_name = _('station'),
help_text = _('(required) related station') help_text = _('(required) related station')
) )
target = models.ForeignKey( target = models.ForeignKey(
'aircox_cms.TimetablePage', 'aircox_cms.TimetablePage',
on_delete=models.CASCADE,
verbose_name = _('timetable page'), verbose_name = _('timetable page'),
blank = True, null = True, blank = True, null = True,
help_text = _('select a timetable page used to show complete timetable'), help_text = _('select a timetable page used to show complete timetable'),

View File

@ -5,7 +5,7 @@ from django.dispatch import receiver
from django.utils import timezone as tz from django.utils import timezone as tz
from django.utils.translation import ugettext as _, ugettext_lazy from django.utils.translation import ugettext as _, ugettext_lazy
from wagtail.wagtailcore.models import Page, Site, PageRevision from wagtail.core.models import Page, Site, PageRevision
import aircox.models as aircox import aircox.models as aircox
import aircox_cms.models as models import aircox_cms.models as models

View File

@ -1,6 +1,6 @@
from django.db import models from django.db import models
from django.template.loader import render_to_string from django.template.loader import render_to_string
from wagtail.wagtailcore.utils import camelcase_to_underscore from wagtail.core.utils import camelcase_to_underscore
class TemplateMixin(models.Model): class TemplateMixin(models.Model):

View File

@ -1,14 +1,14 @@
import inspect import inspect
from django.core.urlresolvers import reverse from django.urls import reverse
from wagtail.wagtailcore.models import Page from wagtail.core.models import Page
def image_url(image, filter_spec): def image_url(image, filter_spec):
""" """
Return an url for the given image -- shortcut function for Return an url for the given image -- shortcut function for
wagtailimages' serve. wagtailimages' serve.
""" """
from wagtail.wagtailimages.views.serve import generate_signature from wagtail.images.views.serve import generate_signature
signature = generate_signature(image.id, filter_spec) signature = generate_signature(image.id, filter_spec)
url = reverse('wagtailimages_serve', args=(signature, image.id, filter_spec)) url = reverse('wagtailimages_serve', args=(signature, image.id, filter_spec))
url += image.file.name[len('original_images/'):] url += image.file.name[len('original_images/'):]

View File

@ -4,7 +4,7 @@ from django.db import models
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from wagtail.wagtailcore.utils import camelcase_to_underscore from wagtail.core.utils import camelcase_to_underscore
class Component: class Component:

View File

@ -1,19 +1,19 @@
import json import json
from django.utils import timezone as tz from django.urls import reverse
from django.utils.translation import ugettext_lazy as _
from django.core.urlresolvers import reverse
from django.forms import SelectMultiple, TextInput from django.forms import SelectMultiple, TextInput
from django.contrib.staticfiles.templatetags.staticfiles import static from django.contrib.staticfiles.templatetags.staticfiles import static
from django.utils.html import format_html from django.utils.html import format_html
from django.utils import timezone as tz
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from wagtail.wagtailcore import hooks from wagtail.core import hooks
from wagtail.wagtailadmin.menu import MenuItem, Menu, SubmenuMenuItem from wagtail.admin.menu import MenuItem, Menu, SubmenuMenuItem
from wagtail.wagtailcore.models import PageRevision from wagtail.core.models import PageRevision
from wagtail.contrib.modeladmin.options import \ from wagtail.contrib.modeladmin.options import \
ModelAdmin, ModelAdminGroup, modeladmin_register ModelAdmin, ModelAdminGroup, modeladmin_register
from wagtail.wagtailadmin.edit_handlers import FieldPanel, FieldRowPanel, \ from wagtail.admin.edit_handlers import FieldPanel, FieldRowPanel, \
MultiFieldPanel, InlinePanel, PageChooserPanel, StreamFieldPanel MultiFieldPanel, InlinePanel, PageChooserPanel, StreamFieldPanel

View File

@ -119,17 +119,17 @@ INSTALLED_APPS = (
'aircox_cms', 'aircox_cms',
'jet', 'jet',
'wagtail.wagtailforms', 'wagtail.contrib.forms',
'wagtail.wagtailredirects', 'wagtail.contrib.redirects',
'wagtail.wagtailembeds', 'wagtail.embeds',
'wagtail.wagtailsites', 'wagtail.sites',
'wagtail.wagtailusers', 'wagtail.users',
'wagtail.wagtailsnippets', 'wagtail.snippets',
'wagtail.wagtaildocs', 'wagtail.documents',
'wagtail.wagtailimages', 'wagtail.images',
'wagtail.wagtailsearch', 'wagtail.search',
'wagtail.wagtailadmin', 'wagtail.admin',
'wagtail.wagtailcore', 'wagtail.core',
'wagtail.contrib.settings', 'wagtail.contrib.settings',
'wagtail.contrib.modeladmin', 'wagtail.contrib.modeladmin',
@ -157,8 +157,8 @@ MIDDLEWARE = (
'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware', 'django.middleware.security.SecurityMiddleware',
'wagtail.wagtailcore.middleware.SiteMiddleware', 'wagtail.core.middleware.SiteMiddleware',
'wagtail.wagtailredirects.middleware.RedirectMiddleware', 'wagtail.contrib.redirects.middleware.RedirectMiddleware',
'aircox.middleware.AircoxMiddleware' 'aircox.middleware.AircoxMiddleware'
) )

View File

@ -13,37 +13,41 @@ Including another URLconf
1. Add an import: from blog import urls as blog_urls 1. Add an import: from blog import urls as blog_urls
2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls)) 2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls))
""" """
from django.conf.urls import include, url from django.conf import settings
from django.urls import include, path, re_path
from django.contrib import admin from django.contrib import admin
from instance import settings
from wagtail.wagtailadmin import urls as wagtailadmin_urls from wagtail.admin import urls as wagtailadmin_urls
from wagtail.wagtaildocs import urls as wagtaildocs_urls from wagtail.documents import urls as wagtaildocs_urls
from wagtail.wagtailcore import urls as wagtail_urls from wagtail.core import urls as wagtail_urls
from wagtail.wagtailimages.views.serve import ServeView from wagtail.images.views.serve import ServeView
import aircox.urls import aircox.urls
try:
urlpatterns = [
path('jet/', include('jet.urls', 'jet')),
path('admin/', admin.site.urls),
path('aircox/', include(aircox.urls.urls)),
urlpatterns = [ # cms
url(r'^jet/', include('jet.urls', 'jet')), path('cms/', include(wagtailadmin_urls)),
url(r'^admin/', include(admin.site.urls)), path('documents/', include(wagtaildocs_urls)),
url(r'^aircox/', include(aircox.urls.urls)), re_path( r'^images/([^/]*)/(\d*)/([^/]*)/[^/]*$', ServeView.as_view(),
name='wagtailimages_serve'),
]
# cms if settings.DEBUG:
url(r'^cms/', include(wagtailadmin_urls)), from django.views.static import serve
url(r'^documents/', include(wagtaildocs_urls)), urlpatterns.append(
url( r'^images/([^/]*)/(\d*)/([^/]*)/[^/]*$', ServeView.as_view(), re_path(r'^media/(?P<path>.*)$', serve,
name='wagtailimages_serve'), {'document_root': settings.MEDIA_ROOT, 'show_indexes':True}
] )
if settings.DEBUG:
from django.views.static import serve
urlpatterns.append(
url(r'^media/(?P<path>.*)$', serve,
{'document_root': settings.MEDIA_ROOT, 'show_indexes':True}
) )
)
urlpatterns.append(url(r'', include(wagtail_urls))) urlpatterns.append(re_path(r'', include(wagtail_urls)))
except Exception as e:
import traceback
traceback.print_exc()

View File

@ -1,15 +1,12 @@
gunicorn>=19.6.0 gunicorn>=19.6.0
Django>=1.10.3,<2.0 Django>=2.2.0
wagtail>=1.5.3,<2.0 wagtail>=2.4
django-taggit>=0.18.3
watchdog>=0.8.3 watchdog>=0.8.3
psutil>=5.0.1 psutil>=5.0.1
pyyaml>=3.12 pyyaml>=3.12
dateutils>=0.6.6 dateutils>=0.6.6
bleach>=1.4.3 bleach>=1.4.3
django-overextends>=0.4.2 django-auth-ldap>=1.7.0
Pillow>=3.3.0
django-modelcluster==2.0
django-honeypot>=0.5.0 django-honeypot>=0.5.0
django-jet>=1.0.3 django-jet>=1.0.3
mutagen>=1.37 mutagen>=1.37