Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Django to 4.2 and related packages for compatibility #1862

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions home/migrations/0066_alter_customrendition_file_and_more.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Generated by Django 4.2.13 on 2024-05-10 19:45

import modelcluster.fields
import wagtail.images.models
from django.db import migrations


class Migration(migrations.Migration):
dependencies = [
("auth", "0012_alter_user_first_name_max_length"),
("home", "0065_accordion_blocks"),
]

operations = [
migrations.AlterField(
model_name="customrendition",
name="file",
field=wagtail.images.models.WagtailImageField(
height_field="height",
storage=wagtail.images.models.get_rendition_storage,
upload_to=wagtail.images.models.get_rendition_upload_to,
width_field="width",
),
),
migrations.AlterField(
model_name="publicationpermissions",
name="groups_with_brief_permission",
field=modelcluster.fields.ParentalManyToManyField(
blank=True,
help_text='Group that has permission to perform the "Publish" action on Brief pages. Only superusers and users that are members of the group selected here may do so, otherwise reports must go through the applicable workflow.',
related_name="+",
to="auth.group",
),
),
migrations.AlterField(
model_name="publicationpermissions",
name="groups_with_report_permission",
field=modelcluster.fields.ParentalManyToManyField(
blank=True,
help_text='Group that has permission to perform the "Publish" action on Report pages. Only superusers and users that are members of the group selected here may do so, otherwise reports must go through the applicable workflow.',
related_name="+",
to="auth.group",
),
),
]
66 changes: 33 additions & 33 deletions newamericadotorg/api/urls.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from django.conf.urls import url
from django.urls import re_path

import newamericadotorg.api.author.views as author_views
import newamericadotorg.api.event.views as event_views
Expand All @@ -11,47 +11,47 @@
import newamericadotorg.api.search.views as search_views
import newamericadotorg.api.subscribe.views as subscribe_views
import newamericadotorg.api.survey.views as survey_views
import newamericadotorg.api.the_thread.views as thread_views
import newamericadotorg.api.topic.views as topic_views
import newamericadotorg.api.weekly.views as weekly_views
import newamericadotorg.api.the_thread.views as thread_views

