Add multiple trash can support, restoring and complete source object manager and queryset method substitution
This commit is contained in:
@@ -1,15 +1,19 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from .models import TrashableModelManager, new_delete_method
|
||||
from common.querysets import CustomizableQuerySet
|
||||
|
||||
from .models import new_delete_method, TrashableQuerySetManager
|
||||
|
||||
trashable_models = []
|
||||
def make_trashable(model):
|
||||
|
||||
|
||||
def make_trashable(model, trash_can):
|
||||
trashable_models.append(model)
|
||||
#model.__class__.objects = TrashableModelManager()
|
||||
#model.__class__._default_manager = TrashableModelManager()
|
||||
#model.objects = TrashableModelManager()
|
||||
model.add_to_class('objects', TrashableModelManager())
|
||||
|
||||
old_manager = getattr(model, '_default_manager')
|
||||
model.add_to_class('objects', CustomizableQuerySet.as_manager(TrashableQuerySetManager))
|
||||
model._default_manager = model.objects
|
||||
model.add_to_class('trash_passthru', old_manager)
|
||||
|
||||
old_delete_method = model.delete
|
||||
model.delete = new_delete_method(old_delete_method)
|
||||
#model.add_to_class('is_in_trash', return True)
|
||||
model.delete = new_delete_method(trash_can, old_delete_method)
|
||||
|
||||
Reference in New Issue
Block a user