summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUroš Trebec <uros.trebec@gmail.com>2006-08-16 12:57:20 +0000
committerUroš Trebec <uros.trebec@gmail.com>2006-08-16 12:57:20 +0000
commitfd837f02354e730a425e5992309f6230f2be75b5 (patch)
tree01affc8d3f25272e83df37059803f35433bc2fb9
parenta064d0848b0467b320bba7d73ecdbf0cb077daf6 (diff)
downloaddjango-fd837f02354e730a425e5992309f6230f2be75b5.tar.gz
[full-history]
* Removed save_last_revision() * signal.pre_delete now uses save_new_revision() * Added "signal_name" check and "pre_delete" processingto save_new_revision() * Fixed BUG from [3588] git-svn-id: http://code.djangoproject.com/svn/django/branches/full-history@3596 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/contrib/history/models.py45
1 files changed, 8 insertions, 37 deletions
diff --git a/django/contrib/history/models.py b/django/contrib/history/models.py
index c0aa877367..e729be2595 100644
--- a/django/contrib/history/models.py
+++ b/django/contrib/history/models.py
@@ -110,6 +110,7 @@ def _import_models(instance):
def save_new_revision(sender, instance, signal, *args, **kwargs):
""" Saves a old copy of the record into the History table."""
print "Sender: ",sender
+ print "Signal: ",kwargs['signal_name']
if instance.__class__.__name__ is 'ChangeLog' or not hasattr(instance, 'History'):
print "Not history-enabled class."
@@ -123,7 +124,11 @@ def save_new_revision(sender, instance, signal, *args, **kwargs):
if _import_models(instance):
try:
- if instance.id:
+ if kwargs['signal_name'] is 'pre_delete':
+ old = instance
+ log = ChangeLog(parent=instance, comment="Object deleted. Last revision.")
+ print "Log created."
+ elif kwargs['signal_name'] is 'pre_save' and instance.id:
old = getattr(m, model['name']).objects.filter(pk=instance.id)[0]
log = ChangeLog(parent=instance, comment="Update")
print "Instance has an ID."
@@ -142,7 +147,7 @@ def save_new_revision(sender, instance, signal, *args, **kwargs):
print "Old: ",old
print "Instance: ",instance.id
#print "Test: ",getattr(instance, 'Admin').date_hierarchy
- print "Log: ",log
+ print "Log: ",log.change_time
log.object = Pickle.dumps(old, protocol=0)
log.save()
@@ -150,38 +155,4 @@ def save_new_revision(sender, instance, signal, *args, **kwargs):
print "New change saved."
dispatcher.connect( save_new_revision, signal=signals.pre_save )
-
-###########################
-# Pre-delete signal catch #
-###########################
-
-def save_last_revision(sender, instance, signal, *args, **kwargs):
- """ Saves the last copy of the record when the record is deleted."""
- print "Sender: ",sender
-
- if instance.__class__.__name__ is 'ChangeLog' or not hasattr(instance, 'History'):
- print "Not history-enabled class."
- return 0
-
- #instance_name = instance.__class__.__name__
- #print instance_name
- m = None
- old = None
- log = None
-
- if _import_models(instance):
- try:
- old = instance
- log = ChangeLog(parent=instance, comment="Object deleted. Last revision.")
- print "Log created."
- except:
- return 1
-
- try:
- log.object = Pickle.dumps(old, protocol=0)
- log.save()
- print "Last change saved."
- except:
- print "Failed!"
-
-dispatcher.connect( save_last_revision, signal=signals.pre_delete )
+dispatcher.connect( save_new_revision, signal=signals.pre_delete )