Skip to content

Commit

Permalink
Merge pull request #39 from proversity-org/pearson/PE-975
Browse files Browse the repository at this point in the history
PE-975 - Add support to CCX courses.
  • Loading branch information
Squirrel18 authored Apr 10, 2020
2 parents a9a703b + ffb833c commit b3a49af
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 14 deletions.
27 changes: 26 additions & 1 deletion openedx_proversity_reports/google_services/bigquery_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
'https://www.googleapis.com/auth/cloud-platform',
'https://www.googleapis.com/auth/bigquery.readonly',
)
CCX_CANONICAL_NAMESPACE = 'ccx-v1'
logger = logging.getLogger(__name__)


Expand Down Expand Up @@ -90,11 +91,35 @@ def get_google_bigquery_course_id(course_key):
Get the deprecated course key string and then replaces the fordward slash characters '/'
with underscore characters '_' e.g. course-v1:edX+DemoX+Demo_Course -> edX-DemoX-Demo_Course
"""
deprecated_course_key = course_key._to_deprecated_string() # pylint: disable=protected-access
if course_key.CANONICAL_NAMESPACE == CCX_CANONICAL_NAMESPACE:
deprecated_course_key = to_ccx_string(course_key)
else:
deprecated_course_key = course_key._to_deprecated_string() # pylint: disable=protected-access

return deprecated_course_key.replace('/', '_')


def to_ccx_string(course_key):
"""
Returns a forward slash style CCX course id string similar to a deprecated course id style.
This function is required because the _to_deprecated_string method in the CCXLocator class
is not implemented because the CCX course keys are not supposed to have a deprecated value.
e.g. ccx-v1:edX+DemoX.1+2014+ccx@10 -> edX/DemoX.1/2014/10
Args:
course_key: opaque_keys.edx.keys.CourseKey instance.
Returns:
CCX course id string.
"""
return '{org}/{course_number}/{course_run}/{ccx_id}'.format(
org=course_key.org,
course_number=course_key.course,
course_run=course_key.run,
ccx_id=course_key.ccx,
)


class GoogleBigQueryInformationError(Exception):
"""
Exception class raised when some of the required information
Expand Down
1 change: 1 addition & 0 deletions requirements/ironwood.in
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ edx-completion==1.0.1
google-api-python-client==1.7.8
google-auth==1.6.3
google-cloud-bigquery==1.20.0
cachetools==3.1.1
29 changes: 16 additions & 13 deletions requirements/ironwood.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,30 @@
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile --output-file requirements/ironwood.txt requirements/ironwood.in
# pip-compile --output-file=requirements/ironwood.txt requirements/ironwood.in
#
appdirs==1.4.3 # via fs
astroid==1.5.3 # via pylint
bumpversion==0.5.3
cachetools==3.1.1 # via google-auth
bumpversion==0.5.3 # via -r requirements/ironwood.in
cachetools==3.1.1 # via -r requirements/ironwood.in, google-auth
certifi==2019.6.16 # via requests
chardet==3.0.4 # via requests
django-model-utils==3.2.0 # via edx-completion
django-waffle==0.17.0 # via edx-django-utils, edx-drf-extensions
django==1.11.20
django==1.11.20 # via -r requirements/ironwood.in, django-model-utils, edx-completion, edx-django-utils, edx-drf-extensions, edx-opaque-keys, rest-condition
djangorestframework-jwt==1.11.0 # via edx-drf-extensions
djangorestframework==3.6.3
edx-completion==1.0.1
djangorestframework==3.6.3 # via -r requirements/ironwood.in, edx-completion, edx-drf-extensions, rest-condition
edx-completion==1.0.1 # via -r requirements/ironwood.in
edx-django-utils==2.0.0 # via edx-drf-extensions
edx-drf-extensions==2.3.5 # via edx-completion
edx-opaque-keys==0.4.4
edx-opaque-keys==0.4.4 # via -r requirements/ironwood.in, edx-completion, edx-drf-extensions
fs==2.4.8 # via xblock
future==0.17.1 # via pyjwkest
google-api-core==1.14.3 # via google-cloud-core
google-api-python-client==1.7.8
google-api-python-client==1.7.8 # via -r requirements/ironwood.in
google-auth-httplib2==0.0.3 # via google-api-python-client
google-auth==1.6.3
google-cloud-bigquery==1.20.0
google-auth==1.6.3 # via -r requirements/ironwood.in, google-api-core, google-api-python-client, google-auth-httplib2
google-cloud-bigquery==1.20.0 # via -r requirements/ironwood.in
google-cloud-core==1.0.3 # via google-cloud-bigquery
google-resumable-media==0.4.1 # via google-cloud-bigquery
googleapis-common-protos==1.6.0 # via google-api-core
Expand All @@ -38,15 +38,15 @@ markupsafe==1.1.1 # via xblock
mccabe==0.6.1 # via pylint
newrelic==4.20.1.121 # via edx-django-utils
pbr==5.4.1 # via stevedore
protobuf==3.10.0 # via google-api-core, google-cloud-bigquery, googleapis-common-protos
protobuf==3.10.0 # via google-api-core, google-cloud-bigquery
psutil==1.2.1 # via edx-django-utils, edx-drf-extensions
pyasn1-modules==0.2.5 # via google-auth
pyasn1==0.4.5 # via pyasn1-modules, rsa
pycodestyle==2.5.0
pycodestyle==2.5.0 # via -r requirements/ironwood.in
pycryptodomex==3.8.2 # via pyjwkest
pyjwkest==1.3.2 # via edx-drf-extensions
pyjwt==1.7.1 # via djangorestframework-jwt
pylint==1.7.6
pylint==1.7.6 # via -r requirements/ironwood.in
pymongo==3.8.0 # via edx-opaque-keys
python-dateutil==2.8.0 # via edx-drf-extensions, xblock
pytz==2019.1 # via django, edx-completion, fs, google-api-core, xblock
Expand All @@ -63,3 +63,6 @@ web-fragments==0.3.0 # via xblock
webob==1.8.5 # via xblock
wrapt==1.11.2 # via astroid
xblock==1.2.2 # via edx-completion

# The following packages are considered to be unsafe in a requirements file:
# setuptools

0 comments on commit b3a49af

Please sign in to comment.