Django

Code

Show
Ignore:
Timestamp:
04/29/08 00:45:46 (2 months ago)
Author:
brosner
Message:

newforms-admin: Fixed #6117 -- Implemented change history for the admin. This includes the ability to track changes on a newform. Model formsets now only return the changed/new objects saved. A big thanks to Karen Tracey and Alex Gaynor.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/newforms-admin/django/contrib/admin/options.py

    r7484 r7507  
    390390                formset.save() 
    391391 
    392         # Construct the change message. TODO: Temporarily commented-out, 
    393         # as manipulator object doesn't exist anymore, and we don't yet 
    394         # have a way to get fields_added, fields_changed, fields_deleted. 
     392        # Construct the change message.                  
    395393        change_message = [] 
    396         #if manipulator.fields_added: 
    397             #change_message.append(_('Added %s.') % get_text_list(manipulator.fields_added, _('and'))) 
    398         #if manipulator.fields_changed: 
    399             #change_message.append(_('Changed %s.') % get_text_list(manipulator.fields_changed, _('and'))) 
    400         #if manipulator.fields_deleted: 
    401             #change_message.append(_('Deleted %s.') % get_text_list(manipulator.fields_deleted, _('and'))) 
    402         #change_message = ' '.join(change_message) 
     394        if form.changed_data: 
     395            change_message.append(_('Changed %s.') % get_text_list(form.changed_data, _('and'))) 
     396             
     397        if formsets: 
     398            for formset in formsets: 
     399                for added_object in formset.new_objects: 
     400                    change_message.append(_('Added %s "%s".')  
     401                                          % (added_object._meta.verbose_name, added_object)) 
     402                for changed_object, changed_fields in formset.changed_objects: 
     403                    change_message.append(_('Changed %s for %s "%s".')  
     404                                          % (get_text_list(changed_fields, _('and')),  
     405                                             changed_object._meta.verbose_name,  
     406                                             changed_object)) 
     407                for deleted_object in formset.deleted_objects: 
     408                    change_message.append(_('Deleted %s "%s".')  
     409                                          % (deleted_object._meta.verbose_name, deleted_object)) 
     410             
     411        change_message = ' '.join(change_message) 
    403412        if not change_message: 
    404413            change_message = _('No fields changed.')