Skip to content

Commit

Permalink
Merge pull request learningequality#10781 from LianaHarris360/full-fa…
Browse files Browse the repository at this point in the history
…cility-save-learner-statuses

Updates LearnerDeviceStatus status saving method to remove NotImpleme…
  • Loading branch information
rtibbles authored Jun 8, 2023
2 parents 4fbffdb + b10bfba commit 726134e
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 16 deletions.
20 changes: 6 additions & 14 deletions kolibri/core/device/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -464,15 +464,11 @@ def save_statuses(cls, status):
:param status: A status tuple of which to save, see `DeviceStatus`
:type status: tuple(string, int)
"""
if not get_device_setting(
if get_device_setting(
"subset_of_users_device", default=not device_provisioned()
):
raise NotImplementedError(
"Saving all learner statuses is not supported on full-facility devices"
)

for user_id in FacilityUser.objects.all().values_list("id", flat=True):
cls.save_learner_status(user_id, status)
for user_id in FacilityUser.objects.all().values_list("id", flat=True):
cls.save_learner_status(user_id, status)

@classmethod
def save_learner_status(cls, learner_user_id, status):
Expand Down Expand Up @@ -507,15 +503,11 @@ def clear_statuses(cls):
provisioned as a `subset_of_users_device`
:return:
"""
if not get_device_setting(
if get_device_setting(
"subset_of_users_device", default=not device_provisioned()
):
raise NotImplementedError(
"Saving all learner statuses is not supported on full-facility devices"
)

for user_id in FacilityUser.objects.all().values_list("id", flat=True):
cls.clear_learner_status(user_id)
for user_id in FacilityUser.objects.all().values_list("id", flat=True):
cls.clear_learner_status(user_id)

@classmethod
def clear_learner_status(cls, learner_user_id):
Expand Down
4 changes: 2 additions & 2 deletions kolibri/core/device/test/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,8 @@ def test_clear_learner_status(self):

@mock.patch("kolibri.core.device.models.device_provisioned", return_value=True)
def test_save_statuses__not_subset_of_users_device(self, _):
with self.assertRaises(NotImplementedError):
LearnerDeviceStatus.save_statuses(DeviceStatus.InsufficientStorage)
LearnerDeviceStatus.save_statuses(DeviceStatus.InsufficientStorage)
self.assertEqual(LearnerDeviceStatus.objects.count(), 0)

@mock.patch("kolibri.core.device.models.get_device_setting", return_value=True)
def test_save_statuses(self, mock_device_setting):
Expand Down

0 comments on commit 726134e

Please sign in to comment.