From 8dd380d42c30358d2b27cfaff806f98e69c28ee6 Mon Sep 17 00:00:00 2001 From: Asif Saif Uddin Date: Thu, 9 May 2019 17:24:43 +0600 Subject: [PATCH 1/4] started adding django 2.2 support --- base-requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base-requirements.txt b/base-requirements.txt index a66e5b96f..4ab9e3fdb 100644 --- a/base-requirements.txt +++ b/base-requirements.txt @@ -1,11 +1,11 @@ dj-database-url==0.5.0 django-pipeline==1.6.14 django-sitetree==1.10.0 -Django==2.0.13 +Django==2.2.1 docutils==0.12 Markdown==2.5.2 Pillow==5.1.0 -psycopg2==2.7.3.2 +psycopg2==2.8.2 python3-openid==3.1.0 # lxml used by BeautifulSoup. lxml==4.1.1 From 7fb9c056b9436aef024932fe1ba4e0a02231838b Mon Sep 17 00:00:00 2001 From: Asif Saif Uddin Date: Thu, 9 May 2019 19:38:27 +0600 Subject: [PATCH 2/4] updated urls to django 2.0+ --- pydotorg/urls.py | 151 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 107 insertions(+), 44 deletions(-) diff --git a/pydotorg/urls.py b/pydotorg/urls.py index 77193eb6b..8a6ef4c86 100644 --- a/pydotorg/urls.py +++ b/pydotorg/urls.py @@ -1,9 +1,10 @@ -from django.conf.urls import include, url, handler404 +from django.conf.urls import include, handler404 from django.contrib import admin from django.contrib.staticfiles.urls import staticfiles_urlpatterns from django.conf.urls.static import static from django.views.generic.base import TemplateView, RedirectView from django.conf import settings +from django.urls import path, re_path from cms.views import custom_404 from users.views import HoneypotSignupView, CustomPasswordChangeView @@ -15,73 +16,135 @@ urlpatterns = [ # homepage - url(r'^$', views.IndexView.as_view(), name='home'), - url(r'^authenticated$', views.AuthenticatedView.as_view(), name='authenticated'), - url(r'^humans.txt$', TemplateView.as_view(template_name='humans.txt', content_type='text/plain')), - url(r'^robots.txt$', TemplateView.as_view(template_name='robots.txt', content_type='text/plain')), - url(r'^shell/$', TemplateView.as_view(template_name="python/shell.html"), name='shell'), + path('', views.IndexView.as_view(), name='home'), + path( + 'authenticated', + views.AuthenticatedView.as_view(), + name='authenticated' + ), + path('humans.txt', TemplateView.as_view( + template_name='humans.txt', content_type='text/plain')), + path('robots.txt', TemplateView.as_view( + template_name='robots.txt', content_type='text/plain')), + path( + 'shell/', + TemplateView.as_view(template_name="python/shell.html"), + name='shell' + ), # python section landing pages - url(r'^about/$', TemplateView.as_view(template_name="python/about.html"), name='about'), + path( + 'about/', + TemplateView.as_view(template_name="python/about.html"), + name='about' + ), # Redirect old download links to new downloads pages - url(r'^download/$', RedirectView.as_view(url='https://www.python.org/downloads/', permanent=True)), - url(r'^download/source/$', RedirectView.as_view(url='https://www.python.org/downloads/source/', permanent=True)), - url(r'^download/mac/$', RedirectView.as_view(url='https://www.python.org/downloads/mac-osx/', permanent=True)), - url(r'^download/windows/$', RedirectView.as_view(url='https://www.python.org/downloads/windows/', permanent=True)), + path( + 'download/', + RedirectView.as_view( + url='https://www.python.org/downloads/', + permanent=True) + ), + path( + 'download/source/', + RedirectView.as_view( + url='https://www.python.org/downloads/source/', + permanent=True)), + path('download/mac/', RedirectView.as_view( + url='https://www.python.org/downloads/mac-osx/', + permanent=True) + ), + path( + 'download/windows/', + RedirectView.as_view( + url='https://www.python.org/downloads/windows/', + permanent=True) + ), # duplicated downloads to getit to bypass China's firewall. See # https://github.com/python/pythondotorg/issues/427 for more info. - url(r'^getit/', include('downloads.urls', namespace='getit')), - url(r'^downloads/', include('downloads.urls', namespace='download')), - url(r'^doc/$', views.DocumentationIndexView.as_view(), name='documentation'), - url(r'^blog/$', RedirectView.as_view(url='/blogs/', permanent=True)), - url(r'^blogs/', include('blogs.urls')), - url(r'^inner/$', TemplateView.as_view(template_name="python/inner.html"), name='inner'), + path('getit/', include('downloads.urls', namespace='getit')), + path('downloads/', include('downloads.urls', namespace='download')), + path('doc/', views.DocumentationIndexView.as_view(), name='documentation'), + path('blog/', RedirectView.as_view(url='/blogs/', permanent=True)), + path('blogs/', include('blogs.urls')), + path( + 'inner/', + TemplateView.as_view(template_name="python/inner.html"), + name='inner' + ), # other section landing pages - url(r'^psf-landing/$', TemplateView.as_view(template_name="psf/index.html"), name='psf-landing'), - url(r'^docs-landing/$', TemplateView.as_view(template_name="docs/index.html"), name='docs-landing'), - url(r'^pypl-landing/$', TemplateView.as_view(template_name="pypl/index.html"), name='pypl-landing'), - url(r'^shop-landing/$', TemplateView.as_view(template_name="shop/index.html"), name='shop-landing'), + path( + '^psf-landing/', + TemplateView.as_view(template_name="psf/index.html"), + name='psf-landing' + ), + path( + 'docs-landing/', + TemplateView.as_view(template_name="docs/index.html"), + name='docs-landing'), + path( + 'pypl-landing/', + TemplateView.as_view(template_name="pypl/index.html"), + name='pypl-landing' + ), + path( + 'shop-landing/', + TemplateView.as_view(template_name="shop/index.html"), + name='shop-landing' + ), # Override /accounts/signup/ to add Honeypot. - url(r'^accounts/signup/', HoneypotSignupView.as_view()), + path('accounts/signup/', HoneypotSignupView.as_view()), # Override /accounts/password/change/ to add Honeypot # and change success URL. - url(r'^accounts/password/change/$', CustomPasswordChangeView.as_view(), - name='account_change_password'), - url(r'^accounts/', include('allauth.urls')), - url(r'^box/', include('boxes.urls')), - url(r'^community/', include('community.urls', namespace='community')), - url(r'^community/microbit/$', TemplateView.as_view(template_name="community/microbit.html"), name='microbit'), - url(r'^events/', include('events.urls', namespace='events')), - url(r'^jobs/', include('jobs.urls', namespace='jobs')), - url(r'^sponsors/', include('sponsors.urls')), - url(r'^success-stories/', include('successstories.urls')), - url(r'^users/', include('users.urls', namespace='users')), + path( + 'accounts/password/change/', + CustomPasswordChangeView.as_view(), + name='account_change_password' + ), + path('accounts/', include('allauth.urls')), + path('box/', include('boxes.urls')), + path('community/', include('community.urls', namespace='community')), + path( + 'community/microbit/', + TemplateView.as_view(template_name="community/microbit.html"), + name='microbit' + ), + path('events/', include('events.urls', namespace='events')), + path('jobs/', include('jobs.urls', namespace='jobs')), + path('sponsors/', include('sponsors.urls')), + path('success-stories/', include('successstories.urls')), + path('users/', include('users.urls', namespace='users')), - url(r'^psf/records/board/minutes/', include('minutes.urls')), - url(r'^membership/', include('membership.urls')), - url(r'^search/', include('haystack.urls')), - url(r'^nominations/', include('nominations.urls')), + path('psf/records/board/minutes/', include('minutes.urls')), + path('membership/', include('membership.urls')), + path('search/', include('haystack.urls')), + path('nominations/', include('nominations.urls')), # admin - url(r'^admin/doc/', include('django.contrib.admindocs.urls')), - url(r'^admin/', admin.site.urls), + path('admin/doc/', include('django.contrib.admindocs.urls')), + path('admin/', admin.site.urls), # api - url(r'^api/', include(v1_api.urls)), - url(r'^api/v2/', include(router.urls)), + re_path(r'^api/', include(v1_api.urls)), + path('api/v2/', include(router.urls)), # storage migration - url(r'^m/(?P.*)/$', views.MediaMigrationView.as_view(prefix='media'), name='media_migration_view'), + re_path( + r'^m/(?P.*)/$', + views.MediaMigrationView.as_view(prefix='media'), + name='media_migration_view' + ), ] urlpatterns += staticfiles_urlpatterns() if settings.DEBUG: - urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + urlpatterns += static(settings.MEDIA_URL, + document_root=settings.MEDIA_ROOT) import debug_toolbar urlpatterns = [ - url(r'^__debug__/', include(debug_toolbar.urls)), + re_path(r'^__debug__/', include(debug_toolbar.urls)), ] + urlpatterns From 6152927548b89852e5744a9fa2902ba0c85a8ed5 Mon Sep 17 00:00:00 2001 From: Asif Saif Uddin Date: Thu, 9 May 2019 19:39:07 +0600 Subject: [PATCH 3/4] updated django to 2.1 and drf to 3.8.3 --- base-requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base-requirements.txt b/base-requirements.txt index 4ab9e3fdb..b0014f0d8 100644 --- a/base-requirements.txt +++ b/base-requirements.txt @@ -1,7 +1,7 @@ dj-database-url==0.5.0 django-pipeline==1.6.14 django-sitetree==1.10.0 -Django==2.2.1 +Django==2.1.8 docutils==0.12 Markdown==2.5.2 Pillow==5.1.0 @@ -33,5 +33,5 @@ django-allauth==0.36.0 django-waffle==0.14 -djangorestframework==3.8.2 +djangorestframework==3.9.3 django-filter==1.1.0 From b5b7521afabd77d357e08164392ab4fb20ccbc3f Mon Sep 17 00:00:00 2001 From: Asif Saif Uddin Date: Thu, 9 May 2019 21:59:33 +0600 Subject: [PATCH 4/4] updated requirements versions --- base-requirements.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/base-requirements.txt b/base-requirements.txt index b0014f0d8..7433fafed 100644 --- a/base-requirements.txt +++ b/base-requirements.txt @@ -26,12 +26,12 @@ python-dateutil==2.6.1 requests[security]>=2.20.0 -django-honeypot==0.6.0 -django-markupfield==1.4.3 +django-honeypot==0.7.0 +django-markupfield==1.5.1 -django-allauth==0.36.0 +django-allauth==0.39.1 django-waffle==0.14 djangorestframework==3.9.3 -django-filter==1.1.0 +django-filter==2.1.0