@@ -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
|
||||
|
||||
|
||||
@@ -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 ' \
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user