def approve_version(self): """Aprove the current unapproved version. """ # self._update_publication_status() if self._unapproved_version == empty_version: raise VersioningError( _('There is no unapproved version to approve.'), self) if self._approved_version != empty_version: raise VersioningError(_('There already is an approved version.'), self) if self._unapproved_version[1] is None: raise VersioningError( _('Cannot approve version without publication datetime.'), self) self._approved_version = self._unapproved_version self._unapproved_version = empty_version version = self._getOb(self._approved_version[0]) status = IRequestForApprovalStatus(version) status.validate() notify(events.ContentApprovedEvent(version, status)) # We may be published now self._update_publication_status()