Skip to content

Commit

Permalink
[BB-2381] Update completion-aggregator for Juniper (#79)
Browse files Browse the repository at this point in the history
* Added on_delete=models.DO_NOTHING to ForeignKeys, replaced course_key with context_key for BlockCompletion lookups

* Removed py2.7 from .travis.yml

* Removed python2 from tox.ini, setup.py

* Removed context_key from .submit_completion() [Only block key is required now]

* Changed Aggregator foreign key on_delete to models.CASCADE

* Update requirements/base.in

Co-authored-by: Kshitij Sobti <[email protected]>

* Update requirements/base.in

Co-authored-by: Kshitij Sobti <[email protected]>

* Update requirements/base.in

Co-authored-by: Kshitij Sobti <[email protected]>

* Add constraint edx-celeryutils==0.5.1, django-oauth-tolkit<1.0

* Bumped version to 3.0.0

Co-authored-by: Aayush Agrawal <[email protected]>
Co-authored-by: Kshitij Sobti <[email protected]>
  • Loading branch information
3 people authored Sep 7, 2020
1 parent ac4ccab commit a71ab4f
Show file tree
Hide file tree
Showing 24 changed files with 245 additions and 227 deletions.
5 changes: 1 addition & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
language: python
python:
- 2.7
- 3.5
services:
- mysql
env:
- TOXENV=django111
- TOXENV=django22
matrix:
include:
- python: 3.5
Expand All @@ -14,8 +13,6 @@ matrix:
env: TOXENV=docs
- python: 3.5
env: TOXENV=django22
- python: 2.7
env: TOXENV=django111
cache:
- pip
before_install:
Expand Down
2 changes: 1 addition & 1 deletion completion_aggregator/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@

from __future__ import absolute_import, unicode_literals

__version__ = '2.2.4'
__version__ = '3.0.0'

default_app_config = 'completion_aggregator.apps.CompletionAggregatorAppConfig' # pylint: disable=invalid-name
1 change: 0 additions & 1 deletion completion_aggregator/api/v0/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,6 @@ def post(self, request, course_key, block_key):

_, created = BlockCompletion.objects.submit_completion(
user=request.user,
course_key=course_key,
block_key=block_key,
completion=completion,
)
Expand Down
2 changes: 1 addition & 1 deletion completion_aggregator/compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ def get_block_completions(user, course_key):
from completion.models import BlockCompletion
return BlockCompletion.objects.filter(
user=user,
course_key=course_key,
context_key=course_key,
)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,6 @@ def _complete_blocks_for_users(self, blocks, users):
for block in blocks:
BlockCompletion.objects.submit_completion(
user=user,
course_key=self.course.id,
block_key=block.location,
completion=1.0
)
Expand Down
2 changes: 1 addition & 1 deletion completion_aggregator/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ class Aggregator(TimeStampedModel):
They are considered 100% complete when all descendant blocks are complete.
"""

user = models.ForeignKey(User)
user = models.ForeignKey(User, on_delete=models.CASCADE)
course_key = CourseKeyField(max_length=255)
aggregation_name = models.CharField(max_length=255)
block_key = UsageKeyField(max_length=255)
Expand Down
4 changes: 2 additions & 2 deletions completion_aggregator/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,12 +104,12 @@ def completion_updated_handler(signal, sender, instance, created, raw, using, up
log.debug(
"Updating aggregators for %s in %s. Updated block: %s",
instance.user.username,
instance.course_key,
instance.context_key,
instance.block_key,
)
models.StaleCompletion.objects.create(
username=instance.user.username,
course_key=instance.course_key,
course_key=instance.context_key,
block_key=instance.block_key
)
if not getattr(settings, 'COMPLETION_AGGREGATOR_ASYNC_AGGREGATION', False):
Expand Down
14 changes: 7 additions & 7 deletions requirements/base.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

-c constraints.txt

celery==3.1.18 # Asynchronous tasks
edx-celeryutils<0.2 # Custom task extensions
Django>=1.8 # Web application framework
celery # Asynchronous tasks
edx-celeryutils # Custom task extensions
Django # Web application framework
django-oauth-toolkit<1.0
djangorestframework>=3.0,<3.7 # API tools
django-model-utils<3.2 # Provides TimeStampedModel abstract base class
edx-opaque-keys>=0.4.2,<2 # Provides CourseKey and UsageKey
edx-completion>=2,<3
djangorestframework>=3.0 # API tools
django-model-utils # Provides TimeStampedModel abstract base class
edx-opaque-keys # Provides CourseKey and UsageKey
edx-completion>=3
mysqlclient # For connecting to MySQL
six
XBlock<1.3
4 changes: 2 additions & 2 deletions requirements/constraints.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
jsonfield<2.1
django-braces<1.14
edx-drf-extensions<2.1
edx-django-utils<2
django-waffle<0.16
futures; python_version < "3"
inflect==3.0.2
edx-celeryutils==0.5.1 #0.5.2 breaks tests
2 changes: 1 addition & 1 deletion requirements/dev.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

diff-cover # Changeset diff test coverage
edx-lint # For updating pylintrc
edx-i18n-tools<0.5 # For i18n_tool dummy
edx-i18n-tools # For i18n_tool dummy
pip-tools # Requirements file management
tox # virtualenv management for tests
tox-battery==0.2 # Makes tox aware of requirements file changes; restricted by https://github.com/signalpillar/tox-battery/issues/6
Expand Down
107 changes: 55 additions & 52 deletions requirements/dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,112 +10,115 @@ appdirs==1.4.4 # via fs, virtualenv
argparse==1.4.0 # via caniusepython3
astroid==1.5.3 # via pylint, pylint-celery
atomicwrites==1.4.0 # via pytest
attrs==19.3.0 # via pytest
attrs==20.1.0 # via pytest
backports.functools-lru-cache==1.6.1 # via caniusepython3
billiard==3.3.0.23 # via celery
bleach==3.1.5 # via readme-renderer
caniusepython3==7.2.0 # via -r requirements/quality.in
celery==3.1.18 # via -r requirements/base.in, edx-celeryutils
certifi==2020.4.5.1 # via requests
cffi==1.14.0 # via cryptography
celery==3.1.26.post2 # via -r requirements/base.in, edx-celeryutils
certifi==2020.6.20 # via requests
cffi==1.14.2 # via cryptography
chardet==3.0.4 # via requests
click-log==0.3.2 # via edx-lint
click==7.1.2 # via click-log, edx-lint, pip-tools
coverage==5.1 # via pytest-cov
cryptography==2.9.2 # via secretstorage
coverage==5.2.1 # via pytest-cov
cryptography==3.1 # via pyjwt
ddt==1.4.1 # via -r requirements/test.in
diff-cover==2.6.1 # via -r requirements/dev.in
distlib==0.3.0 # via caniusepython3, virtualenv
diff-cover==3.0.1 # via -r requirements/dev.in
distlib==0.3.1 # via caniusepython3, virtualenv
django-braces==1.13.0 # via -c requirements/constraints.txt, django-oauth-toolkit
django-model-utils==3.1.2 # via -r requirements/base.in, -r requirements/test.in, edx-celeryutils, edx-completion
django-oauth-toolkit==0.12.0 # via -r requirements/base.in
django-waffle==0.15.1 # via -c requirements/constraints.txt, edx-django-utils, edx-drf-extensions
django==1.10.8 # via -r requirements/base.in, django-model-utils, django-oauth-toolkit, edx-celeryutils, edx-completion, edx-django-utils, edx-drf-extensions, edx-i18n-tools, edx-opaque-keys, jsonfield, rest-condition
djangorestframework-jwt==1.11.0 # via edx-drf-extensions
djangorestframework==3.6.4 # via -r requirements/base.in, edx-completion, edx-drf-extensions, rest-condition
django==2.2.15 # via -r requirements/base.in, django-model-utils, django-oauth-toolkit, djangorestframework, drf-jwt, edx-celeryutils, edx-completion, edx-django-utils, edx-drf-extensions, edx-i18n-tools, edx-opaque-keys, jsonfield2, rest-condition
djangorestframework==3.11.1 # via -r requirements/base.in, drf-jwt, edx-completion, edx-drf-extensions, rest-condition
docutils==0.16 # via readme-renderer
edx-celeryutils==0.1.5 # via -r requirements/base.in
edx-completion==2.0.0 # via -r requirements/base.in
edx-django-utils==1.0.5 # via -c requirements/constraints.txt, edx-drf-extensions
edx-drf-extensions==2.0.1 # via -c requirements/constraints.txt, edx-completion
edx-i18n-tools==0.4.8 # via -r requirements/dev.in
drf-jwt==1.17.1 # via edx-drf-extensions
edx-celeryutils==0.5.1 # via -r requirements/base.in
edx-completion==3.2.4 # via -r requirements/base.in
edx-django-utils==3.7.3 # via edx-drf-extensions
edx-drf-extensions==6.1.1 # via edx-completion
edx-i18n-tools==0.5.3 # via -r requirements/dev.in
edx-lint==1.1.2 # via -r requirements/dev.in, -r requirements/quality.in
edx-opaque-keys[django]==1.0.1 # via -r requirements/base.in, edx-completion, edx-drf-extensions
edx-opaque-keys[django]==2.1.1 # via -r requirements/base.in, edx-completion, edx-drf-extensions
filelock==3.0.12 # via tox, virtualenv
freezegun==0.3.15 # via -r requirements/test.in
fs==2.4.11 # via xblock
future==0.18.2 # via pyjwkest
idna==2.9 # via requests
inflect==4.1.0 # via jinja2-pluralize
future==0.18.2 # via edx-celeryutils, pyjwkest
idna==2.10 # via requests
importlib-metadata==1.7.0 # via inflect, path, pluggy, pytest, tox, virtualenv
importlib-resources==3.0.0 # via virtualenv
inflect==3.0.2 # via -c requirements/constraints.txt, jinja2-pluralize
isort==4.3.21 # via -r requirements/quality.in, pylint
jeepney==0.4.3 # via keyring, secretstorage
jinja2-pluralize==0.3.0 # via diff-cover
jinja2==2.11.2 # via diff-cover, jinja2-pluralize
jsonfield==2.0.2 # via -c requirements/constraints.txt, edx-celeryutils
keyring==21.2.1 # via twine
jsonfield2==4.0.0.post0 # via edx-celeryutils
kombu==3.0.37 # via celery
lazy-object-proxy==1.4.3 # via astroid
lxml==4.5.0 # via xblock
lazy-object-proxy==1.5.1 # via astroid
lxml==4.5.2 # via xblock
markupsafe==1.1.1 # via jinja2, xblock
mccabe==0.6.1 # via pylint
mock==3.0.5 # via -r requirements/test.in
more-itertools==5.0.0 # via -r requirements/test.in, pytest
mysqlclient==1.4.6 # via -r requirements/base.in
newrelic==5.12.1.141 # via edx-django-utils
mysqlclient==2.0.1 # via -r requirements/base.in
newrelic==5.16.2.147 # via edx-django-utils
oauthlib==2.0.1 # via django-oauth-toolkit
packaging==20.3 # via bleach, caniusepython3, pytest, tox
path.py==12.4.0 # via edx-i18n-tools
packaging==20.4 # via bleach, caniusepython3, pytest, tox
path.py==12.5.0 # via edx-i18n-tools
path==13.1.0 # via path.py
pathlib2==2.3.5 # via pytest
pbr==5.4.5 # via stevedore
pip-tools==5.1.2 # via -r requirements/dev.in
pip-tools==5.3.1 # via -r requirements/dev.in
pkginfo==1.5.0.1 # via twine
pluggy==0.13.1 # via diff-cover, pytest, tox
polib==1.1.0 # via edx-i18n-tools
psutil==1.2.1 # via edx-django-utils, edx-drf-extensions
py==1.8.1 # via pytest, tox
psutil==5.7.2 # via edx-django-utils
py==1.9.0 # via pytest, tox
pycodestyle==2.6.0 # via -r requirements/quality.in
pycparser==2.20 # via cffi
pycryptodomex==3.9.7 # via pyjwkest
pydocstyle==5.0.2 # via -r requirements/quality.in
pycryptodomex==3.9.8 # via pyjwkest
pydocstyle==5.1.0 # via -r requirements/quality.in
pygments==2.6.1 # via diff-cover, readme-renderer
pyjwkest==1.3.2 # via edx-drf-extensions
pyjwt==1.7.1 # via djangorestframework-jwt
pyjwkest==1.4.2 # via edx-drf-extensions
pyjwt[crypto]==1.7.1 # via drf-jwt
pylint-celery==0.3 # via edx-lint
pylint-django==0.7.2 # via edx-lint
pylint-plugin-utils==0.6 # via pylint-celery, pylint-django
pylint==1.7.6 # via edx-lint, pylint-celery, pylint-django, pylint-plugin-utils
pymongo==3.10.1 # via edx-opaque-keys
pymongo==3.11.0 # via edx-opaque-keys
pyparsing==2.4.7 # via packaging
pytest-cov==2.8.1 # via -r requirements/test.in
pytest-cov==2.10.1 # via -r requirements/test.in
pytest-django==3.9.0 # via -r requirements/test.in
pytest==4.6.10 # via -r requirements/test.in, pytest-cov, pytest-django
pytest==4.6.11 # via -r requirements/test.in, pytest-cov, pytest-django
python-dateutil==2.8.1 # via edx-drf-extensions, freezegun, xblock
pytz==2020.1 # via celery, edx-completion, fs, xblock
pytz==2020.1 # via celery, django, edx-completion, fs, xblock
pyyaml==5.3.1 # via edx-i18n-tools, xblock
readme-renderer==26.0 # via twine
redis==3.5.2 # via -r requirements/test.in
redis==3.5.3 # via -r requirements/test.in
requests-toolbelt==0.9.1 # via twine
requests==2.23.0 # via caniusepython3, edx-drf-extensions, pyjwkest, requests-toolbelt, twine
requests==2.24.0 # via caniusepython3, edx-drf-extensions, pyjwkest, requests-toolbelt, twine
rest-condition==1.0.3 # via edx-drf-extensions
secretstorage==3.1.2 # via keyring
semantic-version==2.8.5 # via edx-drf-extensions
six==1.14.0 # via -r requirements/base.in, astroid, bleach, cryptography, diff-cover, django-oauth-toolkit, edx-drf-extensions, edx-i18n-tools, edx-lint, edx-opaque-keys, freezegun, fs, mock, more-itertools, packaging, pip-tools, pyjwkest, pylint, pytest, python-dateutil, readme-renderer, stevedore, tox, virtualenv, xblock
six==1.15.0 # via -r requirements/base.in, astroid, bleach, cryptography, diff-cover, django-oauth-toolkit, edx-drf-extensions, edx-i18n-tools, edx-lint, edx-opaque-keys, freezegun, fs, mock, more-itertools, packaging, pathlib2, pip-tools, pyjwkest, pylint, pytest, python-dateutil, readme-renderer, stevedore, tox, virtualenv, xblock
snowballstemmer==2.0.0 # via pydocstyle
stevedore==1.32.0 # via edx-opaque-keys
sqlparse==0.3.1 # via django
stevedore==1.32.0 # via edx-django-utils, edx-opaque-keys
toml==0.10.1 # via tox
tox-battery==0.2 # via -r requirements/dev.in
tox==3.15.0 # via -r requirements/dev.in, tox-battery
tqdm==4.46.0 # via twine
twine==3.1.1 # via -r requirements/dev.in
urllib3==1.25.9 # via requests
virtualenv==20.0.20 # via tox
wcwidth==0.1.9 # via pytest
tox==3.19.0 # via -r requirements/dev.in, tox-battery
tqdm==4.48.2 # via twine
twine==1.15.0 # via -r requirements/dev.in
typing==3.7.4.3 # via fs
urllib3==1.25.10 # via requests
virtualenv==20.0.31 # via tox
wcwidth==0.2.5 # via pytest
web-fragments==0.3.2 # via xblock
webencodings==0.5.1 # via bleach
webob==1.8.6 # via xblock
wheel==0.34.2 # via -r requirements/dev.in
wheel==0.35.1 # via -r requirements/dev.in
wrapt==1.12.1 # via astroid
xblock==1.2.9 # via -r requirements/base.in, edx-completion
zipp==1.2.0 # via importlib-metadata, importlib-resources

# The following packages are considered to be unsafe in a requirements file:
# pip
Expand Down
Loading

0 comments on commit a71ab4f

Please sign in to comment.