INCR-262 Run python-modernize on lms/djangoapps/certificates/migrations and lms/djangoapps/certificates/views (#20558)

* run python modernize

* run isort

* Fix quality
This commit is contained in:
Stu Young
2019-05-21 11:32:51 -04:00
committed by Christie Rice
parent c842b907b5
commit c33bd1c643
19 changed files with 69 additions and 49 deletions

View File

@@ -1,16 +1,17 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations, models
import jsonfield.fields
import model_utils.fields
import django.db.models.deletion
import django.utils.timezone
from badges.models import validate_badge_image
import jsonfield.fields
import model_utils.fields
from django.conf import settings
from lms.djangoapps.certificates import models as cert_models
from django.db import migrations, models
from opaque_keys.edx.django.models import CourseKeyField
from badges.models import validate_badge_image
from lms.djangoapps.certificates import models as cert_models
class Migration(migrations.Migration):

View File

@@ -1,11 +1,13 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
import json
from django.db import migrations, models
# Converted from the original South migration 0020_certificatehtmlviewconfiguration_data.py
from django.db import migrations, models
def forwards(apps, schema_editor):

View File

@@ -1,11 +1,12 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.conf import settings
from django.core.files import File
from django.db import migrations, models
# Converted from the original South migration 0002_default_rate_limit_config.py
from django.db import migrations, models
from django.conf import settings
from django.core.files import File
def forwards(apps, schema_editor):
"""Add default modes"""

View File

@@ -1,10 +1,10 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations, models
import django.utils.timezone
from django.conf import settings
import model_utils.fields
from django.conf import settings
from django.db import migrations, models
from opaque_keys.edx.django.models import CourseKeyField

View File

@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations, models

View File

@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations, models

View File

@@ -1,10 +1,10 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations, models
import django.utils.timezone
from django.conf import settings
import model_utils.fields
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):

View File

@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations, models

View File

@@ -1,10 +1,11 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.apps import apps
from django.db import migrations, models
from django.db.models import F
def copy_field(apps, schema_editor):
CertificateGenerationCourseSetting = apps.get_model('certificates', 'CertificateGenerationCourseSetting')
CertificateGenerationCourseSetting.objects.all().update(self_generation_enabled=F('enabled'))

View File

@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations, models

View File

@@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
import logging
from django.db import migrations, models
from opaque_keys.edx.django.models import CourseKeyField
from opaque_keys.edx.keys import CourseKey

View File

@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations, models

View File

@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations

View File

@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.8 on 2018-01-30 17:38
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations
import django.db.models.manager
from django.db import migrations
class Migration(migrations.Migration):

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-04-04 15:14
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations, models

View File