api_urls = [
url(r'^post/$', post_views.PostList.as_view(), name='post_list'),
url(r'^search/$', search_views.SearchList.as_view()),
url(r'^search/programs/$', search_views.SearchPrograms.as_view()),
url(r'^search/upcoming_events/$', search_views.SearchUpcomingEvents.as_view()),
url(r'^search/pubs_and_past_events/$', search_views.SearchPublicationsAndPastEvents.as_view()),
url(r'^search/people/$', search_views.SearchPeople.as_view()),
url(r'^search/other/$', search_views.SearchOtherPages.as_view()),
url(r'^event/$', event_views.EventList.as_view()),
re_path(r'^post/$', post_views.PostList.as_view(), name='post_list'),
re_path(r'^search/$', search_views.SearchList.as_view()),
re_path(r'^search/programs/$', search_views.SearchPrograms.as_view()),
re_path(r'^search/upcoming_events/$', search_views.SearchUpcomingEvents.as_view()),
re_path(r'^search/pubs_and_past_events/$', search_views.SearchPublicationsAndPastEvents.as_view()),
re_path(r'^search/people/$', search_views.SearchPeople.as_view()),
re_path(r'^search/other/$', search_views.SearchOtherPages.as_view()),
re_path(r'^event/$', event_views.EventList.as_view()),
#url(r'^api/author/$', cache_page(60 * 10, key_prefix='author_list')(api_views.AuthorList.as_view()), name='author_list'),
url(r'^author/$', author_views.AuthorList.as_view(), name='author_list'),
re_path(r'^author/$', author_views.AuthorList.as_view(), name='author_list'),
#url(r'^api/fellow/$', cache_page(60 * 10, key_prefix='fellow_list')(api_views.FellowList.as_view())),
url(r'^fellow/$', author_views.FellowList.as_view()),
re_path(r'^fellow/$', author_views.FellowList.as_view()),
#url(r'^api/program/(?P<pk>[\d]+)/$', cache_page(60 * 1440, key_prefix='program_page')(api_views.ProgramDetail.as_view()), name='program'),
url(r'^program/(?P<pk>[\d]+)/featured/$', program_views.ProgramFeaturedPageList.as_view()),
url(r'^program/(?P<pk>[\d]+)/$', program_views.ProgramDetail.as_view()),
re_path(r'^program/(?P<pk>[\d]+)/featured/$', program_views.ProgramFeaturedPageList.as_view()),
re_path(r'^program/(?P<pk>[\d]+)/$', program_views.ProgramDetail.as_view()),
#url(r'^api/program/$', cache_page(60 * 1440, key_prefix='program_list')(api_views.ProgramList.as_view()), name='program_list'),
url(r'^program/$', program_views.ProgramList.as_view()),
url(r'^topic/$', topic_views.TopicList.as_view()),
url(r'^topic/(?P<pk>[\d]+)/$', topic_views.TopicDetail.as_view()),
url(r'^subprogram/$', program_views.SubprogramList.as_view()),
re_path(r'^program/$', program_views.ProgramList.as_view()),
re_path(r'^topic/$', topic_views.TopicList.as_view()),
re_path(r'^topic/(?P<pk>[\d]+)/$', topic_views.TopicDetail.as_view()),
re_path(r'^subprogram/$', program_views.SubprogramList.as_view()),
#url(r'^api/subprogram/(?P<pk>[\d]+)/$', cache_page(60 * 1440, key_prefix='subprogram_page')(api_views.SubprogramDetail.as_view()), name='subprogram'),
url(r'^subprogram/(?P<pk>[\d]+)/$', program_views.SubprogramDetail.as_view()),
url(r'^weekly/$', weekly_views.WeeklyList.as_view()),
url(r'^weekly/(?P<pk>[\d]+)/$', weekly_views.WeeklyDetail.as_view()),
url(r'^thread/$', thread_views.ThreadList.as_view()),
url(r'^thread/detail/$', thread_views.TopLevelThreadDetail.as_view()),
url(r'^thread/(?P<pk>[\d]+)/$', thread_views.ThreadDetail.as_view()),
url(r'^report/(?P<pk>[\d]+)/$', report_views.ReportDetail.as_view()),
url(r'^preview/$', meta_views.PreviewView.as_view()),
url(r'^home/(?P<pk>[\d]+)/$', home_views.HomeDetail.as_view()),
re_path(r'^subprogram/(?P<pk>[\d]+)/$', program_views.SubprogramDetail.as_view()),
re_path(r'^weekly/$', weekly_views.WeeklyList.as_view()),
re_path(r'^weekly/(?P<pk>[\d]+)/$', weekly_views.WeeklyDetail.as_view()),
re_path(r'^thread/$', thread_views.ThreadList.as_view()),
re_path(r'^thread/detail/$', thread_views.TopLevelThreadDetail.as_view()),
re_path(r'^thread/(?P<pk>[\d]+)/$', thread_views.ThreadDetail.as_view()),
re_path(r'^report/(?P<pk>[\d]+)/$', report_views.ReportDetail.as_view()),
re_path(r'^preview/$', meta_views.PreviewView.as_view()),
re_path(r'^home/(?P<pk>[\d]+)/$', home_views.HomeDetail.as_view()),
#url(r'^api/meta/$', cache_page(60 * 10080)(api_views.MetaList.as_view())),
url(r'^meta/$', meta_views.MetaList.as_view()),
re_path(r'^meta/$', meta_views.MetaList.as_view()),
#url(r'^api/content-types/$', cache_page(60 * 10080)(api_views.ContentList.as_view())),
url(r'^content-types/$', meta_views.ContentList.as_view()),
url(r'^subscribe/$', subscribe_views.subscribe),
url(r'^jobs/$', jobs_views.JobsList.as_view()),
url(r'^surveys-homepage/(?P<pk>[\d]+)/$', survey_views.SurveyHomeDetail.as_view()),
url(r'^survey/(?P<pk>[\d]+)/$', survey_views.SurveyDetail.as_view())
re_path(r'^content-types/$', meta_views.ContentList.as_view()),
re_path(r'^subscribe/$', subscribe_views.subscribe),
re_path(r'^jobs/$', jobs_views.JobsList.as_view()),
re_path(r'^surveys-homepage/(?P<pk>[\d]+)/$', survey_views.SurveyHomeDetail.as_view()),
re_path(r'^survey/(?P<pk>[\d]+)/$', survey_views.SurveyDetail.as_view())
]
60 changes: 30 additions & 30 deletions newamericadotorg/urls.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from django.conf import settings
from django.conf.urls import include, url
from django.conf.urls.static import static
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.urls import include, re_path
from wagtail import urls as wagtail_urls
from wagtail.admin import urls as wagtailadmin_urls
from wagtail.documents import urls as wagtaildocs_urls
Expand All @@ -25,54 +25,54 @@
from search.views import search as search_view

