Merge pull request #17990 from edx/retireuserbyemailMixin
Adds DeletableByUserValue mixin.
This commit is contained in:
@@ -12,3 +12,25 @@ class DeprecatedModelMixin(object):
|
||||
Override to kill usage of this model.
|
||||
"""
|
||||
raise TypeError("This model has been deprecated and should not be used.")
|
||||
|
||||
|
||||
class DeletableByUserValue(object):
|
||||
"""
|
||||
This mixin allows inheriting models to delete instances of the model
|
||||
associated with some user.
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def delete_by_user_value(cls, value, field):
|
||||
"""
|
||||
Deletes instances of this model where ``field`` equals ``value``.
|
||||
|
||||
e.g.
|
||||
``delete_by_user_value(value='learner@example.com', field='email')``
|
||||
|
||||
Returns True if any instances were deleted.
|
||||
Returns False otherwise.
|
||||
"""
|
||||
filter_kwargs = {field: value}
|
||||
num_deleted_records, _ = cls.objects.filter(**filter_kwargs).delete()
|
||||
return num_deleted_records > 0
|
||||
|
||||
Reference in New Issue
Block a user