Adds retire_user mixin.

This commit is contained in:
sandroroux
2018-04-18 15:17:34 -04:00
parent e0078abefd
commit 6e5add47b6

View File

@@ -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