diff --git a/config/settings/base.py b/config/settings/base.py index 625ea01..bc6f4b4 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -226,6 +226,7 @@ ] WAGTAILMODELTRANSLATION_TRANSLATE_SLUGS = False +WAGTAILMODELTRANSLATION_LOCALE_PICKER_DEFAULT = ('de', 'en') # WAGTAIL WAGTAIL_SITE_NAME = 'MPI CMS' diff --git a/mpicms/base/apps.py b/mpicms/base/apps.py index 2b327fc..985fc48 100644 --- a/mpicms/base/apps.py +++ b/mpicms/base/apps.py @@ -6,4 +6,4 @@ class BaseAppConfig(AppConfig): verbose_name = "Base" def ready(self): - import mpicms.base.signals + import mpicms.base.signals # noqa: F401 diff --git a/mpicms/base/blocks.py b/mpicms/base/blocks.py index 819c3d3..41dee5f 100644 --- a/mpicms/base/blocks.py +++ b/mpicms/base/blocks.py @@ -42,7 +42,7 @@ class MenuBlock(blocks.StructBlock): ('url', blocks.URLBlock(label=_('URL'))) ], label=_('Items')) ) - + class Meta: - icon = 'list-ul' - label = _('Menu') \ No newline at end of file + icon = 'list-ul' + label = _('Menu') diff --git a/mpicms/base/models.py b/mpicms/base/models.py index c6522cf..abccb72 100644 --- a/mpicms/base/models.py +++ b/mpicms/base/models.py @@ -126,6 +126,7 @@ class Meta: # noqa verbose_name = _("wiki page") verbose_name_plural = _("wiki pages") + class PhonelistPage(BasePage): content_panels = Page.content_panels promote_panels = Page.promote_panels @@ -143,9 +144,11 @@ def serve(self, request, *args, **kwargs): def serve_preview(self, request, mode_name): return ContactListView.as_view()(request) + class FormField(AbstractFormField): page = ParentalKey('FormPage', on_delete=models.CASCADE, related_name='form_fields') + class FormPage(AbstractEmailForm, SideBarMixin, BasePage): intro = RichTextField(blank=True) thank_you_text = RichTextField(blank=True) diff --git a/mpicms/base/signals.py b/mpicms/base/signals.py index 2d62081..03e3976 100644 --- a/mpicms/base/signals.py +++ b/mpicms/base/signals.py @@ -16,10 +16,10 @@ def notify_user(sender, instance, action, model, pk_set, **kwargs): groups = ', '.join([group.__str__() for group in model.objects.filter(pk__in=pk_set)]) send_mail( f'You have been added to {groups}', - f'An admin has added you to the following group/groups: {groups}. You are now granted all associated permissons.', + f'An admin has added you to the following group/groups: {groups}.' + f' You are now granted all associated permissons.', settings.DEFAULT_FROM_EMAIL, [instance.email], fail_silently=True, ) logger.debug(f'User {instance} added to {groups}. Email sent out.') - diff --git a/mpicms/base/templatetags/base_tags.py b/mpicms/base/templatetags/base_tags.py index 5df90d4..d6ee1b2 100644 --- a/mpicms/base/templatetags/base_tags.py +++ b/mpicms/base/templatetags/base_tags.py @@ -21,7 +21,7 @@ def is_subscribed(page, user): @register.filter def remove_i18n(url): if url.startswith('/en') or url.startswith('/de'): - return url[3:] + return url[3:] return url @@ -41,15 +41,16 @@ def remove_i18n(url): r"|HS\d\d" r"|GH[01]\d" r"|[K0123]\.[1234]\.F?\d\d" - r"|SR ?([1234])" ) + r"|SR ?([1234])") -SR_MAP= { +SR_MAP = { "1": "0.3.73", "2": "0.3.05", "3": "0.3.06", "4": "0.2.01", } + def room_match_to_link(match): room = match.group(0) target_room = room @@ -59,9 +60,10 @@ def room_match_to_link(match): target_room = SR_MAP[sr_number] return '' + room + '' + @register.filter(needs_autoescape=True) @stringfilter def add_room_links(rooms, autoescape=True): - if autoescape: - rooms = conditional_escape(rooms) - return mark_safe(ROOM_PATTERN.sub(room_match_to_link, rooms)) + if autoescape: + rooms = conditional_escape(rooms) + return mark_safe(ROOM_PATTERN.sub(room_match_to_link, rooms)) diff --git a/mpicms/base/templatetags/md_tags.py b/mpicms/base/templatetags/md_tags.py index 9b78149..6e90a59 100644 --- a/mpicms/base/templatetags/md_tags.py +++ b/mpicms/base/templatetags/md_tags.py @@ -12,6 +12,7 @@ register = template.Library() md_processor = None + @register.filter def markdown(text): global md_processor diff --git a/mpicms/base/translation.py b/mpicms/base/translation.py index 1d247a9..f54fbdf 100644 --- a/mpicms/base/translation.py +++ b/mpicms/base/translation.py @@ -9,7 +9,7 @@ from .models import ( WikiPage, RootPage, HomePage, FeaturedImage, PhonelistPage, - FormPage, FormField, + FormPage, ) @@ -20,6 +20,7 @@ class FeaturedImageTR(TranslationOptions): 'text' ) + @register(RootPage) class RootPageTR(TranslationOptions): fields = { @@ -27,6 +28,7 @@ class RootPageTR(TranslationOptions): 'quick_links' } + @register(HomePage) class HomePageTR(TranslationOptions): fields = ( @@ -34,6 +36,7 @@ class HomePageTR(TranslationOptions): 'sidebar' ) + @register(WikiPage) class WikiPageTR(TranslationOptions): fields = ( @@ -41,11 +44,13 @@ class WikiPageTR(TranslationOptions): 'sidebar' ) + @register(PhonelistPage) class PhonelistPageTR(TranslationOptions): fields = ( ) + @register(FormPage) class FormPageTR(TranslationOptions): fields = ( diff --git a/mpicms/base/wagtail_hooks.py b/mpicms/base/wagtail_hooks.py index 0dd1963..cfe80df 100644 --- a/mpicms/base/wagtail_hooks.py +++ b/mpicms/base/wagtail_hooks.py @@ -37,17 +37,22 @@ def register_h1_feature(features): @hooks.register('register_admin_menu_item') def register_site_button(): - return MenuItem(_('View website'), '/?', classnames='icon icon-site', order=1) # Without the ? Wagtail applies different CSS + # Without the ? Wagtail applies different CSS + return MenuItem(_('View website'), '/?', classnames='icon icon-site', order=1) + @hooks.register('after_edit_page') def send_notifications(request, page): subscribers = [user.email for user in page.subscribers.exclude(id=request.user.id)] if subscribers: - html_message = f'''View changes\n + html_message = f'''\ +View changes + Edited by {request.user}. You are receiving this message because you subscribed to updates for page {page.get_admin_display_title()}. -Log in to the admin interface and click here to unsubscribe.''' +Log in to the admin interface and click here to unsubscribe.''' send_mail( f'Page {page.get_admin_display_title()} edited.', @@ -58,10 +63,12 @@ def send_notifications(request, page): fail_silently=True) logger.debug(f'Send change notification to {subscribers}') + @hooks.register('construct_page_action_menu') def remove_submit_to_moderator_option(menu_items, request, context): menu_items[:] = [item for item in menu_items if item.name != 'action-submit'] + class FeaturedImageAdmin(ModelAdmin): model = FeaturedImage menu_label = _('Featured Images') diff --git a/mpicms/events/views.py b/mpicms/events/views.py index 6497e73..bbf5b98 100644 --- a/mpicms/events/views.py +++ b/mpicms/events/views.py @@ -5,6 +5,6 @@ def ics_view(request): index = EventIndex.objects.first() - response = HttpResponse(index.ics, content_type="text/calendar") + response = HttpResponse(index.ics, content_type="text/calendar") response["Content-disposition"] = "attachment; filename=calendar.ics" return response diff --git a/mpicms/personal/models.py b/mpicms/personal/models.py index c7c87a4..e7c8035 100644 --- a/mpicms/personal/models.py +++ b/mpicms/personal/models.py @@ -106,7 +106,7 @@ class Contact(index.Indexed, ClusterableModel): objects = ContactManager() panels = [ - MultiFieldPanel([ + MultiFieldPanel([ FieldPanel('title', classname=''), FieldPanel('first_name'), FieldPanel('last_name'), diff --git a/mpicms/personal/wagtail_hooks.py b/mpicms/personal/wagtail_hooks.py index c82d654..d82fd56 100644 --- a/mpicms/personal/wagtail_hooks.py +++ b/mpicms/personal/wagtail_hooks.py @@ -49,7 +49,8 @@ def get_groups(self, obj): get_groups.short_description = _('Groups') def get_positions(self, obj): - return ", ".join([position.__str__() for position in Position.objects.filter(contacts__in=obj.positions.all()).distinct()]) + return ", ".join([position.__str__() for position in + Position.objects.filter(contacts__in=obj.positions.all()).distinct()]) get_groups.short_description = _('Positions') def get_queryset(self, request): diff --git a/mpicms/users/urls.py b/mpicms/users/urls.py index 255c5f2..275bd9d 100644 --- a/mpicms/users/urls.py +++ b/mpicms/users/urls.py @@ -1,16 +1,17 @@ from django.urls import re_path -from django.views import defaults as default_views - -from wagtail.users.views import users +from django.http import Http404 from .views import edit -app_name = 'wagtailusers_users' +def forbidden_view(request): + raise Http404("disabled") + + +app_name = 'mpicms_users' + urlpatterns = [ - re_path(r'^$', users.index, name='index'), - re_path(r'^add/$', default_views.page_not_found, - kwargs={"exception": Exception("Page not Found")}, name='add'), + re_path(r'^add/$', forbidden_view), re_path(r'^([^\/]+)/$', edit, name='edit'), - re_path(r'^([^\/]+)/delete/$', default_views.page_not_found, name='delete'), + re_path(r'^([^\/]+)/delete/$', forbidden_view), ] diff --git a/mpicms/users/wagtail_hooks.py b/mpicms/users/wagtail_hooks.py deleted file mode 100644 index 65ed6a3..0000000 --- a/mpicms/users/wagtail_hooks.py +++ /dev/null @@ -1,12 +0,0 @@ -from django.conf.urls import include, url - -from wagtail.core import hooks - -from . import urls - - -@hooks.register('register_admin_urls') -def register_admin_urls(): - return [ - url(r'^users/', include(urls, namespace='wagtailusers_users')), - ] diff --git a/requirements/base.in b/requirements/base.in index 45594a4..ec5640a 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -6,7 +6,7 @@ psycopg2-binary # Wagtail wagtail -wagtail-modeltranslation +git+https://github.com/buczek/wagtail-modeltranslation.git@add-toggle-configure markdown pygments diff --git a/requirements/base.txt b/requirements/base.txt index cfb7408..91e7ff3 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -9,29 +9,29 @@ asgiref==3.2.10 # via django beautifulsoup4==4.8.2 # via wagtail certifi==2020.6.20 # via requests chardet==3.0.4 # via requests -django-auth-ldap==2.2.0 +django-auth-ldap==2.2.0 # via -r base.in django-filter==2.3.0 # via wagtail django-modelcluster==5.0.2 # via wagtail django-modeltranslation==0.15.1 # via wagtail-modeltranslation django-taggit==1.3.0 # via wagtail django-treebeard==4.3.1 # via wagtail -django==3.1 +django==3.1 # via -r base.in, django-auth-ldap, django-filter, django-modeltranslation, django-taggit, django-treebeard, djangorestframework, wagtail djangorestframework==3.11.1 # via wagtail draftjs-exporter==2.1.7 # via wagtail et-xmlfile==1.0.1 # via openpyxl html5lib==1.1 # via wagtail -ics==0.7 +ics==0.7 # via -r base.in idna==2.10 # via requests importlib-metadata==1.7.0 # via markdown jdcal==1.4.1 # via openpyxl l18n==2018.5 # via wagtail -markdown==3.2.2 +markdown==3.2.2 # via -r base.in openpyxl==3.0.4 # via tablib pillow==7.2.0 # via wagtail -psycopg2-binary==2.8.5 +psycopg2-binary==2.8.5 # via -r base.in pyasn1-modules==0.2.8 # via python-ldap pyasn1==0.4.8 # via pyasn1-modules, python-ldap -pygments==2.6.1 +pygments==2.6.1 # via -r base.in python-dateutil==2.8.1 # via arrow, ics python-ldap==3.3.1 # via django-auth-ldap pytz==2020.1 # via django, django-modelcluster, l18n @@ -43,8 +43,8 @@ tablib[xls,xlsx]==2.0.0 # via wagtail tatsu==4.4.0 # via ics unidecode==1.1.1 # via wagtail urllib3==1.25.10 # via requests -wagtail-modeltranslation==0.10.13 -wagtail==2.10 +git+https://github.com/buczek/wagtail-modeltranslation.git@add-toggle-configure # via -r base.in +wagtail==2.10 # via -r base.in, wagtail-modeltranslation webencodings==0.5.1 # via html5lib willow==1.4 # via wagtail xlrd==1.2.0 # via tablib diff --git a/requirements/dev.txt b/requirements/dev.txt index bfa89fe..28bd067 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,97 +4,97 @@ # # pip-compile --output-file=dev.txt dev.in # -arrow==0.14.7 -asgiref==3.2.10 +arrow==0.14.7 # via -r ./test.txt, ics +asgiref==3.2.10 # via -r ./test.txt, django astroid==2.4.2 # via pylint -attrs==19.3.0 +attrs==19.3.0 # via -r ./test.txt, pytest backcall==0.2.0 # via ipython -beautifulsoup4==4.8.2 -certifi==2020.6.20 -chardet==3.0.4 +beautifulsoup4==4.8.2 # via -r ./test.txt, wagtail +certifi==2020.6.20 # via -r ./test.txt, requests +chardet==3.0.4 # via -r ./test.txt, requests click==7.1.2 # via pip-tools -coverage==5.2.1 +coverage==5.2.1 # via -r ./test.txt, django-coverage-plugin decorator==4.4.2 # via ipython, traitlets -django-auth-ldap==2.2.0 -django-coverage-plugin==1.8.0 -django-debug-toolbar==2.2 -django-filter==2.3.0 -django-modelcluster==5.0.2 -django-modeltranslation==0.15.1 -django-taggit==1.3.0 -django-treebeard==4.3.1 -django==3.1 -djangorestframework==3.11.1 -draftjs-exporter==2.1.7 -et-xmlfile==1.0.1 -factory-boy==2.12.0 +django-auth-ldap==2.2.0 # via -r ./test.txt +django-coverage-plugin==1.8.0 # via -r ./test.txt +django-debug-toolbar==2.2 # via -r dev.in +django-filter==2.3.0 # via -r ./test.txt, wagtail +django-modelcluster==5.0.2 # via -r ./test.txt, wagtail +django-modeltranslation==0.15.1 # via -r ./test.txt, wagtail-modeltranslation +django-taggit==1.3.0 # via -r ./test.txt, wagtail +django-treebeard==4.3.1 # via -r ./test.txt, wagtail +django==3.1 # via -r ./test.txt, django-auth-ldap, django-debug-toolbar, django-filter, django-modeltranslation, django-taggit, django-treebeard, djangorestframework, wagtail +djangorestframework==3.11.1 # via -r ./test.txt, wagtail +draftjs-exporter==2.1.7 # via -r ./test.txt, wagtail +et-xmlfile==1.0.1 # via -r ./test.txt, openpyxl +factory-boy==2.12.0 # via -r dev.in faker==4.1.1 # via factory-boy -flake8==3.8.3 -html5lib==1.1 -ics==0.7 -idna==2.10 -importlib-metadata==1.7.0 -iniconfig==1.0.1 -ipdb==0.13.3 +flake8==3.8.3 # via -r ./test.txt +html5lib==1.1 # via -r ./test.txt, wagtail +ics==0.7 # via -r ./test.txt +idna==2.10 # via -r ./test.txt, requests +importlib-metadata==1.7.0 # via -r ./test.txt, flake8, markdown, pluggy, pytest +iniconfig==1.0.1 # via -r ./test.txt, pytest +ipdb==0.13.3 # via -r dev.in ipython-genutils==0.2.0 # via traitlets ipython==7.17.0 # via ipdb isort==4.3.21 # via pylint -jdcal==1.4.1 +jdcal==1.4.1 # via -r ./test.txt, openpyxl jedi==0.17.2 # via ipython -l18n==2018.5 +l18n==2018.5 # via -r ./test.txt, wagtail lazy-object-proxy==1.4.3 # via astroid -markdown==3.2.2 -mccabe==0.6.1 -more-itertools==8.4.0 -openpyxl==3.0.4 -packaging==20.4 +markdown==3.2.2 # via -r ./test.txt +mccabe==0.6.1 # via -r ./test.txt, flake8, pylama, pylint +more-itertools==8.4.0 # via -r ./test.txt, pytest +openpyxl==3.0.4 # via -r ./test.txt, tablib +packaging==20.4 # via -r ./test.txt, pytest parso==0.7.1 # via jedi pexpect==4.8.0 # via ipython pickleshare==0.7.5 # via ipython -pillow==7.2.0 -pip-tools==5.3.1 -pluggy==0.13.1 +pillow==7.2.0 # via -r ./test.txt, wagtail +pip-tools==5.3.1 # via -r dev.in +pluggy==0.13.1 # via -r ./test.txt, pytest prompt-toolkit==3.0.6 # via ipython -psycopg2-binary==2.8.5 +psycopg2-binary==2.8.5 # via -r ./test.txt ptyprocess==0.6.0 # via pexpect -py==1.9.0 -pyasn1-modules==0.2.8 -pyasn1==0.4.8 -pycodestyle==2.6.0 +py==1.9.0 # via -r ./test.txt, pytest +pyasn1-modules==0.2.8 # via -r ./test.txt, python-ldap +pyasn1==0.4.8 # via -r ./test.txt, pyasn1-modules, python-ldap +pycodestyle==2.6.0 # via -r ./test.txt, flake8, pylama pydocstyle==5.0.2 # via pylama -pyflakes==2.2.0 -pygments==2.6.1 -pylama==7.7.1 -pylint==2.5.3 -pyparsing==2.4.7 -pytest-django==3.9.0 -pytest==6.0.1 -python-dateutil==2.8.1 -python-ldap==3.3.1 -pytz==2020.1 -requests==2.24.0 -six==1.15.0 +pyflakes==2.2.0 # via -r ./test.txt, flake8, pylama +pygments==2.6.1 # via -r ./test.txt, ipython +pylama==7.7.1 # via -r dev.in +pylint==2.5.3 # via -r dev.in +pyparsing==2.4.7 # via -r ./test.txt, packaging +pytest-django==3.9.0 # via -r ./test.txt +pytest==6.0.1 # via -r ./test.txt, pytest-django +python-dateutil==2.8.1 # via -r ./test.txt, arrow, faker, ics +python-ldap==3.3.1 # via -r ./test.txt, django-auth-ldap +pytz==2020.1 # via -r ./test.txt, django, django-modelcluster, l18n +requests==2.24.0 # via -r ./test.txt, wagtail +six==1.15.0 # via -r ./test.txt, astroid, django-coverage-plugin, django-modeltranslation, html5lib, ics, l18n, packaging, pip-tools, python-dateutil, traitlets snowballstemmer==2.0.0 # via pydocstyle -soupsieve==2.0.1 -sqlparse==0.3.1 -tablib[xls,xlsx]==2.0.0 -tatsu==4.4.0 +soupsieve==2.0.1 # via -r ./test.txt, beautifulsoup4 +sqlparse==0.3.1 # via -r ./test.txt, django, django-debug-toolbar +tablib[xls,xlsx]==2.0.0 # via -r ./test.txt, wagtail +tatsu==4.4.0 # via -r ./test.txt, ics text-unidecode==1.3 # via faker -toml==0.10.1 +toml==0.10.1 # via -r ./test.txt, pylint, pytest traitlets==4.3.3 # via ipython typed-ast==1.4.1 # via astroid -unidecode==1.1.1 -urllib3==1.25.10 -wagtail-modeltranslation==0.10.13 -wagtail==2.10 +unidecode==1.1.1 # via -r ./test.txt, wagtail +urllib3==1.25.10 # via -r ./test.txt, requests +git+https://github.com/buczek/wagtail-modeltranslation.git@add-toggle-configure # via -r ./test.txt +wagtail==2.10 # via -r ./test.txt, wagtail-modeltranslation wcwidth==0.2.5 # via prompt-toolkit -webencodings==0.5.1 -willow==1.4 +webencodings==0.5.1 # via -r ./test.txt, html5lib +willow==1.4 # via -r ./test.txt, wagtail wrapt==1.12.1 # via astroid -xlrd==1.2.0 -xlsxwriter==1.3.2 -xlwt==1.3.0 -zipp==3.1.0 +xlrd==1.2.0 # via -r ./test.txt, tablib +xlsxwriter==1.3.2 # via -r ./test.txt, wagtail +xlwt==1.3.0 # via -r ./test.txt, tablib +zipp==3.1.0 # via -r ./test.txt, importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/production.txt b/requirements/production.txt index 0652fde..ace3e17 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -4,50 +4,50 @@ # # pip-compile --output-file=production.txt production.in # -arrow==0.14.7 -asgiref==3.2.10 -beautifulsoup4==4.8.2 -certifi==2020.6.20 -chardet==3.0.4 -django-auth-ldap==2.2.0 -django-filter==2.3.0 -django-modelcluster==5.0.2 -django-modeltranslation==0.15.1 -django-taggit==1.3.0 -django-treebeard==4.3.1 -django==3.1 -djangorestframework==3.11.1 -draftjs-exporter==2.1.7 -et-xmlfile==1.0.1 -html5lib==1.1 -ics==0.7 -idna==2.10 -importlib-metadata==1.7.0 -jdcal==1.4.1 -l18n==2018.5 -markdown==3.2.2 -openpyxl==3.0.4 -pillow==7.2.0 -psycopg2-binary==2.8.5 -pyasn1-modules==0.2.8 -pyasn1==0.4.8 -pygments==2.6.1 -python-dateutil==2.8.1 -python-ldap==3.3.1 -pytz==2020.1 -requests==2.24.0 -six==1.15.0 -soupsieve==2.0.1 -sqlparse==0.3.1 -tablib[xls,xlsx]==2.0.0 -tatsu==4.4.0 -unidecode==1.1.1 -urllib3==1.25.10 -wagtail-modeltranslation==0.10.13 -wagtail==2.10 -webencodings==0.5.1 -willow==1.4 -xlrd==1.2.0 -xlsxwriter==1.3.2 -xlwt==1.3.0 -zipp==3.1.0 +arrow==0.14.7 # via -r ./base.txt, ics +asgiref==3.2.10 # via -r ./base.txt, django +beautifulsoup4==4.8.2 # via -r ./base.txt, wagtail +certifi==2020.6.20 # via -r ./base.txt, requests +chardet==3.0.4 # via -r ./base.txt, requests +django-auth-ldap==2.2.0 # via -r ./base.txt +django-filter==2.3.0 # via -r ./base.txt, wagtail +django-modelcluster==5.0.2 # via -r ./base.txt, wagtail +django-modeltranslation==0.15.1 # via -r ./base.txt, wagtail-modeltranslation +django-taggit==1.3.0 # via -r ./base.txt, wagtail +django-treebeard==4.3.1 # via -r ./base.txt, wagtail +django==3.1 # via -r ./base.txt, django-auth-ldap, django-filter, django-modeltranslation, django-taggit, django-treebeard, djangorestframework, wagtail +djangorestframework==3.11.1 # via -r ./base.txt, wagtail +draftjs-exporter==2.1.7 # via -r ./base.txt, wagtail +et-xmlfile==1.0.1 # via -r ./base.txt, openpyxl +html5lib==1.1 # via -r ./base.txt, wagtail +ics==0.7 # via -r ./base.txt +idna==2.10 # via -r ./base.txt, requests +importlib-metadata==1.7.0 # via -r ./base.txt, markdown +jdcal==1.4.1 # via -r ./base.txt, openpyxl +l18n==2018.5 # via -r ./base.txt, wagtail +markdown==3.2.2 # via -r ./base.txt +openpyxl==3.0.4 # via -r ./base.txt, tablib +pillow==7.2.0 # via -r ./base.txt, wagtail +psycopg2-binary==2.8.5 # via -r ./base.txt +pyasn1-modules==0.2.8 # via -r ./base.txt, python-ldap +pyasn1==0.4.8 # via -r ./base.txt, pyasn1-modules, python-ldap +pygments==2.6.1 # via -r ./base.txt +python-dateutil==2.8.1 # via -r ./base.txt, arrow, ics +python-ldap==3.3.1 # via -r ./base.txt, django-auth-ldap +pytz==2020.1 # via -r ./base.txt, django, django-modelcluster, l18n +requests==2.24.0 # via -r ./base.txt, wagtail +six==1.15.0 # via -r ./base.txt, django-modeltranslation, html5lib, ics, l18n, python-dateutil +soupsieve==2.0.1 # via -r ./base.txt, beautifulsoup4 +sqlparse==0.3.1 # via -r ./base.txt, django +tablib[xls,xlsx]==2.0.0 # via -r ./base.txt, wagtail +tatsu==4.4.0 # via -r ./base.txt, ics +unidecode==1.1.1 # via -r ./base.txt, wagtail +urllib3==1.25.10 # via -r ./base.txt, requests +git+https://github.com/buczek/wagtail-modeltranslation.git@add-toggle-configure # via -r ./base.txt +wagtail==2.10 # via -r ./base.txt, wagtail-modeltranslation +webencodings==0.5.1 # via -r ./base.txt, html5lib +willow==1.4 # via -r ./base.txt, wagtail +xlrd==1.2.0 # via -r ./base.txt, tablib +xlsxwriter==1.3.2 # via -r ./base.txt, wagtail +xlwt==1.3.0 # via -r ./base.txt, tablib +zipp==3.1.0 # via -r ./base.txt, importlib-metadata diff --git a/requirements/test.txt b/requirements/test.txt index 06ef5c9..6d6eb6d 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -4,66 +4,66 @@ # # pip-compile --output-file=test.txt test.in # -arrow==0.14.7 -asgiref==3.2.10 +arrow==0.14.7 # via -r ./base.txt, ics +asgiref==3.2.10 # via -r ./base.txt, django attrs==19.3.0 # via pytest -beautifulsoup4==4.8.2 -certifi==2020.6.20 -chardet==3.0.4 -coverage==5.2.1 -django-auth-ldap==2.2.0 -django-coverage-plugin==1.8.0 -django-filter==2.3.0 -django-modelcluster==5.0.2 -django-modeltranslation==0.15.1 -django-taggit==1.3.0 -django-treebeard==4.3.1 -django==3.1 -djangorestframework==3.11.1 -draftjs-exporter==2.1.7 -et-xmlfile==1.0.1 -flake8==3.8.3 -html5lib==1.1 -ics==0.7 -idna==2.10 -importlib-metadata==1.7.0 +beautifulsoup4==4.8.2 # via -r ./base.txt, wagtail +certifi==2020.6.20 # via -r ./base.txt, requests +chardet==3.0.4 # via -r ./base.txt, requests +coverage==5.2.1 # via -r test.in, django-coverage-plugin +django-auth-ldap==2.2.0 # via -r ./base.txt +django-coverage-plugin==1.8.0 # via -r test.in +django-filter==2.3.0 # via -r ./base.txt, wagtail +django-modelcluster==5.0.2 # via -r ./base.txt, wagtail +django-modeltranslation==0.15.1 # via -r ./base.txt, wagtail-modeltranslation +django-taggit==1.3.0 # via -r ./base.txt, wagtail +django-treebeard==4.3.1 # via -r ./base.txt, wagtail +django==3.1 # via -r ./base.txt, django-auth-ldap, django-filter, django-modeltranslation, django-taggit, django-treebeard, djangorestframework, wagtail +djangorestframework==3.11.1 # via -r ./base.txt, wagtail +draftjs-exporter==2.1.7 # via -r ./base.txt, wagtail +et-xmlfile==1.0.1 # via -r ./base.txt, openpyxl +flake8==3.8.3 # via -r test.in +html5lib==1.1 # via -r ./base.txt, wagtail +ics==0.7 # via -r ./base.txt +idna==2.10 # via -r ./base.txt, requests +importlib-metadata==1.7.0 # via -r ./base.txt, flake8, markdown, pluggy, pytest iniconfig==1.0.1 # via pytest -jdcal==1.4.1 -l18n==2018.5 -markdown==3.2.2 +jdcal==1.4.1 # via -r ./base.txt, openpyxl +l18n==2018.5 # via -r ./base.txt, wagtail +markdown==3.2.2 # via -r ./base.txt mccabe==0.6.1 # via flake8 more-itertools==8.4.0 # via pytest -openpyxl==3.0.4 +openpyxl==3.0.4 # via -r ./base.txt, tablib packaging==20.4 # via pytest -pillow==7.2.0 +pillow==7.2.0 # via -r ./base.txt, wagtail pluggy==0.13.1 # via pytest -psycopg2-binary==2.8.5 +psycopg2-binary==2.8.5 # via -r ./base.txt py==1.9.0 # via pytest -pyasn1-modules==0.2.8 -pyasn1==0.4.8 +pyasn1-modules==0.2.8 # via -r ./base.txt, python-ldap +pyasn1==0.4.8 # via -r ./base.txt, pyasn1-modules, python-ldap pycodestyle==2.6.0 # via flake8 pyflakes==2.2.0 # via flake8 -pygments==2.6.1 +pygments==2.6.1 # via -r ./base.txt pyparsing==2.4.7 # via packaging -pytest-django==3.9.0 -pytest==6.0.1 -python-dateutil==2.8.1 -python-ldap==3.3.1 -pytz==2020.1 -requests==2.24.0 -six==1.15.0 -soupsieve==2.0.1 -sqlparse==0.3.1 -tablib[xls,xlsx]==2.0.0 -tatsu==4.4.0 +pytest-django==3.9.0 # via -r test.in +pytest==6.0.1 # via -r test.in, pytest-django +python-dateutil==2.8.1 # via -r ./base.txt, arrow, ics +python-ldap==3.3.1 # via -r ./base.txt, django-auth-ldap +pytz==2020.1 # via -r ./base.txt, django, django-modelcluster, l18n +requests==2.24.0 # via -r ./base.txt, wagtail +six==1.15.0 # via -r ./base.txt, django-coverage-plugin, django-modeltranslation, html5lib, ics, l18n, packaging, python-dateutil +soupsieve==2.0.1 # via -r ./base.txt, beautifulsoup4 +sqlparse==0.3.1 # via -r ./base.txt, django +tablib[xls,xlsx]==2.0.0 # via -r ./base.txt, wagtail +tatsu==4.4.0 # via -r ./base.txt, ics toml==0.10.1 # via pytest -unidecode==1.1.1 -urllib3==1.25.10 -wagtail-modeltranslation==0.10.13 -wagtail==2.10 -webencodings==0.5.1 -willow==1.4 -xlrd==1.2.0 -xlsxwriter==1.3.2 -xlwt==1.3.0 -zipp==3.1.0 +unidecode==1.1.1 # via -r ./base.txt, wagtail +urllib3==1.25.10 # via -r ./base.txt, requests +git+https://github.com/buczek/wagtail-modeltranslation.git@add-toggle-configure # via -r ./base.txt +wagtail==2.10 # via -r ./base.txt, wagtail-modeltranslation +webencodings==0.5.1 # via -r ./base.txt, html5lib +willow==1.4 # via -r ./base.txt, wagtail +xlrd==1.2.0 # via -r ./base.txt, tablib +xlsxwriter==1.3.2 # via -r ./base.txt, wagtail +xlwt==1.3.0 # via -r ./base.txt, tablib +zipp==3.1.0 # via -r ./base.txt, importlib-metadata