EDUCATOR-4670 - pr 1 - remove usage of persistsubsectionoride history
remove unused param
This commit is contained in:
@@ -110,7 +110,7 @@ def undo_override_subsection_grade(user_id, course_key_or_id, usage_key_or_id, f
|
||||
|
||||
if override is not None and (
|
||||
not feature or not override.system or feature == override.system):
|
||||
override.delete(feature=feature)
|
||||
override.delete()
|
||||
else:
|
||||
return
|
||||
|
||||
|
||||
@@ -686,9 +686,6 @@ class PersistentSubsectionGradeOverride(models.Model):
|
||||
u"possible_graded_override: {}".format(self.possible_graded_override),
|
||||
])
|
||||
|
||||
def get_history(self):
|
||||
return PersistentSubsectionGradeOverrideHistory.get_override_history(self.id)
|
||||
|
||||
@classmethod
|
||||
def prefetch(cls, user_id, course_key):
|
||||
get_cache(cls._CACHE_NAMESPACE)[(user_id, str(course_key))] = {
|
||||
@@ -718,8 +715,7 @@ class PersistentSubsectionGradeOverride(models.Model):
|
||||
"""
|
||||
Creates or updates an override object for the given PersistentSubsectionGrade.
|
||||
Args:
|
||||
requesting_user: The user that is creating the override (so we can record this action in
|
||||
a PersistentSubsectionGradeOverrideHistory record).
|
||||
requesting_user: The user that is creating the override.
|
||||
subsection_grade_model: The PersistentSubsectionGrade object associated with this override.
|
||||
override_data: The parameters of score values used to create the override record.
|
||||
"""
|
||||
@@ -742,14 +738,6 @@ class PersistentSubsectionGradeOverride(models.Model):
|
||||
override_history_entry.history_user = requesting_user
|
||||
override_history_entry.save()
|
||||
|
||||
action = action or PersistentSubsectionGradeOverrideHistory.CREATE_OR_UPDATE
|
||||
|
||||
PersistentSubsectionGradeOverrideHistory.objects.create(
|
||||
override_id=override.id,
|
||||
user=requesting_user,
|
||||
feature=feature,
|
||||
action=action,
|
||||
)
|
||||
return override
|
||||
|
||||
@staticmethod
|
||||
@@ -773,68 +761,3 @@ class PersistentSubsectionGradeOverride(models.Model):
|
||||
getattr(subsection_grade_model, field_name)
|
||||
)
|
||||
return cleaned_data
|
||||
|
||||
def delete(self, **kwargs): # pylint: disable=arguments-differ
|
||||
# TODO: a proper history table
|
||||
PersistentSubsectionGradeOverrideHistory.objects.create(
|
||||
override_id=self.id,
|
||||
feature=kwargs.pop('feature', ''),
|
||||
action=PersistentSubsectionGradeOverrideHistory.DELETE
|
||||
)
|
||||
super(PersistentSubsectionGradeOverride, self).delete(**kwargs)
|
||||
|
||||
|
||||
class PersistentSubsectionGradeOverrideHistory(models.Model):
|
||||
"""
|
||||
A django model tracking persistent grades override audit records.
|
||||
|
||||
.. no_pii:
|
||||
"""
|
||||
OVERRIDE_FEATURES = (
|
||||
(constants.GradeOverrideFeatureEnum.proctoring, 'proctoring'),
|
||||
(constants.GradeOverrideFeatureEnum.gradebook, 'gradebook'),
|
||||
)
|
||||
|
||||
CREATE_OR_UPDATE = 'CREATEORUPDATE'
|
||||
DELETE = 'DELETE'
|
||||
OVERRIDE_ACTIONS = (
|
||||
(CREATE_OR_UPDATE, 'create_or_update'),
|
||||
(DELETE, 'delete')
|
||||
)
|
||||
|
||||
class Meta(object):
|
||||
app_label = "grades"
|
||||
|
||||
override_id = models.IntegerField(db_index=True)
|
||||
feature = models.CharField(
|
||||
max_length=32,
|
||||
choices=OVERRIDE_FEATURES,
|
||||
default=constants.GradeOverrideFeatureEnum.proctoring,
|
||||
)
|
||||
action = models.CharField(
|
||||
max_length=32,
|
||||
choices=OVERRIDE_ACTIONS,
|
||||
default=CREATE_OR_UPDATE
|
||||
)
|
||||
user = models.ForeignKey(User, blank=True, null=True)
|
||||
comments = models.CharField(max_length=300, blank=True, null=True)
|
||||
created = models.DateTimeField(auto_now_add=True, db_index=True)
|
||||
|
||||
def __unicode__(self):
|
||||
"""
|
||||
String representation of this model.
|
||||
"""
|
||||
return (
|
||||
u"{} override_id: {}, user_id: {}, feature: {}, action: {}, created: {}"
|
||||
).format(
|
||||
type(self).__name__,
|
||||
self.override_id,
|
||||
self.user,
|
||||
self.feature,
|
||||
self.action,
|
||||
self.created
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def get_override_history(cls, override_id):
|
||||
return cls.objects.filter(override_id=override_id)
|
||||
|
||||
@@ -29,7 +29,6 @@ from lms.djangoapps.grades.models import (
|
||||
BlockRecordList,
|
||||
PersistentSubsectionGrade,
|
||||
PersistentSubsectionGradeOverride,
|
||||
PersistentSubsectionGradeOverrideHistory,
|
||||
PersistentCourseGrade,
|
||||
)
|
||||
from lms.djangoapps.grades.rest_api.v1.tests.mixins import GradeViewTestMixin
|
||||
@@ -1581,14 +1580,6 @@ class GradebookBulkUpdateViewTest(GradebookViewTestBase):
|
||||
expected_value = getattr(expected_grades, field_name)
|
||||
self.assertEqual(expected_value, getattr(grade, field_name))
|
||||
|
||||
update_records = PersistentSubsectionGradeOverrideHistory.objects.filter(user=request_user)
|
||||
self.assertEqual(update_records.count(), 3)
|
||||
for audit_item in update_records:
|
||||
self.assertEqual(audit_item.user, request_user)
|
||||
self.assertIsNotNone(audit_item.created)
|
||||
self.assertEqual(audit_item.feature, GradeOverrideFeatureEnum.gradebook)
|
||||
self.assertEqual(audit_item.action, PersistentSubsectionGradeOverrideHistory.CREATE_OR_UPDATE)
|
||||
|
||||
def test_update_failing_grade(self):
|
||||
"""
|
||||
Test that when we update a user's grade to failing, their certificate is marked notpassing
|
||||
|
||||
@@ -28,7 +28,6 @@ from lms.djangoapps.grades.models import (
|
||||
PersistentCourseGrade,
|
||||
PersistentSubsectionGrade,
|
||||
PersistentSubsectionGradeOverride,
|
||||
PersistentSubsectionGradeOverrideHistory,
|
||||
VisibleBlocks
|
||||
)
|
||||
from student.tests.factories import UserFactory
|
||||
@@ -327,9 +326,6 @@ class PersistentSubsectionGradeTest(GradesModelTestCase):
|
||||
self.assertEqual(grade.possible_all, override.possible_all_override)
|
||||
self.assertEqual(grade.possible_graded, override.possible_graded_override)
|
||||
|
||||
# An override history record should be created
|
||||
self.assertEqual(1, PersistentSubsectionGradeOverrideHistory.objects.filter(override_id=override.id).count())
|
||||
|
||||
def _assert_tracker_emitted_event(self, tracker_mock, grade):
|
||||
"""
|
||||
Helper function to ensure that the mocked event tracker
|
||||
|
||||
@@ -14,8 +14,7 @@ from mock import call, patch
|
||||
from lms.djangoapps.grades.constants import GradeOverrideFeatureEnum
|
||||
from lms.djangoapps.grades.models import (
|
||||
PersistentSubsectionGrade,
|
||||
PersistentSubsectionGradeOverride,
|
||||
PersistentSubsectionGradeOverrideHistory
|
||||
PersistentSubsectionGradeOverride
|
||||
)
|
||||
from lms.djangoapps.grades.services import GradesService
|
||||
from student.tests.factories import UserFactory
|
||||
@@ -148,12 +147,6 @@ class GradesServiceTests(ModuleStoreTestCase):
|
||||
'earned_graded_override': override.earned_graded_override
|
||||
})
|
||||
|
||||
def _verify_override_history(self, override_history, history_action):
|
||||
self.assertIsNone(override_history.user)
|
||||
self.assertIsNotNone(override_history.created)
|
||||
self.assertEqual(override_history.feature, GradeOverrideFeatureEnum.proctoring)
|
||||
self.assertEqual(override_history.action, history_action)
|
||||
|
||||
@ddt.data(
|
||||
{
|
||||
'earned_all': 0.0,
|
||||
@@ -203,8 +196,6 @@ class GradesServiceTests(ModuleStoreTestCase):
|
||||
score_db_table=ScoreDatabaseTableEnum.overrides
|
||||
)
|
||||
)
|
||||
override_history = PersistentSubsectionGradeOverrideHistory.objects.filter(override_id=override_obj.id).first()
|
||||
self._verify_override_history(override_history, PersistentSubsectionGradeOverrideHistory.CREATE_OR_UPDATE)
|
||||
|
||||
def test_override_subsection_grade_no_psg(self):
|
||||
"""
|
||||
@@ -254,8 +245,6 @@ class GradesServiceTests(ModuleStoreTestCase):
|
||||
score_db_table=ScoreDatabaseTableEnum.overrides
|
||||
)
|
||||
)
|
||||
override_history = PersistentSubsectionGradeOverrideHistory.objects.filter(override_id=override_obj.id).first()
|
||||
self._verify_override_history(override_history, PersistentSubsectionGradeOverrideHistory.CREATE_OR_UPDATE)
|
||||
|
||||
@freeze_time('2017-01-01')
|
||||
def test_undo_override_subsection_grade(self):
|
||||
@@ -286,8 +275,6 @@ class GradesServiceTests(ModuleStoreTestCase):
|
||||
score_db_table=ScoreDatabaseTableEnum.overrides
|
||||
)
|
||||
)
|
||||
override_history = PersistentSubsectionGradeOverrideHistory.objects.filter(override_id=override_id).first()
|
||||
self._verify_override_history(override_history, PersistentSubsectionGradeOverrideHistory.DELETE)
|
||||
|
||||
def test_undo_override_subsection_grade_across_features(self):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user