urlpatterns = [
url(r"^django-admin/", admin.site.urls),
url(r"^admin/autocomplete/", include(autocomplete_admin_urls)),
url(r"^admin/", include(wagtailadmin_urls)),
url(r"^documents/", include(wagtaildocs_urls)),
url(r"^images/", include(wagtailimages_urls)),
url(r"^search/$", search_view, name="search"),
url(r"^h_preview/$", newamericadotorg.views.preview, name="headless_preview"),
url(r"^feed/$", GenericFeed()),
url(r"^feed/program/(?P<program>[a-zA-z\-]*)/$", ProgramFeed()),
url(r"^feed/subprogram/(?P<subprogram>[a-zA-z\-]*)/$", SubprogramFeed()),
url(r"^feed/author/(?P<author>[a-zA-z\-]*)/$", AuthorFeed()),
url(r"^feed/event/(?P<tense>future|past)/$", EventFeed()),
url(r"^feed/event/(?P<program>[a-zA-z\-]*)/$", EventProgramFeed()),
url(
re_path(r"^django-admin/", admin.site.urls),
re_path(r"^admin/autocomplete/", include(autocomplete_admin_urls)),
re_path(r"^admin/", include(wagtailadmin_urls)),
re_path(r"^documents/", include(wagtaildocs_urls)),
re_path(r"^images/", include(wagtailimages_urls)),
re_path(r"^search/$", search_view, name="search"),
re_path(r"^h_preview/$", newamericadotorg.views.preview, name="headless_preview"),
re_path(r"^feed/$", GenericFeed()),
re_path(r"^feed/program/(?P<program>[a-zA-z\-]*)/$", ProgramFeed()),
re_path(r"^feed/subprogram/(?P<subprogram>[a-zA-z\-]*)/$", SubprogramFeed()),
re_path(r"^feed/author/(?P<author>[a-zA-z\-]*)/$", AuthorFeed()),
re_path(r"^feed/event/(?P<tense>future|past)/$", EventFeed()),
re_path(r"^feed/event/(?P<program>[a-zA-z\-]*)/$", EventProgramFeed()),
re_path(
r"^feed/event/(?P<program>[a-zA-z\-]*)/(?P<tense>future|past)/$",
EventProgramFeed(),
),
url(r"^feed/(?P<content_type>[a-zA-z]*)/$", ContentFeed()),
url(r"^feed/(?P<content_type>[a-zA-z]*)/(?P<program>[a-zA-z\-]*)/$", ContentFeed()),
url(r"^api/", include(api_urls)),
url(
re_path(r"^feed/(?P<content_type>[a-zA-z]*)/$", ContentFeed()),
re_path(r"^feed/(?P<content_type>[a-zA-z]*)/(?P<program>[a-zA-z\-]*)/$", ContentFeed()),
re_path(r"^api/", include(api_urls)),
re_path(
r"^images/([^/]*)/(\d*)/([^/]*)/[^/]*$",
ServeView.as_view(action="redirect"),
name="wagtailimages_serve",
),
url(
re_path(
r"^international-security/future-property-rights/[^.]*$",
redirects.future_property_rights,
),
url(
re_path(
r"^international-security/planetary-politics/[^.]*$",
redirects.planetary_politics,
),
url(r"^international-security/[^.]*$", redirects.future_security),
url(
re_path(r"^international-security/[^.]*$", redirects.future_security),
re_path(
r"^education-policy/dual-language-learners/[^.]*$",
redirects.dual_language_learners,
),
url(r"^bretton-woods-ii/[^.]*$", redirects.digi),
url(r"^digital-impact-governance-inititiative/[^.]*$", redirects.digi),
url(r"^national-network/[^.]*$", redirects.local),
url(
re_path(r"^bretton-woods-ii/[^.]*$", redirects.digi),
re_path(r"^digital-impact-governance-inititiative/[^.]*$", redirects.digi),
re_path(r"^national-network/[^.]*$", redirects.local),
re_path(
r"^public-interest-technology/new-practice-lab/[^.]*$",
redirects.new_practice_lab,
),
url(r"^public-interest-technology/[^.]*$", redirects.pit),
url(r"^future-property-rights/[^.]*$", redirects.flh),
url(r"", include(wagtail_urls)),
re_path(r"^public-interest-technology/[^.]*$", redirects.pit),
re_path(r"^future-property-rights/[^.]*$", redirects.flh),
re_path(r"", include(wagtail_urls)),
]

if settings.DEBUG:
Expand Down
18 changes: 9 additions & 9 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@ classifiers = ["Private :: Do Not Upload"]
version = "0"
dependencies = [
# Django related
'Django >= 3.2.6, < 4',
'Django >= 4.2.13, < 5',
'Wagtail >= 5.2.2, < 5.3',
'Celery >= 4.4, < 5.0',
'dj-database-url >= 1.3.0, < 2',
'django-cors-headers >= 3.13.0, < 4',
'django-storages >= 1.13, < 2',
'django-compressor >= 3.0',
'django-anymail >= 9.0, < 10',
'django-cors-headers >= 4.3.1, < 5',
'django-storages >= 1.14.2, < 2',
'django-compressor >= 4.0',
'django-anymail >= 10.2, < 11',
'django-filter',
'django-modelcluster',
'whitenoise >= 6.4, <7',
'django-redis >= 5.2, <6',
'django-modelcluster >= 6.2.1',
'whitenoise >= 6.6.0, < 7',
'django-redis >= 5.4, < 6',
'django-basic-auth-ip-whitelist >= 0.5',
'django-csp >= 3.7, <4',

Expand All @@ -33,7 +33,7 @@ dependencies = [
'elasticsearch >= 5.5, <6',
'redis >= 3.4.1, < 4',
# See https://github.com/wagtail/wagtail-autocomplete
'wagtail-autocomplete >= 0.10.0',
'wagtail-autocomplete >= 0.11.0',
# See https://pypi.org/project/django-multiselectfield/
'django-multiselectfield >= 0.1.12',
'gunicorn == 20.0.4',
Expand Down
26 changes: 15 additions & 11 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ amqp==2.6.1
anyascii==0.3.2
# via wagtail
asgiref==3.6.0
# via django
# via
# django
# django-cors-headers
beautifulsoup4==4.9.3
# via wagtail
billiard==3.6.4.0
Expand Down Expand Up @@ -44,7 +46,7 @@ defusedxml==0.7.1
# willow
dj-database-url==1.3.0
# via newamerica-cms (pyproject.toml)
django==3.2.18
django==4.2.13
# via
# dj-database-url
# django-anymail
Expand All @@ -63,33 +65,33 @@ django==3.2.18
# djangorestframework
# newamerica-cms (pyproject.toml)
# wagtail
django-anymail==9.1
django-anymail==10.3
# via newamerica-cms (pyproject.toml)
django-appconf==1.0.5
# via django-compressor
django-basic-auth-ip-whitelist==0.5
# via newamerica-cms (pyproject.toml)
django-compressor==4.3.1
# via newamerica-cms (pyproject.toml)
django-cors-headers==3.14.0
django-cors-headers==4.3.1
# via newamerica-cms (pyproject.toml)
django-csp==3.7
# via newamerica-cms (pyproject.toml)
django-filter==23.5
# via
# newamerica-cms (pyproject.toml)
# wagtail
django-modelcluster==6.1
django-modelcluster==6.3
# via
# newamerica-cms (pyproject.toml)
# wagtail
django-multiselectfield==0.1.12
# via newamerica-cms (pyproject.toml)
django-permissionedforms==0.1
# via wagtail
django-redis==5.2.0
django-redis==5.4.0
# via newamerica-cms (pyproject.toml)
django-storages==1.13.2
django-storages==1.14.3
# via newamerica-cms (pyproject.toml)
django-taggit==2.1.0
# via wagtail
Expand Down Expand Up @@ -145,7 +147,6 @@ python-docx==0.8.11
pytz==2023.3
# via
# celery
# django
# django-modelcluster
# djangorestframework
# l18n
Expand Down Expand Up @@ -187,6 +188,7 @@ typing-extensions==4.5.0
urllib3==1.26.15
# via
# botocore
# django-anymail
# elasticsearch
# requests
# sentry-sdk
Expand All @@ -199,7 +201,7 @@ wagtail==5.2.2
# newamerica-cms (pyproject.toml)
# wagtail-autocomplete
# wagtail-headless-preview
wagtail-autocomplete==0.10.0
wagtail-autocomplete==0.11.0
# via newamerica-cms (pyproject.toml)
wagtail-headless-preview==0.7.0
# via newamerica-cms (pyproject.toml)
Expand All @@ -212,10 +214,12 @@ webencodings==0.5.1
# cssselect2
# html5lib
# tinycss2
whitenoise==6.4.0
whitenoise==6.6.0
# via newamerica-cms (pyproject.toml)
willow[heif]==1.6.2
# via wagtail
# via
# wagtail
# willow

# The following packages are considered to be unsafe in a requirements file:
setuptools==67.6.1
Expand Down
Loading
Loading