src/cm/denorm_engine.py
changeset 407 2d14a80716e2
parent 278 3d25afbd78ff
equal deleted inserted replaced
406:87adb908e649 407:2d14a80716e2
    19         text.update_denorm_fields()
    19         text.update_denorm_fields()
    20     except Text.DoesNotExist:
    20     except Text.DoesNotExist:
    21         pass
    21         pass
    22         #logging.warning('No text found for text_version: %i' %text_version.id)
    22         #logging.warning('No text found for text_version: %i' %text_version.id)
    23         
    23         
       
    24 # GIB when deleting last revision, do not delete related text
       
    25 def delete_last_version (sender, instance, signal, *args, **kwargs):
       
    26   if instance.id == instance.text.last_text_version_id:
       
    27     previous = instance.get_previous_version()
       
    28     if previous:
       
    29       instance.text.last_text_version_id = previous.id
       
    30       instance.text.save()
    24         
    31         
    25 def connect_all():
    32 def connect_all():
    26     # text updated by text_version
    33     # text updated by text_version
       
    34     signals.pre_delete.connect(delete_last_version, sender=TextVersion)
    27     signals.post_save.connect(update_text_from_last_version, sender=TextVersion)
    35     signals.post_save.connect(update_text_from_last_version, sender=TextVersion)
    28     signals.post_delete.connect(update_text_from_last_version, sender=TextVersion)
    36     signals.post_delete.connect(update_text_from_last_version, sender=TextVersion)
    29 
    37 
    30 
    38 
    31 connect_all()
    39 connect_all()