diff options
author | Uroš Trebec <uros.trebec@gmail.com> | 2006-08-16 12:57:20 +0000 |
---|---|---|
committer | Uroš Trebec <uros.trebec@gmail.com> | 2006-08-16 12:57:20 +0000 |
commit | fd837f02354e730a425e5992309f6230f2be75b5 (patch) | |
tree | 01affc8d3f25272e83df37059803f35433bc2fb9 | |
parent | a064d0848b0467b320bba7d73ecdbf0cb077daf6 (diff) | |
download | django-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.py | 45 |
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 ) |