From cf280b2ba3aee03d39c18ac2c8791db2a70f80bb Mon Sep 17 00:00:00 2001 From: Bram van Dartel Date: Sun, 14 Apr 2024 19:53:07 +0200 Subject: [PATCH 1/9] Update to Django 4.2 --- .../0011_alter_activity_components.py | 18 ++++++++++++++++++ amelie/api/common.py | 2 +- amelie/calendar/participation_urls.py | 4 ++-- amelie/calendar/views.py | 2 +- amelie/claudia/claudia_views.py | 2 +- amelie/education/views.py | 6 +++--- .../0006_alter_attachment_options.py | 17 +++++++++++++++++ amelie/members/forms.py | 4 ++-- amelie/members/urls.py | 3 +-- amelie/oauth/forms.py | 2 +- amelie/settings/generic.py | 2 +- amelie/tools/cache.py | 10 +++++----- amelie/tools/middleware.py | 5 ++--- amelie/urls.py | 4 +--- requirements.txt | 15 +++++++-------- 15 files changed, 63 insertions(+), 33 deletions(-) create mode 100644 amelie/activities/migrations/0011_alter_activity_components.py create mode 100644 amelie/files/migrations/0006_alter_attachment_options.py diff --git a/amelie/activities/migrations/0011_alter_activity_components.py b/amelie/activities/migrations/0011_alter_activity_components.py new file mode 100644 index 0000000..e4d8114 --- /dev/null +++ b/amelie/activities/migrations/0011_alter_activity_components.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.11 on 2024-04-14 16:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('activities', '0010_auto_20221031_2218'), + ] + + operations = [ + migrations.AlterField( + model_name='activity', + name='components', + field=models.ManyToManyField(blank=True, to='activities.activity'), + ), + ] diff --git a/amelie/api/common.py b/amelie/api/common.py index b8f3f08..4448da1 100644 --- a/amelie/api/common.py +++ b/amelie/api/common.py @@ -32,4 +32,4 @@ def strip_markdown(markdowntext): :return: Text without markdown formatting. :rtype: unicode """ - return ''.join(BeautifulSoup(markdown(markdowntext), "html.parser").findAll(text=True)) + return ''.join(BeautifulSoup(markdown(markdowntext), "html.parser").findAll(string=True)) diff --git a/amelie/calendar/participation_urls.py b/amelie/calendar/participation_urls.py index 870bb6e..b9d372b 100644 --- a/amelie/calendar/participation_urls.py +++ b/amelie/calendar/participation_urls.py @@ -1,9 +1,9 @@ -from django.conf.urls import url +from django.urls import re_path from amelie.calendar import views app_name = 'calendar' urlpatterns = [ - url(r'^(?P\d+)/pay/', views.PayParticipationView.as_view(), name='pay_participation'), + re_path(r'^(?P\d+)/pay/', views.PayParticipationView.as_view(), name='pay_participation'), ] diff --git a/amelie/calendar/views.py b/amelie/calendar/views.py index 0ee67ef..17d12e9 100644 --- a/amelie/calendar/views.py +++ b/amelie/calendar/views.py @@ -1,7 +1,7 @@ from django.contrib import messages from django.shortcuts import get_object_or_404, redirect from django.utils import timezone -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.views.generic import TemplateView from amelie.calendar.models import Participation diff --git a/amelie/claudia/claudia_views.py b/amelie/claudia/claudia_views.py index 7279d4c..2607a10 100644 --- a/amelie/claudia/claudia_views.py +++ b/amelie/claudia/claudia_views.py @@ -6,7 +6,7 @@ from django.views.generic import ListView, DetailView, View, TemplateView from django.views.generic.edit import UpdateView, CreateView, DeleteView, FormView from django.views.generic.detail import SingleObjectMixin -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from amelie.settings import SYSADMINS_ABBR from amelie.tools.mixins import RequireCommitteeMixin, RequireStrictCommitteeMixin diff --git a/amelie/education/views.py b/amelie/education/views.py index c40c446..72c5689 100644 --- a/amelie/education/views.py +++ b/amelie/education/views.py @@ -5,7 +5,7 @@ from django.shortcuts import render, get_object_or_404, redirect from django.utils import timezone from django.utils.encoding import force_str -from django.utils.http import is_safe_url +from django.utils.http import url_has_allowed_host_and_scheme from django.views.decorators.http import require_http_methods from django.views.generic import TemplateView @@ -384,7 +384,7 @@ def course_new(request): if form.is_valid(): course_obj = form.save() course_obj.save() - if next and is_safe_url(next, [request.get_host()]): + if next and url_has_allowed_host_and_scheme(next, [request.get_host()]): return redirect(next) return redirect("education:complaint_new") @@ -401,7 +401,7 @@ def module_new(request): if form.is_valid(): module_obj = form.save() module_obj.save() - if next and is_safe_url(next, [request.get_host()]): + if next and url_has_allowed_host_and_scheme(next, [request.get_host()]): return redirect(next) return redirect("education:complaint_new") diff --git a/amelie/files/migrations/0006_alter_attachment_options.py b/amelie/files/migrations/0006_alter_attachment_options.py new file mode 100644 index 0000000..6ea6cc9 --- /dev/null +++ b/amelie/files/migrations/0006_alter_attachment_options.py @@ -0,0 +1,17 @@ +# Generated by Django 3.2.25 on 2024-04-14 16:19 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('files', '0005_auto_20221028_1502'), + ] + + operations = [ + migrations.AlterModelOptions( + name='attachment', + options={'ordering': ['created', 'file'], 'verbose_name': 'Appendix', 'verbose_name_plural': 'Attachments'}, + ), + ] diff --git a/amelie/members/forms.py b/amelie/members/forms.py index 4648133..dd61075 100644 --- a/amelie/members/forms.py +++ b/amelie/members/forms.py @@ -46,7 +46,7 @@ def save(self, *args, **kwargs): if field == "preferences": old = [preference.name for preference in getattr(old_person, field).all()] new = [preference.name for preference in self.cleaned_data[field].all()] + [preference.name for preference in self.instance.preferences.filter(adjustable=False)] - + added = list(set(new)-set(old)) removed = list(set(old)-set(new)) @@ -616,7 +616,7 @@ def clean_iban(self): def clean_bic(self): bic = str(self.cleaned_data['bic']).strip() - if bic is "": + if bic == "": return self.cleaned_data['bic'] if not settings.DEBUG: diff --git a/amelie/members/urls.py b/amelie/members/urls.py index 40a57fe..4231afd 100644 --- a/amelie/members/urls.py +++ b/amelie/members/urls.py @@ -1,5 +1,4 @@ -from django.conf.urls import include -from django.urls import path +from django.urls import path, include app_name = 'members' diff --git a/amelie/oauth/forms.py b/amelie/oauth/forms.py index 7d0fc31..9481644 100644 --- a/amelie/oauth/forms.py +++ b/amelie/oauth/forms.py @@ -1,6 +1,6 @@ from django import forms from django.forms import widgets -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class OAuth2RequestForm(forms.Form): diff --git a/amelie/settings/generic.py b/amelie/settings/generic.py index 7fb61df..9c578b0 100644 --- a/amelie/settings/generic.py +++ b/amelie/settings/generic.py @@ -302,7 +302,7 @@ 'ckeditor_uploader', # SSL Runserver - 'sslserver', + # 'sslserver', # Django-celery helper for celery results 'django_celery_results', diff --git a/amelie/tools/cache.py b/amelie/tools/cache.py index f2dcef9..6237fd4 100644 --- a/amelie/tools/cache.py +++ b/amelie/tools/cache.py @@ -1,4 +1,4 @@ -from threading import currentThread +from threading import current_thread from django.core.cache.backends.locmem import LocMemCache from django.utils.deprecation import MiddlewareMixin @@ -12,13 +12,13 @@ def get_request_cache(): temp = RequestCacheMiddleware() temp.process_request(None) - return _request_cache[currentThread()] + return _request_cache[current_thread()] # LocMemCache is a threadsafe local memory cache class RequestCache(LocMemCache): def __init__(self): - name = 'locmemcache@%i' % hash(currentThread()) + name = 'locmemcache@%i' % hash(current_thread()) params = dict() super(RequestCache, self).__init__(name, params) @@ -31,7 +31,7 @@ def __init__(self, *args, **kwargs): # noinspection PyMethodMayBeStatic,PyUnusedLocal def process_request(self, request): - cache = _request_cache.get(currentThread()) or RequestCache() - _request_cache[currentThread()] = cache + cache = _request_cache.get(current_thread()) or RequestCache() + _request_cache[current_thread()] = cache cache.clear() diff --git a/amelie/tools/middleware.py b/amelie/tools/middleware.py index 3da3690..80085e4 100644 --- a/amelie/tools/middleware.py +++ b/amelie/tools/middleware.py @@ -36,6 +36,5 @@ def process_request(self, request): request.is_board = request.user.is_superuser or request.person.is_board() request.is_education_committee = request.is_board or request.person.is_education_committee() - if not request.session.get(translation.LANGUAGE_SESSION_KEY, False): - preferred_language = request.person.preferred_language - translation.activate(preferred_language) + preferred_language = request.person.preferred_language + translation.activate(preferred_language) diff --git a/amelie/urls.py b/amelie/urls.py index a021566..63dc436 100644 --- a/amelie/urls.py +++ b/amelie/urls.py @@ -1,9 +1,8 @@ import oauth2_provider.views from django.conf import settings -from django.conf.urls import include from django.contrib import admin -from django.urls import reverse_lazy, path, re_path +from django.urls import reverse_lazy, path, re_path, include from django.contrib.auth.views import LogoutView from django.views.generic.base import RedirectView from django.views.static import serve @@ -20,7 +19,6 @@ path('admin/', admin.site.urls), path('legacy_login/', views.login, name='legacy_login'), path('legacy_logout/', LogoutView.as_view(), name='legacy_logout'), - path('i18n/', include('django.conf.urls.i18n')), path('profile/', views.profile_overview, name='profile_overview'), path('profile/edit/', views.profile_edit, name='profile_edit'), path('profile////', views.profile_actions, name='profile_actions'), diff --git a/requirements.txt b/requirements.txt index fbafe62..a19d6fb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ -Django>=3.2.16,<3.3 - +Django>=4.2.11,<4.3 +# Django>=3.2,<3.3 importlib-metadata>=1.4.0,<5.0 # importlib-metadata 5+ causes Celery bug: https://github.com/celery/celery/issues/7783 -celery>=5.2.7,<5.3 +celery>=5.3.5,<5.4 flower==1.2.0 django-celery-results>=2.4,<2.5 @@ -9,7 +9,6 @@ django-allow-cidr>=0.5.0,<0.6 django-compressor>=4.1,<4.2 django-localflavor>=3.1,<3.2 django-extensions>=3.2.1,<3.3 -django-iban>=0.3.1,<0.4 django-formtools>=2.4,<2.5 django-auditlog>=2.2.0,<2.3 django-oauth-toolkit>=1.7.1,<1.8 # 2.x has breaking changes. @@ -23,10 +22,10 @@ django-modern-rpc>=1.0.1,<1.1 django-ckeditor>=6.3.2,<6.4 # 6.4+ requires Python3.8+ and Django 3.2+ # FCM (Firebase Cloud Messaging) -fcm-django>=0.3.11,<0.4 # 1.x has breaking changes (old firebase api removed) +fcm-django>=0.3.11,<1 # 1.x has breaking changes (old firebase api removed) # TODO: Breaking # Custom forks or specific commits of django packages -git+https://github.com/Inter-Actief/django-sslserver@204586ce686212a4c2848c12f88f7279802b5dcc +# git+https://github.com/Inter-Actief/django-sslserver@204586ce686212a4c2848c12f88f7279802b5dcc # Other random dependencies, to be documented, see issue #556 ... beautifulsoup4>=4.11.1,<4.12 @@ -35,7 +34,7 @@ httplib2>=0.20.4,<0.21 icalendar>=4.1.0,<4.2 Markdown>=3.3.7,<3.4 # 3.4+ has breaking changes in changelog that have not been checked. markdown2>=2.4.5,<2.5 -mysqlclient>=2.1.1,<2.2 +mysqlclient # Pillow requires libjpeg-dev zlib1g-dev (on Debian) Pillow>=9.2.0,<9.3 python-gitlab>=3.10,<3.11.0 @@ -65,7 +64,7 @@ Mastodon.py>=1.5.1,<1.6 django-debug-toolbar>=3.7,<3.8 django-rosetta>=0.9.8,<0.10 docutils>=0.19,<0.20 -pyinotify>=0.9.6,<0.10 +pyinotify model_bakery>=1.7.0,<1.8 django-silk>=5.0.1,<5.1 From 174925af3e58d61599518558786599d8e184271e Mon Sep 17 00:00:00 2001 From: supertom01 Date: Tue, 14 May 2024 22:17:47 +0200 Subject: [PATCH 2/9] Update requirements.txt --- requirements.txt | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/requirements.txt b/requirements.txt index a19d6fb..df1c1eb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19,7 +19,7 @@ django-colorfield django-modern-rpc>=1.0.1,<1.1 # WYSIWYG Editor for Django -django-ckeditor>=6.3.2,<6.4 # 6.4+ requires Python3.8+ and Django 3.2+ +django-ckeditor>=6.3.2 # FCM (Firebase Cloud Messaging) fcm-django>=0.3.11,<1 # 1.x has breaking changes (old firebase api removed) # TODO: Breaking @@ -27,9 +27,13 @@ fcm-django>=0.3.11,<1 # 1.x has breaking changes (old firebase api removed) # T # Custom forks or specific commits of django packages # git+https://github.com/Inter-Actief/django-sslserver@204586ce686212a4c2848c12f88f7279802b5dcc -# Other random dependencies, to be documented, see issue #556 ... +# Used for stripping Markdown notations and indexing the IA Summary website. beautifulsoup4>=4.11.1,<4.12 + +# Sanitizing Markdown strings in amelie template tags bleach>=5.0.1,<5.1 + +# Other random dependencies, to be documented, see issue #556 ... httplib2>=0.20.4,<0.21 icalendar>=4.1.0,<4.2 Markdown>=3.3.7,<3.4 # 3.4+ has breaking changes in changelog that have not been checked. @@ -42,13 +46,13 @@ python-dateutil>=2.8.2,<2.9 # python-ldap requires libldap-dev libsasl2-dev (on Debian) to build python-ldap>=3.4.3,<3.5 raven>=6.10.0,<6.11 -reportlab>=3.6.11,<3.7 -requests>=2.28.1,<2.29 +reportlab>=3.6.11 +requests>=2.28.1,<2.32 twython>=3.9.1,<3.10 -html2text>=2020.1.16,<2021.2 +html2text>=2020.1.16,<2024.2.26 # Daphne - to run the website in ASGI mode on a proper webserver -daphne>=3.0,<3.1 +daphne>=3.0,<4.2 # QR code generator for personal tab POS (requires Pillow) qrcode>=7.3.1,<7.4 @@ -57,20 +61,17 @@ qrcode>=7.3.1,<7.4 google-api-python-client>=2.63.0,<3 oauth2client>=4.1.3,<4.2 -# Mastodon API wrapper -Mastodon.py>=1.5.1,<1.6 - # Development -django-debug-toolbar>=3.7,<3.8 +django-debug-toolbar>=3.7,<4.4 django-rosetta>=0.9.8,<0.10 docutils>=0.19,<0.20 pyinotify -model_bakery>=1.7.0,<1.8 -django-silk>=5.0.1,<5.1 +model_bakery>=1.7.0,<1.19 +django-silk>=5.0.1,<5.2 # SAML IdP (requires xmlsec1 (on Debian)) -pysaml2>=7.2.1,<7.3 -djangosaml2idp>=0.7.2,<0.8 +pysaml2>=7.2.1,<7.5 +djangosaml2idp>=0.7.2,<0.8 #TODO: Officially only supports Django up-and-till 3.0 (not updated for the last 3 years) # Single Sign On - OIDC Client mozilla-django-oidc From e91c61ba5841f1f64e90db045d6bc09efebf985d Mon Sep 17 00:00:00 2001 From: supertom01 Date: Mon, 24 Jun 2024 22:28:35 +0200 Subject: [PATCH 3/9] Upgrade MariaDB version to 10.4 --- .github/workflows/build_docker_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_docker_image.yml b/.github/workflows/build_docker_image.yml index 7d29591..0322063 100644 --- a/.github/workflows/build_docker_image.yml +++ b/.github/workflows/build_docker_image.yml @@ -15,7 +15,7 @@ jobs: services: mariadb: - image: mariadb:10.2 + image: mariadb:10.4 env: MARIADB_USER: amelie_test MARIADB_PASSWORD: amelie_test From 749009cd2f73d2593860482774f90f85de14b61d Mon Sep 17 00:00:00 2001 From: supertom01 Date: Mon, 24 Jun 2024 22:40:37 +0200 Subject: [PATCH 4/9] Add the django.mo file for translations --- locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 219154 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 locale/nl/LC_MESSAGES/django.mo diff --git a/locale/nl/LC_MESSAGES/django.mo b/locale/nl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d374192c06c4f2aea4348aa415dfc82676aba86a GIT binary patch literal 219154 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 n@ToUOZ2a Date: Mon, 2 Sep 2024 20:55:17 +0200 Subject: [PATCH 5/9] Update debug toolbar urls --- amelie/urls.py | 10 ++++++---- requirements.txt | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/amelie/urls.py b/amelie/urls.py index 7da7f8c..ac5c9cb 100644 --- a/amelie/urls.py +++ b/amelie/urls.py @@ -135,11 +135,13 @@ if settings.DEBUG_TOOLBAR: - import debug_toolbar + # import debug_toolbar + from debug_toolbar.toolbar import debug_toolbar_urls # Django debug toolbar - urlpatterns += [ - path('__debugtoolbar__/', include(debug_toolbar.urls), name='django_debug_toolbar') - ] + urlpatterns += debug_toolbar_urls() + # [ + # path('__debugtoolbar__/', include(debug_toolbar.urls), name='django_debug_toolbar') + # ] # Redirect for 500 errors handler500 = views.server_error diff --git a/requirements.txt b/requirements.txt index 9a0dab7..5e1b646 100644 --- a/requirements.txt +++ b/requirements.txt @@ -66,7 +66,7 @@ oauth2client>=4.1.3,<4.2 pyOpenSSL>=22.1.0,<23.3.0 # PKCS12 deprecation in 23.3.0, need to migrate gsuite plugin to google-auth-oauthlib. See https://googleapis.github.io/google-api-python-client/docs/oauth.html # Development -django-debug-toolbar>=3.7,<4.4 +django-debug-toolbar>=3.7,<4.5 django-rosetta>=0.9.8,<0.10 docutils>=0.19,<0.20 pyinotify From daa9bfc854a336d094a930fe9e11b28c8d0e9261 Mon Sep 17 00:00:00 2001 From: supertom01 Date: Mon, 2 Sep 2024 21:18:00 +0200 Subject: [PATCH 6/9] Add INTERNAL_IPS to generic.py --- amelie/settings/generic.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/amelie/settings/generic.py b/amelie/settings/generic.py index 0870594..9a4a0a9 100644 --- a/amelie/settings/generic.py +++ b/amelie/settings/generic.py @@ -208,6 +208,8 @@ 'mozilla_django_oidc.middleware.SessionRefresh', # Verify OIDC session tokens ] +INTERNAL_IPS = ['127.0.0.1', 'localhost'] + # Authentication backends used by the application AUTHENTICATION_BACKENDS = [ 'amelie.tools.auth.IAOIDCAuthenticationBackend', # Logins via OIDC / auth.ia From a405b22f997a0f3629da3a65711831b3ba12a487 Mon Sep 17 00:00:00 2001 From: supertom01 Date: Mon, 2 Sep 2024 21:49:19 +0200 Subject: [PATCH 7/9] Update INTERAL_IPS and update toolbar visibility checks --- amelie/settings/generic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amelie/settings/generic.py b/amelie/settings/generic.py index 9a4a0a9..eb365e6 100644 --- a/amelie/settings/generic.py +++ b/amelie/settings/generic.py @@ -208,7 +208,7 @@ 'mozilla_django_oidc.middleware.SessionRefresh', # Verify OIDC session tokens ] -INTERNAL_IPS = ['127.0.0.1', 'localhost'] +INTERNAL_IPS = ['127.0.0.1', 'localhost', '172.17.0.1'] # Authentication backends used by the application AUTHENTICATION_BACKENDS = [ From ef308e8030e2feefcc6c32e1e796e1cd6aa58895 Mon Sep 17 00:00:00 2001 From: Kevin Alberts Date: Mon, 2 Sep 2024 22:13:01 +0200 Subject: [PATCH 8/9] settings: Add debug toolbar settings to environ --- amelie/settings/environ.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/amelie/settings/environ.py b/amelie/settings/environ.py index d44753b..6c99512 100644 --- a/amelie/settings/environ.py +++ b/amelie/settings/environ.py @@ -49,6 +49,19 @@ def get_random_secret_key_no_dollar(): PYDEV_DEBUGGER = False PYDEV_DEBUGGER_IP = None +# Load the debug toolbar -- does not need to be changed in principle +if DEBUG_TOOLBAR: + def custom_show_toolbar(request): + return True + + # Order is important + INSTALLED_APPS = INSTALLED_APPS + ('debug_toolbar',) + MIDDLEWARE = ['debug_toolbar.middleware.DebugToolbarMiddleware'] + MIDDLEWARE + + DEBUG_TOOLBAR_CONFIG = { + 'SHOW_TOOLBAR_CALLBACK': '%s.%s' % (__name__, custom_show_toolbar.__name__), + } + # Do not redirect to HTTPS, because the nginx proxy container only listens on HTTP SECURE_SSL_REDIRECT = False From f4c0ed8368593d298081cd9a80816974bbaa9320 Mon Sep 17 00:00:00 2001 From: supertom01 Date: Mon, 16 Sep 2024 18:24:15 +0200 Subject: [PATCH 9/9] Remove uncommented code --- amelie/urls.py | 4 ---- requirements.txt | 4 ---- 2 files changed, 8 deletions(-) diff --git a/amelie/urls.py b/amelie/urls.py index ac5c9cb..eb3ba96 100644 --- a/amelie/urls.py +++ b/amelie/urls.py @@ -135,13 +135,9 @@ if settings.DEBUG_TOOLBAR: - # import debug_toolbar from debug_toolbar.toolbar import debug_toolbar_urls # Django debug toolbar urlpatterns += debug_toolbar_urls() - # [ - # path('__debugtoolbar__/', include(debug_toolbar.urls), name='django_debug_toolbar') - # ] # Redirect for 500 errors handler500 = views.server_error diff --git a/requirements.txt b/requirements.txt index 5e1b646..3d31e9b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,4 @@ Django>=4.2.11,<4.3 -# Django>=3.2,<3.3 importlib-metadata>=1.4.0,<5.0 # importlib-metadata 5+ causes Celery bug: https://github.com/celery/celery/issues/7783 celery>=5.3.5,<5.4 flower==1.2.0 @@ -25,9 +24,6 @@ django-ckeditor>=6.3.2 # FCM (Firebase Cloud Messaging) fcm-django>=0.3.11,<1 # 1.x has breaking changes (old firebase api removed) # TODO: Breaking -# Custom forks or specific commits of django packages -# git+https://github.com/Inter-Actief/django-sslserver@204586ce686212a4c2848c12f88f7279802b5dcc - # Used for stripping Markdown notations and indexing the IA Summary website. beautifulsoup4>=4.11.1,<4.12