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))
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)
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)
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')