From 4138445ad7be83b10b989d04e8e504801a8411d5 Mon Sep 17 00:00:00 2001
From: Kyle Mulka <repalviglator@yahoo.com>
Date: Mon, 6 May 2019 22:44:04 -0400
Subject: [PATCH] ran modernize on openedx/features/course_search,
 course_experience, and coursetalk (#20423)

---
 openedx/features/course_experience/__init__.py      |  5 +++--
 openedx/features/course_experience/course_tools.py  |  6 ++++--
 openedx/features/course_experience/plugins.py       |  2 ++
 openedx/features/course_experience/urls.py          |  4 +++-
 openedx/features/course_experience/utils.py         |  7 +++++--
 openedx/features/course_experience/waffle.py        |  2 ++
 openedx/features/course_search/urls.py              |  4 +++-
 .../features/course_search/views/course_search.py   | 13 ++++++++-----
 .../features/coursetalk/migrations/0001_initial.py  |  1 +
 .../migrations/0002_auto_20160325_0631.py           |  1 +
 10 files changed, 32 insertions(+), 13 deletions(-)

diff --git a/openedx/features/course_experience/__init__.py b/openedx/features/course_experience/__init__.py
index 33202a2baea..386a3f41c3d 100644
--- a/openedx/features/course_experience/__init__.py
+++ b/openedx/features/course_experience/__init__.py
@@ -1,11 +1,12 @@
 """
 Unified course experience settings and helper methods.
 """
+from __future__ import absolute_import
+
 from django.utils.translation import ugettext as _
 
 from openedx.core.djangoapps.util.user_messages import UserMessageCollection
-from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag, WaffleFlagNamespace, WaffleFlag
-
+from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag, WaffleFlag, WaffleFlagNamespace
 
 # Namespace for course experience waffle flags.
 WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace(name='course_experience')
diff --git a/openedx/features/course_experience/course_tools.py b/openedx/features/course_experience/course_tools.py
index fe1f45f261a..23d1bb01355 100644
--- a/openedx/features/course_experience/course_tools.py
+++ b/openedx/features/course_experience/course_tools.py
@@ -1,6 +1,8 @@
 """
 Support for course tool plugins.
 """
+from __future__ import absolute_import
+
 from openedx.core.lib.plugins import PluginManager
 
 # Stevedore extension point namespace
@@ -70,7 +72,7 @@ class CourseToolsPluginManager(PluginManager):
         """
         Returns the list of available course tools in their canonical order.
         """
-        course_tools = cls.get_available_plugins().values()
+        course_tools = list(cls.get_available_plugins().values())
         course_tools.sort(key=lambda course_tool: course_tool.title())
         return course_tools
 
@@ -80,4 +82,4 @@ class CourseToolsPluginManager(PluginManager):
         Returns the course tools applicable to the current user and course.
         """
         course_tools = CourseToolsPluginManager.get_course_tools()
-        return filter(lambda tool: tool.is_enabled(request, course_key), course_tools)
+        return [tool for tool in course_tools if tool.is_enabled(request, course_key)]
diff --git a/openedx/features/course_experience/plugins.py b/openedx/features/course_experience/plugins.py
index e478a8b923a..9b25ada0b10 100644
--- a/openedx/features/course_experience/plugins.py
+++ b/openedx/features/course_experience/plugins.py
@@ -3,6 +3,8 @@ Platform plugins to support the course experience.
 
 This includes any locally defined CourseTools.
 """
+from __future__ import absolute_import
+
 from django.urls import reverse
 from django.utils.translation import ugettext as _
 
diff --git a/openedx/features/course_experience/urls.py b/openedx/features/course_experience/urls.py
index 002d66b4afb..f764e918e83 100644
--- a/openedx/features/course_experience/urls.py
+++ b/openedx/features/course_experience/urls.py
@@ -2,14 +2,16 @@
 Defines URLs for the course experience.
 """
 
+from __future__ import absolute_import
+
 from django.conf.urls import url
 
 from .views.course_dates import CourseDatesFragmentMobileView
 from .views.course_home import CourseHomeFragmentView, CourseHomeView
 from .views.course_outline import CourseOutlineFragmentView
 from .views.course_reviews import CourseReviewsView
-from .views.course_updates import CourseUpdatesFragmentView, CourseUpdatesView
 from .views.course_sock import CourseSockFragmentView
+from .views.course_updates import CourseUpdatesFragmentView, CourseUpdatesView
 from .views.latest_update import LatestUpdateFragmentView
 from .views.welcome_message import WelcomeMessageFragmentView, dismiss_welcome_message
 
diff --git a/openedx/features/course_experience/utils.py b/openedx/features/course_experience/utils.py
index f52a6479d13..01e636ba986 100644
--- a/openedx/features/course_experience/utils.py
+++ b/openedx/features/course_experience/utils.py
@@ -1,16 +1,19 @@
 """
 Common utilities for the course experience, including course outline.
 """
+from __future__ import absolute_import
+
 from completion.models import BlockCompletion
 from django.utils.translation import ugettext as _
+from opaque_keys.edx.keys import CourseKey
+from six.moves import range
+from web_fragments.fragment import Fragment
 
 from lms.djangoapps.course_api.blocks.api import get_blocks
 from lms.djangoapps.course_blocks.utils import get_student_module_as_dict
-from opaque_keys.edx.keys import CourseKey
 from openedx.core.djangolib.markup import HTML
 from openedx.core.lib.cache_utils import request_cached
 from openedx.features.course_experience import FIRST_PURCHASE_OFFER_BANNER_DISPLAY
-from web_fragments.fragment import Fragment
 from xmodule.modulestore.django import modulestore
 
 
diff --git a/openedx/features/course_experience/waffle.py b/openedx/features/course_experience/waffle.py
index 8c96d36e077..cc50ed49689 100644
--- a/openedx/features/course_experience/waffle.py
+++ b/openedx/features/course_experience/waffle.py
@@ -1,6 +1,8 @@
 """
 Miscellaneous waffle switches that both LMS and Studio need to access
 """
+from __future__ import absolute_import
+
 from openedx.core.djangoapps.waffle_utils import WaffleSwitchNamespace
 
 # Namespace
diff --git a/openedx/features/course_search/urls.py b/openedx/features/course_search/urls.py
index 0151991c249..0c9ae379e9a 100644
--- a/openedx/features/course_search/urls.py
+++ b/openedx/features/course_search/urls.py
@@ -2,9 +2,11 @@
 Defines URLs for course search.
 """
 
+from __future__ import absolute_import
+
 from django.conf.urls import url
 
-from views.course_search import CourseSearchView, CourseSearchFragmentView
+from .views.course_search import CourseSearchFragmentView, CourseSearchView
 
 urlpatterns = [
     url(
diff --git a/openedx/features/course_search/views/course_search.py b/openedx/features/course_search/views/course_search.py
index f0cbd574891..149267fb394 100644
--- a/openedx/features/course_search/views/course_search.py
+++ b/openedx/features/course_search/views/course_search.py
@@ -2,21 +2,24 @@
 Views for the course search page.
 """
 
+from __future__ import absolute_import
+
+import six
 from django.contrib.auth.decorators import login_required
 from django.template.context_processors import csrf
-from django.urls import reverse
 from django.template.loader import render_to_string
+from django.urls import reverse
 from django.utils.decorators import method_decorator
 from django.views.decorators.cache import cache_control
 from django.views.decorators.csrf import ensure_csrf_cookie
+from opaque_keys.edx.keys import CourseKey
+from web_fragments.fragment import Fragment
 
 from courseware.courses import get_course_overview_with_access
 from lms.djangoapps.courseware.views.views import CourseTabView
-from opaque_keys.edx.keys import CourseKey
 from openedx.core.djangoapps.plugin_api.views import EdxFragmentView
 from openedx.features.course_experience import default_course_url_name
 from util.views import ensure_valid_course_key
-from web_fragments.fragment import Fragment
 
 
 class CourseSearchView(CourseTabView):
@@ -34,7 +37,7 @@ class CourseSearchView(CourseTabView):
         return super(CourseSearchView, self).get(request, course_id, 'courseware', **kwargs)
 
     def render_to_fragment(self, request, course=None, tab=None, **kwargs):
-        course_id = unicode(course.id)
+        course_id = six.text_type(course.id)
         home_fragment_view = CourseSearchFragmentView()
         return home_fragment_view.render_to_fragment(request, course_id=course_id, **kwargs)
 
@@ -50,7 +53,7 @@ class CourseSearchFragmentView(EdxFragmentView):
         course_key = CourseKey.from_string(course_id)
         course = get_course_overview_with_access(request.user, 'load', course_key, check_if_enrolled=True)
         course_url_name = default_course_url_name(course.id)
-        course_url = reverse(course_url_name, kwargs={'course_id': unicode(course.id)})
+        course_url = reverse(course_url_name, kwargs={'course_id': six.text_type(course.id)})
 
         # Render the course home fragment
         context = {
diff --git a/openedx/features/coursetalk/migrations/0001_initial.py b/openedx/features/coursetalk/migrations/0001_initial.py
index 0c0985f26c6..b1d7139df04 100644
--- a/openedx/features/coursetalk/migrations/0001_initial.py
+++ b/openedx/features/coursetalk/migrations/0001_initial.py
@@ -1,6 +1,7 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
 
+from __future__ import absolute_import
 from django.db import migrations, models
 import django.db.models.deletion
 from django.conf import settings
diff --git a/openedx/features/coursetalk/migrations/0002_auto_20160325_0631.py b/openedx/features/coursetalk/migrations/0002_auto_20160325_0631.py
index 73f04f90657..e17f9c12837 100644
--- a/openedx/features/coursetalk/migrations/0002_auto_20160325_0631.py
+++ b/openedx/features/coursetalk/migrations/0002_auto_20160325_0631.py
@@ -1,6 +1,7 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
 
+from __future__ import absolute_import
 from django.db import migrations, models
 
 
-- 
GitLab