@@ -2,6 +2,6 @@
Aggregate all views exposed by the certificates app.
"""
# pylint: disable=wildcard-import
from .xqueue import *
from .support import *
from .webview import *
from .xqueue import *

View File

@@ -4,11 +4,16 @@ Certificate end-points used by the student support UI.
See lms/djangoapps/support for more details.
"""
import bleach
from __future__ import absolute_import
import logging
import urllib
from functools import wraps
import bleach
import six
import six.moves.urllib.error # pylint: disable=import-error
import six.moves.urllib.parse # pylint: disable=import-error
import six.moves.urllib.request # pylint: disable=import-error
from django.db import transaction
from django.db.models import Q
from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseForbidden, HttpResponseServerError
@@ -17,9 +22,9 @@ from django.views.decorators.http import require_GET, require_POST
from opaque_keys import InvalidKeyError
from opaque_keys.edx.keys import CourseKey
from courseware.access import has_access
from lms.djangoapps.certificates import api
from lms.djangoapps.certificates.models import CertificateInvalidation
from courseware.access import has_access
from lms.djangoapps.instructor_task.api import generate_certificates_for_students
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
from student.models import CourseEnrollment, User
@@ -81,7 +86,9 @@ def search_certificates(request):
]
"""
user_filter = bleach.clean(urllib.unquote(urllib.quote_plus(request.GET.get("user", ""))))
# pylint: disable=too-many-function-args
unbleached_filter = six.moves.urllib.parse.unquote(six.moves.urllib.parse.quote_plus(request.GET.get("user", "")))
user_filter = bleach.clean(unbleached_filter)
if not user_filter:
msg = _("user is not given.")
return HttpResponseBadRequest(msg)
@@ -93,12 +100,13 @@ def search_certificates(request):
certificates = api.get_certificates_for_user(user.username)
for cert in certificates:
cert["course_key"] = unicode(cert["course_key"])
cert["course_key"] = six.text_type(cert["course_key"])
cert["created"] = cert["created"].isoformat()
cert["modified"] = cert["modified"].isoformat()
cert["regenerate"] = not cert['is_pdf_certificate']
course_id = urllib.quote_plus(request.GET.get("course_id", ""), safe=':/')
# pylint: disable=redundant-keyword-arg
course_id = six.moves.urllib.parse.quote_plus(request.GET.get("course_id", ""), safe=':/')
if course_id:
try:
course_key = CourseKey.from_string(course_id)

View File

@@ -2,24 +2,33 @@
"""
Certificate HTML webview.
"""
from __future__ import absolute_import
import logging
import urllib
from datetime import datetime
from uuid import uuid4
import pytz
import six
import six.moves.urllib.error # pylint: disable=import-error
import six.moves.urllib.parse # pylint: disable=import-error
import six.moves.urllib.request # pylint: disable=import-error
from django.conf import settings
from django.contrib.auth.models import User
from django.http import Http404, HttpResponse
from django.template import RequestContext
from django.utils.encoding import smart_str
from django.utils import translation
from django.utils.encoding import smart_str
from eventtracking import tracker
from opaque_keys import InvalidKeyError
from opaque_keys.edx.keys import CourseKey
from badges.events.course_complete import get_completion_badge
from badges.utils import badges_enabled
from courseware.access import has_access
from courseware.courses import get_course_by_id
from edxmako.shortcuts import render_to_response
from edxmako.template import Template
from lms.djangoapps.certificates.api import (
emit_certificate_event,
get_active_web_certificate,
@@ -35,21 +44,16 @@ from lms.djangoapps.certificates.models import (
CertificateStatuses,
GeneratedCertificate
)
from courseware.access import has_access
from courseware.courses import get_course_by_id
from edxmako.shortcuts import render_to_response
from edxmako.template import Template
from openedx.core.djangoapps.catalog.utils import get_course_run_details
from openedx.core.djangoapps.certificates.api import certificates_viewable_for_course, display_date_for_certificate
from openedx.core.djangoapps.lang_pref.api import get_closest_released_language
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
from openedx.core.lib.courses import course_image_url
from openedx.core.djangoapps.certificates.api import display_date_for_certificate, certificates_viewable_for_course
from student.models import LinkedInAddToProfileConfiguration
from util import organizations_helpers as organization_api
from util.date_utils import strftime_localized
from util.views import handle_500
log = logging.getLogger(__name__)
_ = translation.ugettext
@@ -282,7 +286,7 @@ def _update_social_context(request, context, course, user, user_certificate, pla
if context.get('twitter_share_enabled', False):
twitter_url = 'https://twitter.com/intent/tweet?text={twitter_share_text}&url={share_url}'.format(
twitter_share_text=smart_str(context['twitter_share_text']),
share_url=urllib.quote_plus(smart_str(share_url))
share_url=six.moves.urllib.parse.quote_plus(smart_str(share_url))
)
context['twitter_url'] = twitter_url
context['linked_in_url'] = None
@@ -346,7 +350,7 @@ def _get_user_certificate(request, user, course_key, course, preview_mode=None):
modified_date = datetime.now().date()
user_certificate = GeneratedCertificate(
mode=preview_mode,
verify_uuid=unicode(uuid4().hex),
verify_uuid=six.text_type(uuid4().hex),
modified_date=modified_date
)
elif certificates_viewable_for_course(course):
@@ -388,7 +392,7 @@ def _track_certificate_events(request, context, course, user, user_certificate):
'badge_generator': badge.backend,
'issuing_component': badge.badge_class.issuing_component,
'user_id': user.id,
'course_id': unicode(course_key),
'course_id': six.text_type(course_key),
'enrollment_mode': badge.badge_class.mode,
'assertion_id': badge.id,
'assertion_image_url': badge.image_url,
@@ -405,7 +409,7 @@ def _track_certificate_events(request, context, course, user, user_certificate):
# track certificate evidence_visited event for analytics when certificate_user and accessing_user are different
if request.user and request.user.id != user.id:
emit_certificate_event('evidence_visited', user, unicode(course.id), course, {
emit_certificate_event('evidence_visited', user, six.text_type(course.id), course, {
'certificate_id': user_certificate.verify_uuid,
'enrollment_mode': user_certificate.mode,
'social_network': CertificateSocialNetworks.linkedin
@@ -473,7 +477,7 @@ def render_cert_by_uuid(request, certificate_uuid):
verify_uuid=certificate_uuid,
status=CertificateStatuses.downloadable
)
return render_html_view(request, certificate.user.id, unicode(certificate.course_id))
return render_html_view(request, certificate.user.id, six.text_type(certificate.course_id))
except GeneratedCertificate.DoesNotExist:
raise Http404

View File

@@ -1,6 +1,8 @@
"""
Views used by XQueue certificate generation.
"""
from __future__ import absolute_import
import json
import logging