Author: utrebec
Date: 2006-08-16 07:57:20 -0500 (Wed, 16 Aug 2006)
New Revision: 3596

Modified:
   django/branches/full-history/django/contrib/history/models.py
Log:
[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]



Modified: django/branches/full-history/django/contrib/history/models.py
===================================================================
--- django/branches/full-history/django/contrib/history/models.py       
2006-08-16 12:52:35 UTC (rev 3595)
+++ django/branches/full-history/django/contrib/history/models.py       
2006-08-16 12:57:20 UTC (rev 3596)
@@ -110,6 +110,7 @@
 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 @@
     
     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 @@
     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 @@
     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 )


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates
-~----------~----~----~----~------~----~------~--~---

Reply via email to