blob: 26c4c5f3b346cad8b7d907db98810f0cb8bb2789 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
from datetime import datetime
from django.db import models
from django.utils.translation import ugettext_lazy as _
from undelete.managers import TrashedManager, NonTrashedManager
class TrashableMixin(models.Model):
trashed_at = models.DateTimeField(_('Trashed'), editable=False, blank=True, null=True)
objects = NonTrashedManager()
trash = TrashedManager()
def delete(self, *args, **kwargs):
# keyword argument trash has default value True
trash=kwargs.get('trash', True)
if not self.trashed_at and trash:
self.trashed_at = datetime.now()
self.save()
else:
super(TrashableMixin, self).delete(*args, **kwargs)
def restore(self, commit=True):
self.trashed_at = None
if commit:
self.save()
class Meta:
abstract = True
|