Django

Code

Changeset 4736

Show
Ignore:
Timestamp:
03/15/07 10:59:49 (1 year ago)
Author:
utrebec
Message:

[full-history]
* Removed 'signal_name' attribute from signal from django/db/models/
* Added two wrapper functions for save_new_revision(): save_new_revision_save() and save_new_revision_delete()
* Added 'signal_name' variable to save_new_revision()
* Changed 'signal_name' variable handling in save_new_revision()
* Fixed dispatcher.connects to reflect previous three changes

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/full-history/django/contrib/history/models.py

    r3765 r4736  
    138138    return m 
    139139 
    140 def save_new_revision(sender, instance, signal, *args, **kwargs): 
     140 
     141### Signal wrapper functions 
     142## pre_save 
     143def save_new_revision_save(sender, instance, signal, *args, **kwargs): 
     144    """ 
     145    Wrapper function for save_new_revision() - for pre_save signal 
     146    This way there is no need to modify django/db/models/base.py 
     147    """ 
     148    save_new_revision(sender, instance, signal, signal_name='pre_save', *args, **kwargs) 
     149 
     150## pre_delete 
     151def save_new_revision_delete(sender, instance, signal, *args, **kwargs): 
     152    """ 
     153    Wrapper function for save_new_revision() - for pre_delete signal 
     154    This way there is no need to modify django/db/models/query.py 
     155    """ 
     156    save_new_revision(sender, instance, signal, signal_name='pre_delete', *args, **kwargs) 
     157 
     158 
     159### Actual save_new_revision 
     160def save_new_revision(sender, instance, signal, signal_name, *args, **kwargs): 
    141161    """  
    142162    Saves a old copy of the record into the History table. 
     
    150170    """ 
    151171    print "Sender: ",sender 
    152     print "Signal: ",kwargs['signal_name'] 
     172    print "Signal_name: ",signal_name 
    153173 
    154174    if instance.__class__.__name__ is 'ChangeLog' or not hasattr(instance, 'History'):  
     
    164184    if im: 
    165185        try: 
    166             if kwargs['signal_name'] is 'pre_delete': 
     186            if signal_name is 'pre_delete': 
    167187                print "Instance was last revision." 
    168188                old = instance 
    169189                log = ChangeLog(parent=instance, change_type='D', comment="Object deleted. Last revision.") 
    170             elif ((kwargs['signal_name'] is 'pre_save') and instance.id): 
     190            elif ((signal_name is 'pre_save') and instance.id): 
    171191                print "Instance has an ID." 
    172192                old = getattr(im, instance.__class__.__name__).objects.filter(pk=instance.id)[0] 
     
    196216 
    197217 
    198 dispatcher.connect( save_new_revision, signal=signals.pre_save ) 
    199 dispatcher.connect( save_new_revision, signal=signals.pre_delete ) 
     218dispatcher.connect( save_new_revision_save, signal=signals.pre_save ) 
     219dispatcher.connect( save_new_revision_delete, signal=signals.pre_delete ) 
  • django/branches/full-history/django/db/models/base.py

    r4732 r4736  
    195195 
    196196    def save(self): 
    197         dispatcher.send(signal=signals.pre_save, sender=self.__class__, instance=self, signal_name="pre_save"
     197        dispatcher.send(signal=signals.pre_save, sender=self.__class__, instance=self
    198198 
    199199        non_pks = [f for f in self._meta.fields if not f.primary_key] 
  • django/branches/full-history/django/db/models/query.py

    r4732 r4736  
    10231023        # Pre notify all instances to be deleted 
    10241024        for pk_val, instance in seen_objs[cls]: 
    1025             dispatcher.send(signal=signals.pre_delete, sender=cls, instance=instance, signal_name="pre_delete"
     1025            dispatcher.send(signal=signals.pre_delete, sender=cls, instance=instance
    10261026 
    10271027        pk_list = [pk for pk,instance in seen_objs[cls]]