From 48e6e552f2c8b65acb12da362f4fcc76b47f29a4 Mon Sep 17 00:00:00 2001 From: bmedx Date: Fri, 28 Jul 2017 13:10:29 -0400 Subject: [PATCH 1/4] PLAT-1633: Upgrade django-ratelimit-backend to 1.1.1 --- cms/djangoapps/course_creators/admin.py | 2 +- cms/urls.py | 3 +-- common/djangoapps/student/admin.py | 2 +- common/djangoapps/track/admin.py | 2 +- common/djangoapps/util/admin.py | 2 +- lms/djangoapps/courseware/admin.py | 3 ++- lms/djangoapps/shoppingcart/admin.py | 2 +- lms/djangoapps/verify_student/admin.py | 2 +- lms/urls.py | 6 ++---- openedx/core/djangoapps/content/course_structures/admin.py | 2 +- openedx/core/djangoapps/credit/admin.py | 2 +- openedx/core/djangoapps/external_auth/admin.py | 2 +- requirements/edx/base.txt | 2 +- 13 files changed, 15 insertions(+), 17 deletions(-) diff --git a/cms/djangoapps/course_creators/admin.py b/cms/djangoapps/course_creators/admin.py index 5a018ab049..52d983c725 100644 --- a/cms/djangoapps/course_creators/admin.py +++ b/cms/djangoapps/course_creators/admin.py @@ -6,9 +6,9 @@ import logging from smtplib import SMTPException from django.conf import settings +from django.contrib import admin from django.core.mail import send_mail from django.dispatch import receiver -from ratelimitbackend import admin from course_creators.models import CourseCreator, send_admin_notification, send_user_notification, update_creator_state from course_creators.views import update_course_creator_group diff --git a/cms/urls.py b/cms/urls.py index 03184d8f21..16da5e6a0a 100644 --- a/cms/urls.py +++ b/cms/urls.py @@ -1,8 +1,7 @@ from django.conf import settings from django.conf.urls import include, patterns, url from django.conf.urls.static import static -# There is a course creators admin table. -from ratelimitbackend import admin +from django.contrib import admin from cms.djangoapps.contentstore.views.organization import OrganizationListView diff --git a/common/djangoapps/student/admin.py b/common/djangoapps/student/admin.py index abc62219f5..561121c8e2 100644 --- a/common/djangoapps/student/admin.py +++ b/common/djangoapps/student/admin.py @@ -1,13 +1,13 @@ """ Django admin pages for student app """ from config_models.admin import ConfigurationModelAdmin from django import forms +from django.contrib import admin from django.contrib.admin.sites import NotRegistered from django.contrib.auth import get_user_model from django.contrib.auth.admin import UserAdmin as BaseUserAdmin from django.utils.translation import ugettext_lazy as _ from opaque_keys import InvalidKeyError from opaque_keys.edx.keys import CourseKey -from ratelimitbackend import admin from student.models import ( CourseAccessRole, diff --git a/common/djangoapps/track/admin.py b/common/djangoapps/track/admin.py index 6aa141a3e2..f450a92324 100644 --- a/common/djangoapps/track/admin.py +++ b/common/djangoapps/track/admin.py @@ -2,7 +2,7 @@ django admin pages for courseware model ''' -from ratelimitbackend import admin +from django.contrib import admin from track.models import TrackingLog diff --git a/common/djangoapps/util/admin.py b/common/djangoapps/util/admin.py index c8da7cf4d6..0f4f7b2354 100644 --- a/common/djangoapps/util/admin.py +++ b/common/djangoapps/util/admin.py @@ -1,6 +1,6 @@ """Admin interface for the util app. """ -from ratelimitbackend import admin +from django.contrib import admin from util.models import RateLimitConfiguration diff --git a/lms/djangoapps/courseware/admin.py b/lms/djangoapps/courseware/admin.py index 17106b5149..5219448274 100644 --- a/lms/djangoapps/courseware/admin.py +++ b/lms/djangoapps/courseware/admin.py @@ -1,5 +1,6 @@ +from django.contrib import admin + from config_models.admin import ConfigurationModelAdmin, KeyedConfigurationModelAdmin -from ratelimitbackend import admin from courseware import models diff --git a/lms/djangoapps/shoppingcart/admin.py b/lms/djangoapps/shoppingcart/admin.py index e40646302d..75569c8db3 100644 --- a/lms/djangoapps/shoppingcart/admin.py +++ b/lms/djangoapps/shoppingcart/admin.py @@ -1,5 +1,5 @@ """Django admin interface for the shopping cart models. """ -from ratelimitbackend import admin +from django.contrib import admin from shoppingcart.models import ( Coupon, diff --git a/lms/djangoapps/verify_student/admin.py b/lms/djangoapps/verify_student/admin.py index a454712e0d..0a53729184 100644 --- a/lms/djangoapps/verify_student/admin.py +++ b/lms/djangoapps/verify_student/admin.py @@ -4,7 +4,7 @@ Admin site configurations for verify_student. """ from config_models.admin import ConfigurationModelAdmin -from ratelimitbackend import admin +from django.contrib import admin from lms.djangoapps.verify_student.models import SoftwareSecurePhotoVerification diff --git a/lms/urls.py b/lms/urls.py index 86c68ef411..e098772df3 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -8,7 +8,7 @@ from django.conf.urls import include, patterns, url from django.conf.urls.static import static from django.views.generic.base import RedirectView from ratelimitbackend import admin - +from django.contrib.admin import autodiscover as django_autodiscover from courseware.views.index import CoursewareIndex from courseware.views.views import CourseTabView, EnrollStaffView, StaticCourseTabView from django_comment_common.models import ForumsConfig @@ -20,9 +20,7 @@ from openedx.core.djangoapps.site_configuration import helpers as configuration_ from openedx.features.enterprise_support.api import enterprise_enabled -# Uncomment the next two lines to enable the admin: -if settings.DEBUG or settings.FEATURES.get('ENABLE_DJANGO_ADMIN_SITE'): - admin.autodiscover() +django_autodiscover() # Use urlpatterns formatted as within the Django docs with first parameter "stuck" to the open parenthesis urlpatterns = ( diff --git a/openedx/core/djangoapps/content/course_structures/admin.py b/openedx/core/djangoapps/content/course_structures/admin.py index cdf31c58e8..d2b7c41e31 100644 --- a/openedx/core/djangoapps/content/course_structures/admin.py +++ b/openedx/core/djangoapps/content/course_structures/admin.py @@ -1,7 +1,7 @@ """ Django Admin model registry for Course Structures sub-application """ -from ratelimitbackend import admin +from django.contrib import admin from .models import CourseStructure diff --git a/openedx/core/djangoapps/credit/admin.py b/openedx/core/djangoapps/credit/admin.py index d16d89c972..e1c500bd4b 100644 --- a/openedx/core/djangoapps/credit/admin.py +++ b/openedx/core/djangoapps/credit/admin.py @@ -1,7 +1,7 @@ """ Django admin page for credit eligibility """ -from ratelimitbackend import admin +from django.contrib import admin from openedx.core.djangoapps.credit.models import ( CreditConfig, diff --git a/openedx/core/djangoapps/external_auth/admin.py b/openedx/core/djangoapps/external_auth/admin.py index 0ee4997e02..ee93c76a55 100644 --- a/openedx/core/djangoapps/external_auth/admin.py +++ b/openedx/core/djangoapps/external_auth/admin.py @@ -2,7 +2,7 @@ django admin pages for courseware model ''' -from ratelimitbackend import admin +from django.contrib import admin from openedx.core.djangoapps.external_auth.models import ExternalAuthMap diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 8f7e777ac3..66c2240977 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -110,7 +110,7 @@ stevedore==1.10.0 sure==1.2.3 sympy==0.7.1 xmltodict==0.4.1 -django-ratelimit-backend==1.0 +django-ratelimit-backend==1.1.1 unicodecsv==0.14.1 django-require==1.0.11 django-webpack-loader==0.4.1 From d91a634d4bebe43cca77084a6722553a5ee14b1b Mon Sep 17 00:00:00 2001 From: bmedx Date: Fri, 28 Jul 2017 15:22:33 -0400 Subject: [PATCH 2/4] Set up correct admin urls in CMS --- cms/urls.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cms/urls.py b/cms/urls.py index 16da5e6a0a..98ce6993f4 100644 --- a/cms/urls.py +++ b/cms/urls.py @@ -1,11 +1,13 @@ from django.conf import settings from django.conf.urls import include, patterns, url from django.conf.urls.static import static -from django.contrib import admin +from django.contrib import admin as django_admin + +from ratelimitbackend import admin from cms.djangoapps.contentstore.views.organization import OrganizationListView -admin.autodiscover() +django_admin.autodiscover() # Pattern to match a course key or a library key COURSELIKE_KEY_PATTERN = r'(?P({}|{}))'.format( From 45d6f97e630f19051399e242e730df5abb9d4ffd Mon Sep 17 00:00:00 2001 From: bmedx Date: Tue, 8 Aug 2017 10:28:27 -0400 Subject: [PATCH 3/4] Clean up autodiscover --- cms/urls.py | 2 +- lms/urls.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cms/urls.py b/cms/urls.py index 98ce6993f4..f887b188bd 100644 --- a/cms/urls.py +++ b/cms/urls.py @@ -2,11 +2,11 @@ from django.conf import settings from django.conf.urls import include, patterns, url from django.conf.urls.static import static from django.contrib import admin as django_admin - from ratelimitbackend import admin from cms.djangoapps.contentstore.views.organization import OrganizationListView + django_admin.autodiscover() # Pattern to match a course key or a library key diff --git a/lms/urls.py b/lms/urls.py index e098772df3..05e0707b27 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -6,9 +6,10 @@ from config_models.views import ConfigurationModelCurrentAPIView from django.conf import settings from django.conf.urls import include, patterns, url from django.conf.urls.static import static +from django.contrib.admin import autodiscover as django_autodiscover from django.views.generic.base import RedirectView from ratelimitbackend import admin -from django.contrib.admin import autodiscover as django_autodiscover + from courseware.views.index import CoursewareIndex from courseware.views.views import CourseTabView, EnrollStaffView, StaticCourseTabView from django_comment_common.models import ForumsConfig @@ -20,7 +21,8 @@ from openedx.core.djangoapps.site_configuration import helpers as configuration_ from openedx.features.enterprise_support.api import enterprise_enabled -django_autodiscover() +if settings.DEBUG or settings.FEATURES.get('ENABLE_DJANGO_ADMIN_SITE'): + django_autodiscover() # Use urlpatterns formatted as within the Django docs with first parameter "stuck" to the open parenthesis urlpatterns = ( From 973d26f4b6b13168e59507c4f624cb6b443e5e8a Mon Sep 17 00:00:00 2001 From: bmedx Date: Tue, 8 Aug 2017 11:21:51 -0400 Subject: [PATCH 4/4] Make autodiscover the same across CMS/LMS --- cms/urls.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cms/urls.py b/cms/urls.py index f887b188bd..b804a13620 100644 --- a/cms/urls.py +++ b/cms/urls.py @@ -1,18 +1,19 @@ from django.conf import settings from django.conf.urls import include, patterns, url from django.conf.urls.static import static -from django.contrib import admin as django_admin +from django.contrib.admin import autodiscover as django_autodiscover from ratelimitbackend import admin from cms.djangoapps.contentstore.views.organization import OrganizationListView -django_admin.autodiscover() +django_autodiscover() # Pattern to match a course key or a library key COURSELIKE_KEY_PATTERN = r'(?P({}|{}))'.format( r'[^/]+/[^/]+/[^/]+', r'[^/:]+:[^/+]+\+[^/+]+(\+[^/]+)?' ) + # Pattern to match a library key only LIBRARY_KEY_PATTERN = r'(?Plibrary-v1:[^/+]+\+[^/+]+)'