Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

[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
  • Loading branch information...
commit fd837f02354e730a425e5992309f6230f2be75b5 1 parent a064d08
Uroš Trebec authored
Showing with 8 additions and 37 deletions.
  1. +8 −37 django/contrib/history/models.py
View
45 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 )
Please sign in to comment.
Something went wrong with that request. Please try again.