'Overridden save_base. If an instance is draft, and was changed, mark
it as dirty.
Dirty flag is used for changed nodes identification when publish method
takes place. After current changes are published, state is set back to
PUBLISHER_STATE_DEFAULT (in publish method).'

def save_base(self, *args, **kwargs):

    keep_state = getattr(self, '_publisher_keep_state', None)
    if (self.publisher_is_draft and (not keep_state) and self.is_new_dirty()):
        self.publisher_state = PUBLISHER_STATE_DIRTY
    if keep_state:
        delattr(self, '_publisher_keep_state')
    return super(Title, self).save_base(*args, **kwargs)
