def test_make_editable_with_unapproved(self): """Make an old version editable while having an unapproved version. """ content = self.root.test manager = IVersionManager(content.get_mockup_version(1)) self.assertTrue(manager.make_editable()) self.assertEqual(len(content.objectIds('Mockup Version')), 6)
def test_make_editable_with_approved(self): """Make an old version editable while having an approved and yet not published version. This will not work. """ content = self.root.test self.layer.login('editor') publisher = IPublicationWorkflow(content) publisher.approve(DateTime() + 50) self.layer.login('author') manager = IVersionManager(content.get_mockup_version(1)) with self.assertRaises(VersioningError): manager.make_editable() self.assertEqual(len(content.objectIds('Mockup Version')), 5)
class PublicationStatusInfo(grok.Adapter): grok.context(IVersion) grok.provides(IPublicationStatusInfo) def __init__(self, context): self.context = context self.manager = IVersionManager(self.context) @property def id(self): return self.context.getId() @property def modification_time(self): dt = self.manager.get_modification_datetime() if dt is not None: return dt.asdatetime() @property def publication_time(self): dt = self.manager.get_publication_datetime() if dt is not None: return dt.asdatetime() @property def expiration_time(self): dt = self.manager.get_expiration_datetime() if dt is not None: return dt.asdatetime() @property def last_author(self): author = self.manager.get_last_author() if author is not None: return author.fullname() @property def version_status(self): return self.manager.get_status() def delete(self): return self.manager.delete() def copy_for_editing(self): return self.manager.make_editable()