Changeset 3452
- Timestamp:
- 07/26/06 05:52:08 (2 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/full-history/django/contrib/history/models.py
r3422 r3452 4 4 from django.contrib.auth.models import User 5 5 from django.contrib.contenttypes.models import ContentType 6 from tut1.polls.models import Poll#Temp import of used models6 #from tut1.polls.models import Poll, Choice #Temp import of used models 7 7 # Misc stuff 8 8 import cPickle as Pickle 9 9 from datetime import datetime 10 10 from django.utils.text import capfirst 11 #from django.contrib.history.api import get_object, save_new_revision 11 12 12 13 13 class ChangeLog(models.Model): … … 17 17 parent = models.GenericForeignKey() 18 18 object_id = models.IntegerField(_('object ID')) 19 #parent = models.ForeignKey(Poll)20 19 21 20 user = models.ForeignKey(User, default="1") … … 64 63 if kwargs: 65 64 list = ChangeLog.objects.filter(object_id=parent_id)[:kwargs['offset']] 66 #for l in list:67 # print l.parent.id68 65 return list 69 66 else: 70 67 return ChangeLog.objects.filter(object_id=parent_id) 71 72 #def version(object, num=5):73 # """ Returns last 'num' revisions of the 'object'. """74 # return ChangeLog.objects.order_by('-id').filter(parent=object.id)[:num]75 68 76 69 … … 80 73 81 74 82 def get_all_models(): 83 app_list = [] 84 85 for app in models.get_apps(): 86 app_models = get_models(app) 87 app_label = app_models[0]._meta.app_label 88 89 model_list = [] 90 91 for m in app_models: 92 model_list.append({ 93 'name': capfirst(m._meta.verbose_name_plural), 94 }) 95 96 if model_list: 97 model_list.sort() 98 app_list.append({ 99 'name': app_label.title(), 100 'models': model_list, 101 }) 102 103 for app in app_list: 104 #print app['name'] 105 #print app['models'] 75 def _get_enabled_models(): 76 """ Returns a list of History-enabled models. """ 77 model_list = [] 78 for model in models.get_models(): 79 try: 80 if model.History: 81 model_list.append({'module': model.__module__, 82 'name': model.__name__}) 83 except: 84 pass 85 return model_list 106 86 107 for m in app['models']:108 print m['name']109 87 110 88 ######################### … … 114 92 def save_new_revision(sender, instance, signal, *args, **kwargs): 115 93 """ Saves a old copy of the record into the History table.""" 116 #modelname = instance.__class__.__name__ 117 #print modelname 118 old = Poll.objects.filter(pk=instance.id) 119 print old 120 if instance.History: 121 print "Admin" 122 print Poll._meta 123 print instance.id 94 print "Sender: ",sender 95 96 instance_name = instance.__class__.__name__ 97 #print instance_name 98 global m 99 100 for model in _get_enabled_models(): 101 if model['name'] is instance_name: 102 try: 103 m = __import__(model['module'], '', '', [model['name']]) 104 #print model['module'],": ",model['name'],"- ",m 105 except: 106 print "Model import error." 107 108 if not isinstance(sender, instance_name): 109 print "Bad sender, exit." 110 return 0 111 112 old = getattr(m, model['name']).objects.filter(pk=instance.id) 113 print "Old: ",old 114 print "Instance: ",instance.id 124 115 log = ChangeLog(parent=instance) 125 print log 126 #log.parent_id = instance.id 127 #log.user_id = .user_id 116 print "Log: ",log 128 117 log.object = Pickle.dumps(old[0], protocol=0) 129 118 log.save() 130 119 print "New change saved." 131 120 132 dispatcher.connect( save_new_revision, signal=signals.pre_save , sender=Poll)121 dispatcher.connect( save_new_revision, signal=signals.pre_save )
