diff options
Diffstat (limited to 'lib/python2.7/site-packages/undelete')
-rw-r--r-- | lib/python2.7/site-packages/undelete/__init__.py | 0 | ||||
-rw-r--r-- | lib/python2.7/site-packages/undelete/managers.py | 40 | ||||
-rw-r--r-- | lib/python2.7/site-packages/undelete/models.py | 30 |
3 files changed, 0 insertions, 70 deletions
diff --git a/lib/python2.7/site-packages/undelete/__init__.py b/lib/python2.7/site-packages/undelete/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/lib/python2.7/site-packages/undelete/__init__.py +++ /dev/null diff --git a/lib/python2.7/site-packages/undelete/managers.py b/lib/python2.7/site-packages/undelete/managers.py deleted file mode 100644 index e4712cd..0000000 --- a/lib/python2.7/site-packages/undelete/managers.py +++ /dev/null @@ -1,40 +0,0 @@ -from django.db import models - -class TrashableQuerySet(models.query.QuerySet): - """Special QuerySet that explicitly calls delete() method on each model. - If we don't do this, QuerySet delete() will bypass our TrashableMixin - delete(). - - This is only used for the NonTrashedManager. TrashedManager returns - trashed objects, which should be truly deleted when delete() is called. - Logic is the same for TrashableMixin at second delete(). - - @author: Charl P. Botha <cpbotha@timescapers.com> - """ - - def delete(self, trash=True): - """Overrides normal QuerySet delete to call explicitly object's - delete() method. - """ - if trash: - for m in self: - m.delete() - - else: - super(TrashableQuerySet, self).delete() - -class NonTrashedManager(models.Manager): - ''' Query only objects which have not been trashed. ''' - def get_query_set(self): - # class Manager instantiates QuerySet() at every call of - # get_query_set() also. see django/db/models/manager.py - # we use special TrashableQuerySet which makes sure that - # model delete()s get called explicitly. - query_set = TrashableQuerySet(self.model, using=self._db) - return query_set.filter(trashed_at__isnull=True) - -class TrashedManager(models.Manager): - ''' Query only objects which have been trashed. ''' - def get_query_set(self): - query_set = super(TrashedManager, self).get_query_set() - return query_set.filter(trashed_at__isnull=False) diff --git a/lib/python2.7/site-packages/undelete/models.py b/lib/python2.7/site-packages/undelete/models.py deleted file mode 100644 index 26c4c5f..0000000 --- a/lib/python2.7/site-packages/undelete/models.py +++ /dev/null @@ -1,30 +0,0 @@ -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 - - |