示例#1
0
    def test_delete_published_version(self):
        """Delete a published version. This is not possible and should
        trigger an error.
        """
        content = self.root.test
        self.assertEqual(len(content.objectIds('Mockup Version')), 5)

        manager = IVersionManager(content.get_viewable())
        with self.assertRaises(VersioningError):
            manager.delete()

        self.assertEqual(len(content.objectIds('Mockup Version')), 5)
示例#2
0
    def test_delete_closed_version(self):
        """Delete a previously closed version.
        """
        content = self.root.test
        self.assertEqual(len(content.objectIds('Mockup Version')), 5)

        manager = IVersionManager(content.get_mockup_version(0))
        manager.delete()

        self.assertEqual(len(content.objectIds('Mockup Version')), 4)

        manager = IVersionManager(content.get_mockup_version(1))
        manager.delete()

        self.assertEqual(len(content.objectIds('Mockup Version')), 3)
示例#3
0
    def test_delete_unapproved_version(self):
        """Delete an unapproved version.
        """
        content = self.root.test
        self.assertEqual(len(content.objectIds('Mockup Version')), 5)

        manager = IVersionManager(content.get_editable())
        self.assertTrue(manager.delete())

        self.assertEqual(content.get_editable(), None)
        self.assertEqual(len(content.objectIds('Mockup Version')), 4)
示例#4
0
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()