From 7ca1099806ff77766c22e01812c83254fab0dd76 Mon Sep 17 00:00:00 2001 From: raxelg Date: Fri, 26 Jun 2020 20:44:58 -0400 Subject: [PATCH 1/5] Successfully upgraded to django1.8 --- browser/views.py | 4 +- gmail_setup/urls.py | 7 +- http_handler/settings.py | 46 ++--- http_handler/urls.py | 175 +++++++++--------- registration/auth_urls.py | 74 ++++---- registration/backends/default/urls.py | 49 +++-- registration/backends/simple/urls.py | 22 +-- .../commands/cleanupregistration.py | 6 +- registration/models.py | 2 +- registration/tests/urls.py | 126 ++++++------- requirements.txt | 6 +- 11 files changed, 255 insertions(+), 262 deletions(-) diff --git a/browser/views.py b/browser/views.py index a0a6ead7..be1c818b 100644 --- a/browser/views.py +++ b/browser/views.py @@ -8,7 +8,7 @@ from django.conf import global_settings from django.contrib.auth.decorators import login_required from django.contrib.auth.forms import AuthenticationForm -from django.core.context_processors import csrf +from django.template.context_processors import csrf from django.core.files.base import ContentFile from django.core.files.storage import default_storage from django.db.models.aggregates import Count @@ -86,7 +86,7 @@ def index(request): return render_to_response(homepage, {'form': AuthenticationForm(), 'reg_form': RegistrationForm()}, - context_instance=RequestContext(request)) + context=RequestContext(request)) else: if WEBSITE == 'murmur': return HttpResponseRedirect('/posts') diff --git a/gmail_setup/urls.py b/gmail_setup/urls.py index e05fcb6c..d532808f 100644 --- a/gmail_setup/urls.py +++ b/gmail_setup/urls.py @@ -1,8 +1,7 @@ -from django.conf.urls import patterns, include, url +from django.conf.urls import url from . import views -urlpatterns = patterns( - '', +urlpatterns = [ url(r'^$', views.index, name='index'), url(r'authorize', views.auth, name='auth'), url(r'callback', views.auth_return, name='return'), @@ -10,4 +9,4 @@ url(r'initial_filters', views.initial_filters, name='initial_filters'), url(r'done', views.index, name='done'), url(r'forget', views.deauth, name='forget'), -) \ No newline at end of file +] \ No newline at end of file diff --git a/http_handler/settings.py b/http_handler/settings.py index 62ced9c9..93394072 100644 --- a/http_handler/settings.py +++ b/http_handler/settings.py @@ -77,8 +77,6 @@ def _get_website(): BASE_URL = 'localhost:8000' MYSQL = MYSQL_LOCAL -TEMPLATE_DEBUG = DEBUG - LOGIN_REDIRECT_URL = "/" EMAIL_HOST = 'localhost' @@ -167,23 +165,34 @@ def _get_website(): # Make this unique, and don't share it with anybody. SECRET_KEY = 'fr&qg*+c!z6q_^v6o1kzd6lxj-3m3q-=oku8f52*c+@)+1hnx+' -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django_mobile.loader.Loader', - - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', -# 'django.template.loaders.eggs.Loader', -) - -TEMPLATE_CONTEXT_PROCESSORS = ( - 'django_mobile.context_processors.flavour', - -) +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [ + PROJECT_DIR + "browser/templates", + # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". + # Always use forward slashes, even on Windows. + # Don't forget to use absolute paths, not relative paths. + ], + 'OPTIONS': { + 'context_processors': [ + 'django_mobile.context_processors.flavour', + ], + # List of callables that know how to import templates from various sources. + 'loaders': [ + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', + # 'django_mobile.loader.Loader', + # 'django.template.loaders.eggs.Loader', + ] + }, + }, +] MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', @@ -200,13 +209,6 @@ def _get_website(): # Python dotted path to the WSGI application used by Django's runserver. WSGI_APPLICATION = 'http_handler.wsgi.application' -TEMPLATE_DIRS = ( - PROJECT_DIR + "browser/templates", - # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. -) - # one week activation window after a user signs up for an account ACCOUNT_ACTIVATION_DAYS = 7 diff --git a/http_handler/urls.py b/http_handler/urls.py index ff52bae2..29ed32ca 100644 --- a/http_handler/urls.py +++ b/http_handler/urls.py @@ -1,4 +1,4 @@ -from django.conf.urls import patterns, include, url +from django.conf.urls import include, url from django.contrib.auth import views as auth_views from django.views.generic.base import TemplateView from browser.views import * @@ -11,9 +11,8 @@ website_context = {'website' : WEBSITE} -# shared URL patterns -urlpatterns = patterns('', - +#shared URL patterns +urlpatterns = [ url(r'^$', 'browser.views.index'), url(r'^lamson_status', 'browser.views.lamson_status'), url(r'^settings', 'browser.views.settings'), @@ -99,76 +98,76 @@ url(r'^activate_group', 'browser.views.activate_group'), url(r'^deactivate_group', 'browser.views.deactivate_group'), - ) +] # murmur-only patterns if WEBSITE == 'murmur': new_patterns = [ - url(r'^about', 'browser.views.about'), - url(r'^posts$', 'browser.views.post_list'), - - url(r'^unsubscribe_get', 'browser.views.unsubscribe_get'), - url(r'^subscribe_get', 'browser.views.subscribe_get'), - - url(r'^post_list', 'browser.views.post_list'), - url(r'^pub_group_list', 'browser.views.pub_group_list'), - url(r'^group_list', 'browser.views.group_list'), - url(r'^groups/(?P[\w-]+)/add_list', 'browser.views.add_list_view'), - url(r'^groups/(?P[\w-]+)/create_post', 'browser.views.my_group_create_post_view'), - url(r'^my_groups', 'browser.views.my_groups'), - url(r'^list_my_groups', 'browser.views.list_my_groups'), - - url(r'^load_post', 'browser.views.load_post'), - url(r'^load_thread', 'browser.views.load_thread'), - - url(r'^list_posts', 'browser.views.list_posts'), - url(r'^refresh_posts', 'browser.views.refresh_posts'), - - url(r'^insert_post', 'browser.views.insert_post'), - url(r'^insert_reply', 'browser.views.insert_reply'), - - url(r'^upvote_get', 'browser.views.upvote_get'), - url(r'^unupvote_get', 'browser.views.unupvote_get'), - - url(r'^upvote', 'browser.views.upvote'), - url(r'^unupvote', 'browser.views.unupvote'), - - url(r'^follow_tag_get', 'browser.views.follow_tag_get'), - url(r'^unfollow_tag_get', 'browser.views.unfollow_tag_get'), - - url(r'^mute_tag_get', 'browser.views.mute_tag_get'), - url(r'^unmute_tag_get', 'browser.views.unmute_tag_get'), - - url(r'^follow_tag', 'browser.views.follow_tag'), - url(r'^unfollow_tag', 'browser.views.unfollow_tag'), - - url(r'^mute_tag', 'browser.views.mute_tag'), - url(r'^unmute_tag', 'browser.views.unmute_tag'), - - url(r'^follow_thread', 'browser.views.follow_thread'), - url(r'^unfollow_thread', 'browser.views.unfollow_thread'), - - url(r'^mute_thread', 'browser.views.mute_thread'), - url(r'^unmute_thread', 'browser.views.unmute_thread'), - - url(r'^follow', 'browser.views.follow_thread_get'), - url(r'^unfollow', 'browser.views.unfollow_thread_get'), - - url(r'^mute', 'browser.views.mute_thread_get'), - url(r'^unmute', 'browser.views.unmute_thread_get'), - - url(r'^add_list', 'browser.views.add_list'), - url(r'^delete_list', 'browser.views.delete_list'), - - url(r'^adjust_list_can_post', 'browser.views.adjust_list_can_post'), - url(r'^adjust_list_can_receive', 'browser.views.adjust_list_can_receive'), - - url(r'^login_email', 'browser.views.login_imap_view'), - url(r'^login_imap', 'browser.views.login_imap'), - url(r'^groups/(?P[\w-]+)/add_donotsend', 'browser.views.add_dissimulate_view'), - url(r'^edit_donotsend', 'browser.views.edit_donotsend'), - url(r'^donotsend_list', 'browser.views.donotsend_list'), - ] + url(r'^about', 'browser.views.about'), + url(r'^posts$', 'browser.views.post_list'), + + url(r'^unsubscribe_get', 'browser.views.unsubscribe_get'), + url(r'^subscribe_get', 'browser.views.subscribe_get'), + + url(r'^post_list', 'browser.views.post_list'), + url(r'^pub_group_list', 'browser.views.pub_group_list'), + url(r'^group_list', 'browser.views.group_list'), + url(r'^groups/(?P[\w-]+)/add_list', 'browser.views.add_list_view'), + url(r'^groups/(?P[\w-]+)/create_post', 'browser.views.my_group_create_post_view'), + url(r'^my_groups', 'browser.views.my_groups'), + url(r'^list_my_groups', 'browser.views.list_my_groups'), + + url(r'^load_post', 'browser.views.load_post'), + url(r'^load_thread', 'browser.views.load_thread'), + + url(r'^list_posts', 'browser.views.list_posts'), + url(r'^refresh_posts', 'browser.views.refresh_posts'), + + url(r'^insert_post', 'browser.views.insert_post'), + url(r'^insert_reply', 'browser.views.insert_reply'), + + url(r'^upvote_get', 'browser.views.upvote_get'), + url(r'^unupvote_get', 'browser.views.unupvote_get'), + + url(r'^upvote', 'browser.views.upvote'), + url(r'^unupvote', 'browser.views.unupvote'), + + url(r'^follow_tag_get', 'browser.views.follow_tag_get'), + url(r'^unfollow_tag_get', 'browser.views.unfollow_tag_get'), + + url(r'^mute_tag_get', 'browser.views.mute_tag_get'), + url(r'^unmute_tag_get', 'browser.views.unmute_tag_get'), + + url(r'^follow_tag', 'browser.views.follow_tag'), + url(r'^unfollow_tag', 'browser.views.unfollow_tag'), + + url(r'^mute_tag', 'browser.views.mute_tag'), + url(r'^unmute_tag', 'browser.views.unmute_tag'), + + url(r'^follow_thread', 'browser.views.follow_thread'), + url(r'^unfollow_thread', 'browser.views.unfollow_thread'), + + url(r'^mute_thread', 'browser.views.mute_thread'), + url(r'^unmute_thread', 'browser.views.unmute_thread'), + + url(r'^follow', 'browser.views.follow_thread_get'), + url(r'^unfollow', 'browser.views.unfollow_thread_get'), + + url(r'^mute', 'browser.views.mute_thread_get'), + url(r'^unmute', 'browser.views.unmute_thread_get'), + + url(r'^add_list', 'browser.views.add_list'), + url(r'^delete_list', 'browser.views.delete_list'), + + url(r'^adjust_list_can_post', 'browser.views.adjust_list_can_post'), + url(r'^adjust_list_can_receive', 'browser.views.adjust_list_can_receive'), + + url(r'^login_email', 'browser.views.login_imap_view'), + url(r'^login_imap', 'browser.views.login_imap'), + url(r'^groups/(?P[\w-]+)/add_donotsend', 'browser.views.add_dissimulate_view'), + url(r'^edit_donotsend', 'browser.views.edit_donotsend'), + url(r'^donotsend_list', 'browser.views.donotsend_list'), + ] urlpatterns.extend(new_patterns) @@ -176,31 +175,31 @@ elif WEBSITE == 'squadbox': new_patterns = [ - url(r'^mod_queue/(?P[\w-]+)', 'browser.views.mod_queue'), + url(r'^mod_queue/(?P[\w-]+)', 'browser.views.mod_queue'), - # url(r'^approve_get', 'browser.views.approve_get'), - # url(r'^reject_get', 'browser.views.reject_get'), + # url(r'^approve_get', 'browser.views.approve_get'), + # url(r'^reject_get', 'browser.views.reject_get'), - url(r'^approve_post', 'browser.views.approve_post'), - url(r'^reject_post', 'browser.views.reject_post'), + url(r'^approve_post', 'browser.views.approve_post'), + url(r'^reject_post', 'browser.views.reject_post'), - url(r'^delete_posts', 'browser.views.delete_posts'), - url(r'^delete_post', 'browser.views.delete_post'), + url(r'^delete_posts', 'browser.views.delete_posts'), + url(r'^delete_post', 'browser.views.delete_post'), - url(r'^whitelist_get', 'browser.views.whitelist_get'), - url(r'^whitelist', 'browser.views.whitelist'), - url(r'^groups/(?P[\w-]+)/add_whitelist', 'browser.views.add_whitelist_view'), + url(r'^whitelist_get', 'browser.views.whitelist_get'), + url(r'^whitelist', 'browser.views.whitelist'), + url(r'^groups/(?P[\w-]+)/add_whitelist', 'browser.views.add_whitelist_view'), - url(r'^unblacklist_unwhitelist', 'browser.views.unblacklist_unwhitelist'), + url(r'^unblacklist_unwhitelist', 'browser.views.unblacklist_unwhitelist'), - url(r'^blacklist_get', 'browser.views.blacklist_get'), - url(r'^blacklist', 'browser.views.blacklist'), - url(r'^groups/(?P[\w-]+)/add_blacklist', 'browser.views.add_blacklist_view'), + url(r'^blacklist_get', 'browser.views.blacklist_get'), + url(r'^blacklist', 'browser.views.blacklist'), + url(r'^groups/(?P[\w-]+)/add_blacklist', 'browser.views.add_blacklist_view'), - url(r'^groups/(?P[\w-]+)/rejected', 'browser.views.rejected'), - url(r'^rejected_thread$', 'browser.views.rejected_thread'), + url(r'^groups/(?P[\w-]+)/rejected', 'browser.views.rejected'), + url(r'^rejected_thread$', 'browser.views.rejected_thread'), - url(r'^moderate_user_for_thread_get', 'browser.views.moderate_user_for_thread_get'), - ] + url(r'^moderate_user_for_thread_get', 'browser.views.moderate_user_for_thread_get'), + ] urlpatterns.extend(new_patterns) diff --git a/registration/auth_urls.py b/registration/auth_urls.py index 09fbaee1..f276f991 100644 --- a/registration/auth_urls.py +++ b/registration/auth_urls.py @@ -23,8 +23,6 @@ """ -from django.conf.urls import include -from django.conf.urls import patterns from django.conf.urls import url from django.contrib.auth import views as auth_views @@ -32,39 +30,39 @@ from http_handler.settings import WEBSITE -urlpatterns = patterns('', - url(r'^login/$', - auth_views.login, - {'template_name': 'registration/login.html', - 'extra_context' : {'website' : WEBSITE}, - }, - name='auth_login'), - url(r'^logout/$', - auth_views.logout, - {'template_name': 'registration/logout.html', - 'extra_context' : {'website' : WEBSITE}, - }, - name='auth_logout'), - url(r'^password/change/$', - murmur_acct, - {'acct_func': auth_views.password_change}, - name='auth_password_change', - ), - url(r'^password/change/done/$', - murmur_acct, - {'acct_func': auth_views.password_change_done}, - name='auth_password_change_done', - ), - url(r'^password/reset/$', - auth_views.password_reset, - name='auth_password_reset'), - url(r'^password/reset/confirm/(?P[0-9A-Za-z]+)-(?P.+)/$', - auth_views.password_reset_confirm, - name='auth_password_reset_confirm'), - url(r'^password/reset/complete/$', - auth_views.password_reset_complete, - name='auth_password_reset_complete'), - url(r'^password/reset/done/$', - auth_views.password_reset_done, - name='auth_password_reset_done'), -) +urlpatterns = [ + url(r'^login/$', + auth_views.login, + {'template_name': 'registration/login.html', + 'extra_context' : {'website' : WEBSITE}, + }, + name='auth_login'), + url(r'^logout/$', + auth_views.logout, + {'template_name': 'registration/logout.html', + 'extra_context' : {'website' : WEBSITE}, + }, + name='auth_logout'), + url(r'^password/change/$', + murmur_acct, + {'acct_func': auth_views.password_change}, + name='auth_password_change', + ), + url(r'^password/change/done/$', + murmur_acct, + {'acct_func': auth_views.password_change_done}, + name='auth_password_change_done', + ), + url(r'^password/reset/$', + auth_views.password_reset, + name='auth_password_reset'), + url(r'^password/reset/confirm/(?P[0-9A-Za-z]+)-(?P.+)/$', + auth_views.password_reset_confirm, + name='auth_password_reset_confirm'), + url(r'^password/reset/complete/$', + auth_views.password_reset_complete, + name='auth_password_reset_complete'), + url(r'^password/reset/done/$', + auth_views.password_reset_done, + name='auth_password_reset_done'), +] \ No newline at end of file diff --git a/registration/backends/default/urls.py b/registration/backends/default/urls.py index 3321c9dc..6f08db05 100644 --- a/registration/backends/default/urls.py +++ b/registration/backends/default/urls.py @@ -17,34 +17,31 @@ """ -from django.conf.urls import patterns -from django.conf.urls import include -from django.conf.urls import url +from django.conf.urls import url,include from django.views.generic.base import TemplateView from registration.backends.default.views import ActivationView from registration.backends.default.views import RegistrationView - -urlpatterns = patterns('', - url(r'^activate/complete/$', - TemplateView.as_view(template_name='registration/activation_complete.html'), - name='registration_activation_complete'), - # Activation keys get matched by \w+ instead of the more specific - # [a-fA-F0-9]{40} because a bad activation key should still get to the view; - # that way it can return a sensible "invalid key" message instead of a - # confusing 404. - url(r'^activate/(?P\w+)/$', - ActivationView.as_view(), - name='registration_activate'), - url(r'^register/$', - RegistrationView.as_view(), - name='registration_register'), - url(r'^register/complete/$', - TemplateView.as_view(template_name='registration/registration_complete.html'), - name='registration_complete'), - url(r'^register/closed/$', - TemplateView.as_view(template_name='registration/registration_closed.html'), - name='registration_disallowed'), - (r'', include('registration.auth_urls')), - ) +urlpatterns = [ + url(r'^activate/complete/$', + TemplateView.as_view(template_name='registration/activation_complete.html'), + name='registration_activation_complete'), + # Activation keys get matched by \w+ instead of the more specific + # [a-fA-F0-9]{40} because a bad activation key should still get to the view; + # that way it can return a sensible "invalid key" message instead of a + # confusing 404. + url(r'^activate/(?P\w+)/$', + ActivationView.as_view(), + name='registration_activate'), + url(r'^register/$', + RegistrationView.as_view(), + name='registration_register'), + url(r'^register/complete/$', + TemplateView.as_view(template_name='registration/registration_complete.html'), + name='registration_complete'), + url(r'^register/closed/$', + TemplateView.as_view(template_name='registration/registration_closed.html'), + name='registration_disallowed'), + url(r'', include('registration.auth_urls')), +] \ No newline at end of file diff --git a/registration/backends/simple/urls.py b/registration/backends/simple/urls.py index dd216298..49aa7ca6 100644 --- a/registration/backends/simple/urls.py +++ b/registration/backends/simple/urls.py @@ -17,21 +17,19 @@ """ -from django.conf.urls import include -from django.conf.urls import patterns -from django.conf.urls import url +from django.conf.urls import url, include from django.views.generic.base import TemplateView from registration.backends.simple.views import RegistrationView from http_handler.settings import WEBSITE -urlpatterns = patterns('', - url(r'^register/$', - RegistrationView.as_view(), - name='registration_register'), - url(r'^register/closed/$', - TemplateView.as_view(template_name=WEBSITE+'/registration/registration_closed.html'), - name='registration_disallowed'), - (r'', include('registration.auth_urls')), - ) +urlpatterns = [ + url(r'^register/$', + RegistrationView.as_view(), + name='registration_register'), + url(r'^register/closed/$', + TemplateView.as_view(template_name=WEBSITE+'/registration/registration_closed.html'), + name='registration_disallowed'), + url(r'', include('registration.auth_urls')), +] diff --git a/registration/management/commands/cleanupregistration.py b/registration/management/commands/cleanupregistration.py index abec5aed..d41a4831 100644 --- a/registration/management/commands/cleanupregistration.py +++ b/registration/management/commands/cleanupregistration.py @@ -7,13 +7,13 @@ """ -from django.core.management.base import NoArgsCommand +from django.core.management.base import BaseCommand from registration.models import RegistrationProfile -class Command(NoArgsCommand): +class Command(BaseCommand): help = "Delete expired user registrations from the database" - def handle_noargs(self, **options): + def handle(self, **options): RegistrationProfile.objects.delete_expired_users() diff --git a/registration/models.py b/registration/models.py index 1868e408..2e478859 100644 --- a/registration/models.py +++ b/registration/models.py @@ -94,7 +94,7 @@ def create_inactive_user(self, email, password, return new_user - create_inactive_user = transaction.commit_on_success(create_inactive_user) + create_inactive_user = transaction.atomic(create_inactive_user) def create_profile(self, user): """ diff --git a/registration/tests/urls.py b/registration/tests/urls.py index 02ef6090..8772c5e6 100644 --- a/registration/tests/urls.py +++ b/registration/tests/urls.py @@ -17,66 +17,66 @@ from registration.views import register -urlpatterns = patterns('', - # Test the 'activate' view with custom template - # name. - url(r'^activate-with-template-name/(?P\w+)/$', - activate, - {'template_name': 'registration/test_template_name.html', - 'backend': 'registration.backends.default.DefaultBackend'}, - name='registration_test_activate_template_name'), - # Test the 'activate' view with - # extra_context_argument. - url(r'^activate-extra-context/(?P\w+)/$', - activate, - {'extra_context': {'foo': 'bar', 'callable': lambda: 'called'}, - 'backend': 'registration.backends.default.DefaultBackend'}, - name='registration_test_activate_extra_context'), - # Test the 'activate' view with success_url argument. - url(r'^activate-with-success-url/(?P\w+)/$', - activate, - {'success_url': 'registration_test_custom_success_url', - 'backend': 'registration.backends.default.DefaultBackend'}, - name='registration_test_activate_success_url'), - # Test the 'register' view with custom template - # name. - url(r'^register-with-template-name/$', - register, - {'template_name': 'registration/test_template_name.html', - 'backend': 'registration.backends.default.DefaultBackend'}, - name='registration_test_register_template_name'), - # Test the'register' view with extra_context - # argument. - url(r'^register-extra-context/$', - register, - {'extra_context': {'foo': 'bar', 'callable': lambda: 'called'}, - 'backend': 'registration.backends.default.DefaultBackend'}, - name='registration_test_register_extra_context'), - # Test the 'register' view with custom URL for - # closed registration. - url(r'^register-with-disallowed-url/$', - register, - {'disallowed_url': 'registration_test_custom_disallowed', - 'backend': 'registration.backends.default.DefaultBackend'}, - name='registration_test_register_disallowed_url'), - # Set up a pattern which will correspond to the - # custom 'disallowed_url' above. - url(r'^custom-disallowed/$', - direct_to_template, - {'template': 'registration/registration_closed.html'}, - name='registration_test_custom_disallowed'), - # Test the 'register' view with custom redirect - # on successful registration. - url(r'^register-with-success_url/$', - register, - {'success_url': 'registration_test_custom_success_url', - 'backend': 'registration.backends.default.DefaultBackend'}, - name='registration_test_register_success_url' - ), - # Pattern for custom redirect set above. - url(r'^custom-success/$', - direct_to_template, - {'template': 'registration/test_template_name.html'}, - name='registration_test_custom_success_url'), - (r'', include('registration.backends.default.urls')), - ) +urlpatterns = [ + # Test the 'activate' view with custom template + # name. + url(r'^activate-with-template-name/(?P\w+)/$', + activate, + {'template_name': 'registration/test_template_name.html', + 'backend': 'registration.backends.default.DefaultBackend'}, + name='registration_test_activate_template_name'), + # Test the 'activate' view with + # extra_context_argument. + url(r'^activate-extra-context/(?P\w+)/$', + activate, + {'extra_context': {'foo': 'bar', 'callable': lambda: 'called'}, + 'backend': 'registration.backends.default.DefaultBackend'}, + name='registration_test_activate_extra_context'), + # Test the 'activate' view with success_url argument. + url(r'^activate-with-success-url/(?P\w+)/$', + activate, + {'success_url': 'registration_test_custom_success_url', + 'backend': 'registration.backends.default.DefaultBackend'}, + name='registration_test_activate_success_url'), + # Test the 'register' view with custom template + # name. + url(r'^register-with-template-name/$', + register, + {'template_name': 'registration/test_template_name.html', + 'backend': 'registration.backends.default.DefaultBackend'}, + name='registration_test_register_template_name'), + # Test the'register' view with extra_context + # argument. + url(r'^register-extra-context/$', + register, + {'extra_context': {'foo': 'bar', 'callable': lambda: 'called'}, + 'backend': 'registration.backends.default.DefaultBackend'}, + name='registration_test_register_extra_context'), + # Test the 'register' view with custom URL for + # closed registration. + url(r'^register-with-disallowed-url/$', + register, + {'disallowed_url': 'registration_test_custom_disallowed', + 'backend': 'registration.backends.default.DefaultBackend'}, + name='registration_test_register_disallowed_url'), + # Set up a pattern which will correspond to the + # custom 'disallowed_url' above. + url(r'^custom-disallowed/$', + direct_to_template, + {'template': 'registration/registration_closed.html'}, + name='registration_test_custom_disallowed'), + # Test the 'register' view with custom redirect + # on successful registration. + url(r'^register-with-success_url/$', + register, + {'success_url': 'registration_test_custom_success_url', + 'backend': 'registration.backends.default.DefaultBackend'}, + name='registration_test_register_success_url' + ), + # Pattern for custom redirect set above. + url(r'^custom-success/$', + direct_to_template, + {'template': 'registration/test_template_name.html'}, + name='registration_test_custom_success_url'), + url(r'', include('registration.backends.default.urls')), +] diff --git a/requirements.txt b/requirements.txt index 13e5b3e4..f3449945 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ -Django==1.7 -Jinja2==2.7.3 +Django==1.8 +Jinja2==2.10.3 MarkupSafe==0.23 mysqlclient==1.4.6 bleach==1.4 @@ -9,7 +9,7 @@ django-appconf==0.6 django-compressor==1.4 django-gravatar==0.1.0 django-mobile==0.4.0 -django-registration==1.0 +django-registration==2.0 html2text==2014.9.25 html5lib==1.0b3 ipython==2.3.0 From e461bb58840ac21303e1b1b25ce3983d4d77378c Mon Sep 17 00:00:00 2001 From: raxelg Date: Sat, 27 Jun 2020 21:31:39 -0400 Subject: [PATCH 2/5] Fixed bug with deprecated code in django1.8 --- browser/views.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/browser/views.py b/browser/views.py index be1c818b..d272a287 100644 --- a/browser/views.py +++ b/browser/views.py @@ -83,10 +83,10 @@ def error(request): def index(request): homepage = "%s/home.html" % WEBSITE if not request.user.is_authenticated(): - return render_to_response(homepage, - {'form': AuthenticationForm(), - 'reg_form': RegistrationForm()}, - context=RequestContext(request)) + return render(request, + homepage, + {'form': AuthenticationForm(), + 'reg_form': RegistrationForm()}) else: if WEBSITE == 'murmur': return HttpResponseRedirect('/posts') From 89b3e326906805f899c34d225695d981f731d676 Mon Sep 17 00:00:00 2001 From: soyapark Date: Wed, 23 Sep 2020 20:31:09 -0400 Subject: [PATCH 3/5] =?UTF-8?q?Divide=20Raxel=E2=80=99s=20pr=20to=20upgrad?= =?UTF-8?q?e=20the=20server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d58f7212..0482b8b3 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/haystack/murmur?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Django version](https://img.shields.io/badge/django-1.6-blue.svg)](https://docs.djangoproject.com/en/2.2/releases/1.6/) [![python version](https://img.shields.io/badge/python-2.7-yellowgreen.svg)](https://www.python.org/download/releases/2.7/) +[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/haystack/murmur?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Django version](https://img.shields.io/badge/django-1.6-blue.svg)]1.8(https://docs.djangoproject.com/en/2.2/releases/1.6/) [![python version](https://img.shields.io/badge/python-2.7-yellowgreen.svg)](https://www.python.org/download/releases/2.7/) Murmur = From cb6e9a1f9b33f46db7d7fb98ce3c32731e660ece Mon Sep 17 00:00:00 2001 From: soyapark Date: Fri, 25 Sep 2020 14:18:44 -0400 Subject: [PATCH 4/5] Fix app registry issue --- config/settings.py | 3 +++ docker-compose.yml | 1 + http_handler/settings.py | 8 +++----- smtp_handler/utils.py | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/config/settings.py b/config/settings.py index cf755b09..861ee2e7 100644 --- a/config/settings.py +++ b/config/settings.py @@ -19,4 +19,7 @@ # hook django os.environ.setdefault("DJANGO_SETTINGS_MODULE", "http_handler.settings") +import django +django.setup() + # the config/boot.py will turn these values into variables set in settings diff --git a/docker-compose.yml b/docker-compose.yml index 03c42de2..71ad359d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -33,6 +33,7 @@ services: ports: - "8825" environment: + - RELAY_HOST=${RELAY_HOST} - GMAIL_USER=${GMAIL_USER} - GMAIL_PASSWORD=${GMAIL_PASSWORD} - PORT=8825 diff --git a/http_handler/settings.py b/http_handler/settings.py index 93394072..c61857ac 100644 --- a/http_handler/settings.py +++ b/http_handler/settings.py @@ -79,12 +79,10 @@ def _get_website(): LOGIN_REDIRECT_URL = "/" -EMAIL_HOST = 'localhost' + EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' -EMAIL_HOST_USER = '' -EMAIL_HOST_PASSWORD = '' -EMAIL_USE_TLS = False -DEFAULT_EMAIL = 'no-reply@' + BASE_URL +EMAIL_USE_TLS = True +DEFAULT_EMAIL = 'no-reply@' + "localhost" if "localhost" in BASE_URL else BASE_URL DEFAULT_FROM_EMAIL = DEFAULT_EMAIL diff --git a/smtp_handler/utils.py b/smtp_handler/utils.py index ad5bee63..6a406f60 100644 --- a/smtp_handler/utils.py +++ b/smtp_handler/utils.py @@ -20,7 +20,7 @@ logger = logging.getLogger('murmur') -HOST = BASE_URL +HOST = "localhost" if "localhost" in BASE_URL else BASE_URL NO_REPLY = DEFAULT_FROM_EMAIL POST_SUFFIX = '__post__' FOLLOW_SUFFIX = '__follow__' From 6338b93a8b9247e574a262d5e49dc4799f9413bc Mon Sep 17 00:00:00 2001 From: soyapark Date: Fri, 25 Sep 2020 14:43:55 -0400 Subject: [PATCH 5/5] Comment out deprecated code --- smtp_handler/main.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/smtp_handler/main.py b/smtp_handler/main.py index 550debc8..c7af7a17 100644 --- a/smtp_handler/main.py +++ b/smtp_handler/main.py @@ -698,7 +698,8 @@ def handle_post_squadbox(message, group, host, verified): def handle_post(message, address=None, host=None): # restart the db connection - django.db.close_connection() + # deprecated at django18 + # django.db.close_connection() if '+' in address and '__' in address: return