Esempio n. 1
0
    def make_published(self, request, queryset):
        """Puslish selected documents by creating Atom entries."""

        for i, obj in enumerate(queryset):
            generate_atom_entry_for(obj)
            obj.is_published = True
            obj.save()
            self.message_user(
                request, "%s dokument har publicerats." % (i + 1))
Esempio n. 2
0
    def setUp(self):
        # Publish some of the documents from fixture
        foreskrift1 = models.Myndighetsforeskrift.objects.get(
            forfattningssamling__slug="exfs", arsutgava="2009", lopnummer="1")
        generate_rdf_post_for(foreskrift1)
        generate_atom_entry_for(foreskrift1)

        foreskrift2 = models.Myndighetsforeskrift.objects.get(
            forfattningssamling__slug="exfs", arsutgava="2009", lopnummer="2")
        generate_rdf_post_for(foreskrift2)
        generate_atom_entry_for(foreskrift2)
Esempio n. 3
0
    def save_model(self, request, obj, form, change):
        """Create an AtomEntry object when 'Myndighetsforeskrift' is saved or
        updated. See 'create_delete_entry' in 'rinfo/models.py' for
        deletion."""

        # Save the document and it's relations to other objects
        super(FSDokumentAdminMixin, self).save_model(
            request, obj, form, change)
        form.save_m2m()
        obj.save()
        # Now save RDF representation and Atom post
        generate_rdf_post_for(obj)
        generate_atom_entry_for(obj, update_only=True)
Esempio n. 4
0
    def test_get_rdf(self):
        """Verify that we can load RDF data for a published document"""

        # Get document to publish
        foreskrift = models.Myndighetsforeskrift.objects.get(
            forfattningssamling__slug="exfs", arsutgava="2009", lopnummer="1")
        # Publish document. TODO - use explicit publish method here!
        generate_atom_entry_for(foreskrift)

        # Feed now should have exactly one entry element
        response = self.client.get('/feed/')
        self.failUnlessEqual(response.status_code, 200)
        self.assertEqual(response['content-type'],
                         'application/atom+xml; charset=utf-8')
        dom = parseString(response.content)
        self.assertEquals(len(dom.getElementsByTagNameNS(NS_ATOM, 'entry')), 1)

        # Check that RDF representation exists
        response = self.client.get('/publ/exfs/2009:1/rdf')
        self.failUnlessEqual(response.status_code, 200)
        self.assertEqual(response['content-type'],
                         'application/rdf+xml;charset=utf-8')