From bebdc069a7b1e3ff2cc77a82c52fd1a1bbde0842 Mon Sep 17 00:00:00 2001 From: bmedx Date: Mon, 6 Nov 2017 11:28:30 -0500 Subject: [PATCH] LMS urls cleanup for Django 1.11 - Remove usage of django.urls.patterns - Change urls tuples to lists - Make all string view names callables - This is the third urls update for LMS --- lms/djangoapps/grades/api/urls.py | 12 +- lms/djangoapps/instructor/views/api_urls.py | 213 ++++++------------ lms/djangoapps/lti_provider/urls.py | 10 +- lms/djangoapps/mobile_api/course_info/urls.py | 8 +- lms/djangoapps/mobile_api/urls.py | 8 +- lms/djangoapps/mobile_api/users/urls.py | 8 +- .../mobile_api/video_outlines/urls.py | 8 +- lms/djangoapps/notes/urls.py | 20 +- lms/djangoapps/notifier_api/urls.py | 12 +- lms/djangoapps/rss_proxy/urls.py | 4 +- .../shoppingcart/tests/test_views.py | 4 +- lms/djangoapps/shoppingcart/urls.py | 51 +++-- lms/djangoapps/static_template_view/urls.py | 43 ++-- lms/djangoapps/student_account/urls.py | 22 +- lms/djangoapps/support/urls.py | 7 +- lms/djangoapps/survey/urls.py | 12 +- lms/djangoapps/teams/api_urls.py | 11 +- lms/djangoapps/teams/urls.py | 11 +- lms/djangoapps/verify_student/urls.py | 17 +- lms/templates/shoppingcart/shopping_cart.html | 2 +- 20 files changed, 208 insertions(+), 275 deletions(-) diff --git a/lms/djangoapps/grades/api/urls.py b/lms/djangoapps/grades/api/urls.py index c4ee1b0c09..d0f3fc8a94 100644 --- a/lms/djangoapps/grades/api/urls.py +++ b/lms/djangoapps/grades/api/urls.py @@ -1,11 +1,13 @@ -""" Grades API URLs. """ +""" +Grades API URLs. +""" + from django.conf import settings -from django.conf.urls import patterns, url +from django.conf.urls import url from lms.djangoapps.grades.api import views -urlpatterns = patterns( - '', +urlpatterns = [ url( r'^v0/course_grade/{course_id}/users/$'.format( course_id=settings.COURSE_ID_PATTERN, @@ -18,4 +20,4 @@ urlpatterns = patterns( ), views.CourseGradingPolicy.as_view(), name='course_grading_policy' ), -) +] diff --git a/lms/djangoapps/instructor/views/api_urls.py b/lms/djangoapps/instructor/views/api_urls.py index 7078011a30..9903cdee50 100644 --- a/lms/djangoapps/instructor/views/api_urls.py +++ b/lms/djangoapps/instructor/views/api_urls.py @@ -2,173 +2,92 @@ Instructor API endpoint urls. """ -from django.conf.urls import patterns, url +from django.conf.urls import url -urlpatterns = patterns( - '', +from lms.djangoapps.instructor.views import api, gradebook_api - url(r'^students_update_enrollment$', - 'lms.djangoapps.instructor.views.api.students_update_enrollment', name="students_update_enrollment"), - url(r'^register_and_enroll_students$', - 'lms.djangoapps.instructor.views.api.register_and_enroll_students', name="register_and_enroll_students"), - url(r'^list_course_role_members$', - 'lms.djangoapps.instructor.views.api.list_course_role_members', name="list_course_role_members"), - url(r'^modify_access$', - 'lms.djangoapps.instructor.views.api.modify_access', name="modify_access"), - url(r'^bulk_beta_modify_access$', - 'lms.djangoapps.instructor.views.api.bulk_beta_modify_access', name="bulk_beta_modify_access"), - url(r'^get_problem_responses$', - 'lms.djangoapps.instructor.views.api.get_problem_responses', name="get_problem_responses"), - url(r'^get_grading_config$', - 'lms.djangoapps.instructor.views.api.get_grading_config', name="get_grading_config"), - url(r'^get_students_features(?P/csv)?$', - 'lms.djangoapps.instructor.views.api.get_students_features', name="get_students_features"), - url(r'^get_issued_certificates/$', - 'lms.djangoapps.instructor.views.api.get_issued_certificates', name="get_issued_certificates"), - url(r'^get_students_who_may_enroll$', - 'lms.djangoapps.instructor.views.api.get_students_who_may_enroll', name="get_students_who_may_enroll"), - url(r'^get_user_invoice_preference$', - 'lms.djangoapps.instructor.views.api.get_user_invoice_preference', name="get_user_invoice_preference"), - url(r'^get_sale_records(?P/csv)?$', - 'lms.djangoapps.instructor.views.api.get_sale_records', name="get_sale_records"), - url(r'^get_sale_order_records$', - 'lms.djangoapps.instructor.views.api.get_sale_order_records', name="get_sale_order_records"), - url(r'^sale_validation_url$', - 'lms.djangoapps.instructor.views.api.sale_validation', name="sale_validation"), - url(r'^get_anon_ids$', - 'lms.djangoapps.instructor.views.api.get_anon_ids', name="get_anon_ids"), - url(r'^get_student_progress_url$', - 'lms.djangoapps.instructor.views.api.get_student_progress_url', name="get_student_progress_url"), - url(r'^reset_student_attempts$', - 'lms.djangoapps.instructor.views.api.reset_student_attempts', name="reset_student_attempts"), - url( - r'^rescore_problem$', - 'lms.djangoapps.instructor.views.api.rescore_problem', - name="rescore_problem" - ), url( - r'^override_problem_score$', - 'lms.djangoapps.instructor.views.api.override_problem_score', - name="override_problem_score" - ), url( - r'^reset_student_attempts_for_entrance_exam$', - 'lms.djangoapps.instructor.views.api.reset_student_attempts_for_entrance_exam', - name="reset_student_attempts_for_entrance_exam" - ), url( - r'^rescore_entrance_exam$', - 'lms.djangoapps.instructor.views.api.rescore_entrance_exam', - name="rescore_entrance_exam" - ), url( - r'^list_entrance_exam_instructor_tasks', - 'lms.djangoapps.instructor.views.api.list_entrance_exam_instructor_tasks', - name="list_entrance_exam_instructor_tasks" - ), url( - r'^mark_student_can_skip_entrance_exam', - 'lms.djangoapps.instructor.views.api.mark_student_can_skip_entrance_exam', - name="mark_student_can_skip_entrance_exam" - ), - - url(r'^list_instructor_tasks$', - 'lms.djangoapps.instructor.views.api.list_instructor_tasks', name="list_instructor_tasks"), - url(r'^list_background_email_tasks$', - 'lms.djangoapps.instructor.views.api.list_background_email_tasks', name="list_background_email_tasks"), - url(r'^list_email_content$', - 'lms.djangoapps.instructor.views.api.list_email_content', name="list_email_content"), - url(r'^list_forum_members$', - 'lms.djangoapps.instructor.views.api.list_forum_members', name="list_forum_members"), - url(r'^update_forum_role_membership$', - 'lms.djangoapps.instructor.views.api.update_forum_role_membership', name="update_forum_role_membership"), - url(r'^send_email$', - 'lms.djangoapps.instructor.views.api.send_email', name="send_email"), - url(r'^change_due_date$', 'lms.djangoapps.instructor.views.api.change_due_date', - name='change_due_date'), - url(r'^reset_due_date$', 'lms.djangoapps.instructor.views.api.reset_due_date', - name='reset_due_date'), - url(r'^show_unit_extensions$', 'lms.djangoapps.instructor.views.api.show_unit_extensions', - name='show_unit_extensions'), - url(r'^show_student_extensions$', 'lms.djangoapps.instructor.views.api.show_student_extensions', - name='show_student_extensions'), +urlpatterns = [ + url(r'^students_update_enrollment$', api.students_update_enrollment, name='students_update_enrollment'), + url(r'^register_and_enroll_students$', api.register_and_enroll_students, name='register_and_enroll_students'), + url(r'^list_course_role_members$', api.list_course_role_members, name='list_course_role_members'), + url(r'^modify_access$', api.modify_access, name='modify_access'), + url(r'^bulk_beta_modify_access$', api.bulk_beta_modify_access, name='bulk_beta_modify_access'), + url(r'^get_problem_responses$', api.get_problem_responses, name='get_problem_responses'), + url(r'^get_grading_config$', api.get_grading_config, name='get_grading_config'), + url(r'^get_students_features(?P/csv)?$', api.get_students_features, name='get_students_features'), + url(r'^get_issued_certificates/$', api.get_issued_certificates, name='get_issued_certificates'), + url(r'^get_students_who_may_enroll$', api.get_students_who_may_enroll, name='get_students_who_may_enroll'), + url(r'^get_user_invoice_preference$', api.get_user_invoice_preference, name='get_user_invoice_preference'), + url(r'^get_sale_records(?P/csv)?$', api.get_sale_records, name='get_sale_records'), + url(r'^get_sale_order_records$', api.get_sale_order_records, name='get_sale_order_records'), + url(r'^sale_validation_url$', api.sale_validation, name='sale_validation'), + url(r'^get_anon_ids$', api.get_anon_ids, name='get_anon_ids'), + url(r'^get_student_progress_url$', api.get_student_progress_url, name='get_student_progress_url'), + url(r'^reset_student_attempts$', api.reset_student_attempts, name='reset_student_attempts'), + url(r'^rescore_problem$', api.rescore_problem, name='rescore_problem'), + url(r'^override_problem_score$', api.override_problem_score, name='override_problem_score'), + url(r'^reset_student_attempts_for_entrance_exam$', api.reset_student_attempts_for_entrance_exam, + name='reset_student_attempts_for_entrance_exam'), + url(r'^rescore_entrance_exam$', api.rescore_entrance_exam, name='rescore_entrance_exam'), + url(r'^list_entrance_exam_instructor_tasks', api.list_entrance_exam_instructor_tasks, + name='list_entrance_exam_instructor_tasks'), + url(r'^mark_student_can_skip_entrance_exam', api.mark_student_can_skip_entrance_exam, + name='mark_student_can_skip_entrance_exam'), + url(r'^list_instructor_tasks$', api.list_instructor_tasks, name='list_instructor_tasks'), + url(r'^list_background_email_tasks$', api.list_background_email_tasks, name='list_background_email_tasks'), + url(r'^list_email_content$', api.list_email_content, name='list_email_content'), + url(r'^list_forum_members$', api.list_forum_members, name='list_forum_members'), + url(r'^update_forum_role_membership$', api.update_forum_role_membership, name='update_forum_role_membership'), + url(r'^send_email$', api.send_email, name='send_email'), + url(r'^change_due_date$', api.change_due_date, name='change_due_date'), + url(r'^reset_due_date$', api.reset_due_date, name='reset_due_date'), + url(r'^show_unit_extensions$', api.show_unit_extensions, name='show_unit_extensions'), + url(r'^show_student_extensions$', api.show_student_extensions, name='show_student_extensions'), # proctored exam downloads... - url(r'^get_proctored_exam_results$', - 'lms.djangoapps.instructor.views.api.get_proctored_exam_results', name="get_proctored_exam_results"), + url(r'^get_proctored_exam_results$', api.get_proctored_exam_results, name='get_proctored_exam_results'), # Grade downloads... - url(r'^list_report_downloads$', - 'lms.djangoapps.instructor.views.api.list_report_downloads', name="list_report_downloads"), - url(r'calculate_grades_csv$', - 'lms.djangoapps.instructor.views.api.calculate_grades_csv', name="calculate_grades_csv"), - url(r'problem_grade_report$', - 'lms.djangoapps.instructor.views.api.problem_grade_report', name="problem_grade_report"), + url(r'^list_report_downloads$', api.list_report_downloads, name='list_report_downloads'), + url(r'calculate_grades_csv$', api.calculate_grades_csv, name='calculate_grades_csv'), + url(r'problem_grade_report$', api.problem_grade_report, name='problem_grade_report'), # Financial Report downloads.. - url(r'^list_financial_report_downloads$', - 'lms.djangoapps.instructor.views.api.list_financial_report_downloads', name="list_financial_report_downloads"), + url(r'^list_financial_report_downloads$', api.list_financial_report_downloads, + name='list_financial_report_downloads'), # Registration Codes.. - url(r'get_registration_codes$', - 'lms.djangoapps.instructor.views.api.get_registration_codes', name="get_registration_codes"), - url(r'generate_registration_codes$', - 'lms.djangoapps.instructor.views.api.generate_registration_codes', name="generate_registration_codes"), - url(r'active_registration_codes$', - 'lms.djangoapps.instructor.views.api.active_registration_codes', name="active_registration_codes"), - url(r'spent_registration_codes$', - 'lms.djangoapps.instructor.views.api.spent_registration_codes', name="spent_registration_codes"), + url(r'get_registration_codes$', api.get_registration_codes, name='get_registration_codes'), + url(r'generate_registration_codes$', api.generate_registration_codes, name='generate_registration_codes'), + url(r'active_registration_codes$', api.active_registration_codes, name='active_registration_codes'), + url(r'spent_registration_codes$', api.spent_registration_codes, name='spent_registration_codes'), # Reports.. - url(r'get_enrollment_report$', - 'lms.djangoapps.instructor.views.api.get_enrollment_report', name="get_enrollment_report"), - url(r'get_exec_summary_report$', - 'lms.djangoapps.instructor.views.api.get_exec_summary_report', name="get_exec_summary_report"), - url(r'get_course_survey_results$', - 'lms.djangoapps.instructor.views.api.get_course_survey_results', name="get_course_survey_results"), - url(r'export_ora2_data', - 'lms.djangoapps.instructor.views.api.export_ora2_data', name="export_ora2_data"), + url(r'get_enrollment_report$', api.get_enrollment_report, name='get_enrollment_report'), + url(r'get_exec_summary_report$', api.get_exec_summary_report, name='get_exec_summary_report'), + url(r'get_course_survey_results$', api.get_course_survey_results, name='get_course_survey_results'), + url(r'export_ora2_data', api.export_ora2_data, name='export_ora2_data'), # Coupon Codes.. - url(r'get_coupon_codes', - 'lms.djangoapps.instructor.views.api.get_coupon_codes', name="get_coupon_codes"), + url(r'get_coupon_codes', api.get_coupon_codes, name='get_coupon_codes'), # spoc gradebook - url(r'^gradebook$', - 'lms.djangoapps.instructor.views.gradebook_api.spoc_gradebook', name='spoc_gradebook'), + url(r'^gradebook$', gradebook_api.spoc_gradebook, name='spoc_gradebook'), - url(r'^gradebook/(?P[0-9]+)$', - 'lms.djangoapps.instructor.views.gradebook_api.spoc_gradebook', name='spoc_gradebook'), + url(r'^gradebook/(?P[0-9]+)$', gradebook_api.spoc_gradebook, name='spoc_gradebook'), # Cohort management - url(r'add_users_to_cohorts$', - 'lms.djangoapps.instructor.views.api.add_users_to_cohorts', name="add_users_to_cohorts"), + url(r'add_users_to_cohorts$', api.add_users_to_cohorts, name='add_users_to_cohorts'), # Certificates - url(r'^generate_example_certificates$', - 'lms.djangoapps.instructor.views.api.generate_example_certificates', - name='generate_example_certificates'), - - url(r'^enable_certificate_generation$', - 'lms.djangoapps.instructor.views.api.enable_certificate_generation', - name='enable_certificate_generation'), - - url(r'^start_certificate_generation', - 'lms.djangoapps.instructor.views.api.start_certificate_generation', - name='start_certificate_generation'), - - url(r'^start_certificate_regeneration', - 'lms.djangoapps.instructor.views.api.start_certificate_regeneration', - name='start_certificate_regeneration'), - - url(r'^certificate_exception_view/$', - 'lms.djangoapps.instructor.views.api.certificate_exception_view', - name='certificate_exception_view'), - - url(r'^generate_certificate_exceptions/(?P[^/]*)', - 'lms.djangoapps.instructor.views.api.generate_certificate_exceptions', + url(r'^generate_example_certificates$', api.generate_example_certificates, name='generate_example_certificates'), + url(r'^enable_certificate_generation$', api.enable_certificate_generation, name='enable_certificate_generation'), + url(r'^start_certificate_generation', api.start_certificate_generation, name='start_certificate_generation'), + url(r'^start_certificate_regeneration', api.start_certificate_regeneration, name='start_certificate_regeneration'), + url(r'^certificate_exception_view/$', api.certificate_exception_view, name='certificate_exception_view'), + url(r'^generate_certificate_exceptions/(?P[^/]*)', api.generate_certificate_exceptions, name='generate_certificate_exceptions'), - - url(r'^generate_bulk_certificate_exceptions', - 'lms.djangoapps.instructor.views.api.generate_bulk_certificate_exceptions', + url(r'^generate_bulk_certificate_exceptions', api.generate_bulk_certificate_exceptions, name='generate_bulk_certificate_exceptions'), - - url(r'^certificate_invalidation_view/$', - 'lms.djangoapps.instructor.views.api.certificate_invalidation_view', - name='certificate_invalidation_view'), -) + url(r'^certificate_invalidation_view/$', api.certificate_invalidation_view, name='certificate_invalidation_view'), +] diff --git a/lms/djangoapps/lti_provider/urls.py b/lms/djangoapps/lti_provider/urls.py index 1e1843950d..e71eab974e 100644 --- a/lms/djangoapps/lti_provider/urls.py +++ b/lms/djangoapps/lti_provider/urls.py @@ -3,15 +3,15 @@ LTI Provider API endpoint urls. """ from django.conf import settings -from django.conf.urls import patterns, url +from django.conf.urls import url -urlpatterns = patterns( - '', +from lti_provider import views +urlpatterns = [ url( r'^courses/{course_id}/{usage_id}$'.format( course_id=settings.COURSE_ID_PATTERN, usage_id=settings.USAGE_ID_PATTERN ), - 'lti_provider.views.lti_launch', name="lti_provider_launch"), -) + views.lti_launch, name="lti_provider_launch"), +] diff --git a/lms/djangoapps/mobile_api/course_info/urls.py b/lms/djangoapps/mobile_api/course_info/urls.py index e1739df4af..9af6f0021e 100644 --- a/lms/djangoapps/mobile_api/course_info/urls.py +++ b/lms/djangoapps/mobile_api/course_info/urls.py @@ -1,13 +1,13 @@ """ URLs for course_info API """ + from django.conf import settings -from django.conf.urls import patterns, url +from django.conf.urls import url from .views import CourseHandoutsList, CourseUpdatesList -urlpatterns = patterns( - 'mobile_api.course_info.views', +urlpatterns = [ url( r'^{}/handouts$'.format(settings.COURSE_ID_PATTERN), CourseHandoutsList.as_view(), @@ -18,4 +18,4 @@ urlpatterns = patterns( CourseUpdatesList.as_view(), name='course-updates-list' ), -) +] diff --git a/lms/djangoapps/mobile_api/urls.py b/lms/djangoapps/mobile_api/urls.py index e2ada74ccd..e2ba70e18c 100644 --- a/lms/djangoapps/mobile_api/urls.py +++ b/lms/djangoapps/mobile_api/urls.py @@ -1,14 +1,14 @@ """ URLs for mobile API """ -from django.conf.urls import include, patterns, url + +from django.conf.urls import include, url from .users.views import my_user_info -urlpatterns = patterns( - '', +urlpatterns = [ url(r'^users/', include('mobile_api.users.urls')), url(r'^my_user_info', my_user_info), url(r'^video_outlines/', include('mobile_api.video_outlines.urls')), url(r'^course_info/', include('mobile_api.course_info.urls')), -) +] diff --git a/lms/djangoapps/mobile_api/users/urls.py b/lms/djangoapps/mobile_api/users/urls.py index 91efbb0101..715977aadf 100644 --- a/lms/djangoapps/mobile_api/users/urls.py +++ b/lms/djangoapps/mobile_api/users/urls.py @@ -1,13 +1,13 @@ """ URLs for user API """ + from django.conf import settings -from django.conf.urls import patterns, url +from django.conf.urls import url from .views import UserCourseEnrollmentsList, UserCourseStatus, UserDetail -urlpatterns = patterns( - 'mobile_api.users.views', +urlpatterns = [ url('^' + settings.USERNAME_PATTERN + '$', UserDetail.as_view(), name='user-detail'), url( '^' + settings.USERNAME_PATTERN + '/course_enrollments/$', @@ -17,4 +17,4 @@ urlpatterns = patterns( url('^{}/course_status_info/{}'.format(settings.USERNAME_PATTERN, settings.COURSE_ID_PATTERN), UserCourseStatus.as_view(), name='user-course-status') -) +] diff --git a/lms/djangoapps/mobile_api/video_outlines/urls.py b/lms/djangoapps/mobile_api/video_outlines/urls.py index 01c05acb7e..116a2b18ee 100644 --- a/lms/djangoapps/mobile_api/video_outlines/urls.py +++ b/lms/djangoapps/mobile_api/video_outlines/urls.py @@ -1,13 +1,13 @@ """ URLs for video outline API """ + from django.conf import settings -from django.conf.urls import patterns, url +from django.conf.urls import url from .views import VideoSummaryList, VideoTranscripts -urlpatterns = patterns( - 'mobile_api.video_outlines.views', +urlpatterns = [ url( r'^courses/{}$'.format(settings.COURSE_ID_PATTERN), VideoSummaryList.as_view(), @@ -18,4 +18,4 @@ urlpatterns = patterns( VideoTranscripts.as_view(), name='video-transcripts-detail' ), -) +] diff --git a/lms/djangoapps/notes/urls.py b/lms/djangoapps/notes/urls.py index c083507e78..293c69155b 100644 --- a/lms/djangoapps/notes/urls.py +++ b/lms/djangoapps/notes/urls.py @@ -1,9 +1,15 @@ -from django.conf.urls import patterns, url +""" +URL definitions for the notes app +""" + +from django.conf.urls import url + +from notes.api import api_request id_regex = r"(?P[0-9A-Fa-f]+)" -urlpatterns = patterns('notes.api', - url(r'^api$', 'api_request', {'resource': 'root'}, name='notes_api_root'), - url(r'^api/annotations$', 'api_request', {'resource': 'notes'}, name='notes_api_notes'), - url(r'^api/annotations/' + id_regex + r'$', 'api_request', {'resource': 'note'}, name='notes_api_note'), - url(r'^api/search', 'api_request', {'resource': 'search'}, name='notes_api_search') - ) +urlpatterns = [ + url(r'^api$', api_request, {'resource': 'root'}, name='notes_api_root'), + url(r'^api/annotations$', api_request, {'resource': 'notes'}, name='notes_api_notes'), + url(r'^api/annotations/' + id_regex + r'$', api_request, {'resource': 'note'}, name='notes_api_note'), + url(r'^api/search', api_request, {'resource': 'search'}, name='notes_api_search') +] diff --git a/lms/djangoapps/notifier_api/urls.py b/lms/djangoapps/notifier_api/urls.py index f65260df50..b5ee772670 100644 --- a/lms/djangoapps/notifier_api/urls.py +++ b/lms/djangoapps/notifier_api/urls.py @@ -1,11 +1,15 @@ -from django.conf.urls import include, patterns, url +""" +URLs for the notifier api app +""" + +from django.conf.urls import include, url from rest_framework import routers from notifier_api.views import NotifierUsersViewSet notifier_api_router = routers.DefaultRouter() notifier_api_router.register(r'users', NotifierUsersViewSet, base_name="notifier_users") -urlpatterns = patterns( - '', + +urlpatterns = [ url(r'^v1/', include(notifier_api_router.urls)), -) +] diff --git a/lms/djangoapps/rss_proxy/urls.py b/lms/djangoapps/rss_proxy/urls.py index bacfe92e2d..55e8171ed4 100644 --- a/lms/djangoapps/rss_proxy/urls.py +++ b/lms/djangoapps/rss_proxy/urls.py @@ -3,6 +3,8 @@ URLs for the rss_proxy djangoapp. """ from django.conf.urls import url +from rss_proxy.views import proxy + urlpatterns = [ - url(r"^$", "rss_proxy.views.proxy", name="proxy"), + url(r'^$', proxy, name='proxy'), ] diff --git a/lms/djangoapps/shoppingcart/tests/test_views.py b/lms/djangoapps/shoppingcart/tests/test_views.py index 30a2cb50ed..78748eda37 100644 --- a/lms/djangoapps/shoppingcart/tests/test_views.py +++ b/lms/djangoapps/shoppingcart/tests/test_views.py @@ -1383,7 +1383,7 @@ class ShoppingCartViewsTests(SharedModuleStoreTestCase, XssTestMixin): self._assert_404(reverse('shoppingcart.views.use_code', args=[]), use_post=True) self._assert_404(reverse('shoppingcart.views.update_user_cart', args=[])) self._assert_404(reverse('shoppingcart.views.reset_code_redemption', args=[]), use_post=True) - self._assert_404(reverse('shoppingcart.views.billing_details', args=[])) + self._assert_404(reverse('billing_details', args=[])) def test_upgrade_postpay_callback_emits_ga_event(self): # Enroll as honor in the course with the current user. @@ -1693,7 +1693,7 @@ class ShoppingcartViewsClosedEnrollment(ModuleStoreTestCase): self.testing_course.enrollment_end = self.nextday self.testing_course = self.update_course(self.testing_course, self.user.id) - resp = self.client.post(reverse('shoppingcart.views.billing_details')) + resp = self.client.post(reverse('billing_details')) self.assertEqual(resp.status_code, 200) self.assertTrue(json.loads(resp.content)['is_course_enrollment_closed']) diff --git a/lms/djangoapps/shoppingcart/urls.py b/lms/djangoapps/shoppingcart/urls.py index a1cf21bffa..9b64c32076 100644 --- a/lms/djangoapps/shoppingcart/urls.py +++ b/lms/djangoapps/shoppingcart/urls.py @@ -1,29 +1,36 @@ +""" +Defines the shoppingcart URLs +""" + from django.conf import settings -from django.conf.urls import patterns, url +from django.conf.urls import url -urlpatterns = patterns( - 'shoppingcart.views', +from shoppingcart import views + +urlpatterns = [ + # Both the ~accept and ~reject callback pages are handled here + url(r'^postpay_callback/$', views.postpay_callback, name='shoppingcart.views.postpay_callback'), + + url(r'^receipt/(?P[0-9]*)/$', views.show_receipt, name='shoppingcart.views.show_receipt'), + url(r'^donation/$', views.donate, name='donation'), + url(r'^csv_report/$', views.csv_report, name='payment_csv_report'), - url(r'^postpay_callback/$', 'postpay_callback'), # Both the ~accept and ~reject callback pages are handled here - url(r'^receipt/(?P[0-9]*)/$', 'show_receipt'), - url(r'^donation/$', 'donate', name='donation'), - url(r'^csv_report/$', 'csv_report', name='payment_csv_report'), # These following URLs are only valid if the ENABLE_SHOPPING_CART feature flag is set - url(r'^$', 'show_cart'), - url(r'^clear/$', 'clear_cart'), - url(r'^remove_item/$', 'remove_item'), - url(r'^add/course/{}/$'.format(settings.COURSE_ID_PATTERN), 'add_course_to_cart', name='add_course_to_cart'), - url(r'^register/redeem/(?P[0-9A-Za-z]+)/$', 'register_code_redemption', name='register_code_redemption'), - url(r'^use_code/$', 'use_code'), - url(r'^update_user_cart/$', 'update_user_cart'), - url(r'^reset_code_redemption/$', 'reset_code_redemption'), - url(r'^billing_details/$', 'billing_details', name='billing_details'), - url(r'^verify_cart/$', 'verify_cart'), -) + url(r'^$', views.show_cart, name='shoppingcart.views.show_cart'), + url(r'^clear/$', views.clear_cart, name='shoppingcart.views.clear_cart'), + url(r'^remove_item/$', views.remove_item, name='shoppingcart.views.remove_item'), + url(r'^add/course/{}/$'.format(settings.COURSE_ID_PATTERN), views.add_course_to_cart, name='add_course_to_cart'), + url(r'^register/redeem/(?P[0-9A-Za-z]+)/$', + views.register_code_redemption, name='register_code_redemption'), + url(r'^use_code/$', views.use_code, name='shoppingcart.views.use_code'), + url(r'^update_user_cart/$', views.update_user_cart, name='shoppingcart.views.update_user_cart'), + url(r'^reset_code_redemption/$', views.reset_code_redemption, name='shoppingcart.views.reset_code_redemption'), + url(r'^billing_details/$', views.billing_details, name='billing_details'), + url(r'^verify_cart/$', views.verify_cart, name='shoppingcart.views.verify_cart'), +] if settings.FEATURES.get('ENABLE_PAYMENT_FAKE'): from shoppingcart.tests.payment_fake import PaymentFakeView - urlpatterns += patterns( - 'shoppingcart.tests.payment_fake', - url(r'^payment_fake', PaymentFakeView.as_view()), - ) + urlpatterns += [ + url(r'^payment_fake', PaymentFakeView.as_view(), name='shoppingcart.views.payment_fake'), + ] diff --git a/lms/djangoapps/static_template_view/urls.py b/lms/djangoapps/static_template_view/urls.py index 7ff4635666..72235c52bc 100644 --- a/lms/djangoapps/static_template_view/urls.py +++ b/lms/djangoapps/static_template_view/urls.py @@ -3,34 +3,31 @@ URLs for static_template_view app """ from django.conf import settings -from django.conf.urls import patterns, url +from django.conf.urls import url -urlpatterns = ( - 'static_template_view.views', - - # TODO: Is this used anymore? What is STATIC_GRAB? - url(r'^t/(?P