Merge pull request #20087 from edx/youngstrom/INCR-182

INCR-182
This commit is contained in:
Michael Youngstrom
2019-03-29 14:13:47 -04:00
committed by GitHub
7 changed files with 41 additions and 35 deletions

View File

@@ -3,17 +3,23 @@ APIs for configuring credit eligibility requirements and tracking
whether a user has satisfied those requirements.
"""
from __future__ import absolute_import
import logging
import six
from opaque_keys.edx.keys import CourseKey
from openedx.core.djangoapps.credit.email_utils import send_credit_notifications
from openedx.core.djangoapps.credit.exceptions import InvalidCreditRequirements, InvalidCreditCourse
from openedx.core.djangoapps.credit.models import (
CreditCourse, CreditRequirement, CreditRequirementStatus, CreditEligibility, CreditRequest
)
from course_modes.models import CourseMode
from openedx.core.djangoapps.credit.email_utils import send_credit_notifications
from openedx.core.djangoapps.credit.exceptions import InvalidCreditCourse, InvalidCreditRequirements
from openedx.core.djangoapps.credit.models import (
CreditCourse,
CreditEligibility,
CreditRequest,
CreditRequirement,
CreditRequirementStatus
)
from student.models import CourseEnrollment
# TODO: Cleanup this mess! ECOM-2908
@@ -175,12 +181,12 @@ def get_eligibilities_for_user(username, course_key=None):
"""
eligibilities = CreditEligibility.get_user_eligibilities(username)
if course_key:
course_key = CourseKey.from_string(unicode(course_key))
course_key = CourseKey.from_string(six.text_type(course_key))
eligibilities = eligibilities.filter(course__course_key=course_key)
return [
{
"course_key": unicode(eligibility.course.course_key),
"course_key": six.text_type(eligibility.course.course_key),
"deadline": eligibility.deadline,
}
for eligibility in eligibilities
@@ -257,7 +263,7 @@ def set_credit_requirement_status(user, course_key, req_namespace, req_name, sta
u'because the requirement does not exist. '
u'The user "%s" should have had his/her status updated to "%s".'
),
unicode(course_key), req_namespace, req_name, user.username, status
six.text_type(course_key), req_namespace, req_name, user.username, status
)
return
@@ -311,7 +317,7 @@ def remove_credit_requirement_status(username, course_key, req_namespace, req_na
u'with namespace "%s" and name "%s" '
u'because the requirement does not exist. '
),
unicode(course_key), req_namespace, req_name
six.text_type(course_key), req_namespace, req_name
)
return

View File

@@ -2,37 +2,35 @@
API for initiating and tracking requests for credit from a provider.
"""
from __future__ import absolute_import
import datetime
import logging
import uuid
import pytz
import six
from django.db import transaction
from edx_proctoring.api import get_last_exam_completion_date
from openedx.core.djangoapps.credit.exceptions import (
UserIsNotEligible,
CreditProviderNotConfigured,
RequestAlreadyCompleted,
CreditRequestNotFound,
InvalidCreditStatus,
RequestAlreadyCompleted,
UserIsNotEligible
)
from openedx.core.djangoapps.credit.models import (
CreditProvider,
CreditRequirementStatus,
CreditRequest,
CreditEligibility,
CreditProvider,
CreditRequest,
CreditRequirementStatus
)
from student.models import (
User,
CourseEnrollment,
)
from openedx.core.djangoapps.credit.signature import signature, get_shared_secret_key
from openedx.core.djangoapps.credit.signature import get_shared_secret_key, signature
from student.models import CourseEnrollment, User
from util.date_utils import to_timestamp
from util.json_request import JsonResponse
# TODO: Cleanup this mess! ECOM-2908
log = logging.getLogger(__name__)
@@ -258,10 +256,10 @@ def create_credit_request(course_key, provider_id, username):
).reason["final_grade"]
# NOTE (CCB): Limiting the grade to seven characters is a hack for ASU.
if len(unicode(final_grade)) > 7:
if len(six.text_type(final_grade)) > 7:
final_grade = u'{:.5f}'.format(final_grade)
else:
final_grade = unicode(final_grade)
final_grade = six.text_type(final_grade)
except (CreditRequirementStatus.DoesNotExist, TypeError, KeyError):
msg = u'Could not retrieve final grade from the credit eligibility table for ' \

View File

@@ -3,6 +3,7 @@ Command to delete all rows from the credit_historicalcreditrequest and
credit_historicalcreditrequirementstatus tables.
"""
from __future__ import absolute_import
import logging
from openedx.core.djangoapps.credit.models import CreditRequest, CreditRequirementStatus
from openedx.core.djangoapps.util.row_delete import delete_rows, BaseDeletionCommand

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 openedx.core.djangoapps.credit.models
import model_utils.fields
import jsonfield.fields
import django.core.validators
import django.db.models.deletion
import django.utils.timezone
import jsonfield.fields
import model_utils.fields
from django.conf import settings
import django.core.validators
from django.db import migrations, models
from opaque_keys.edx.django.models import CourseKeyField
import openedx.core.djangoapps.credit.models
class Migration(migrations.Migration):

View File

@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations, models
import django.db.models.deletion
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,5 +1,5 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from __future__ import absolute_import, unicode_literals
from django.db import migrations, models