def close(self): self.stream.seek(0) versioner = Versioner(self.context) if not versioner.has_initial_version(): versioner.create_initial_version() self.filefield.data = self.stream.read()
def test_closing_meeting_does_not_regenerate_edited_protocol(self, browser): self.login(self.committee_responsible, browser) model = self.meeting.model # Make sure there is already a protocol generated: model.update_protocol_document() self.assertEquals(0, model.protocol_document.generated_version) # Fake editing the protocol document = model.protocol_document.resolve_document() versioner = Versioner(document) versioner.create_initial_version() versioner.create_version("bumb version") # When closing the meeting, we should end up with a new version browser.open(self.meeting) self.assertEquals( ['Closing the meeting will not update the protocol automatically.' '\nMake sure to transfer your changes or recreate the protocol.', 'Are you sure you want to close this meeting?'], browser.css('#confirm_close_meeting p').text) model.close() self.assertEquals(0, model.protocol_document.generated_version) self.assertEquals(u'closed', model.workflow_state)
def test_closing_meeting_does_not_regenerate_edited_protocol( self, browser): self.login(self.committee_responsible, browser) model = self.meeting.model # Make sure there is already a protocol generated: model.update_protocol_document() self.assertEquals(0, model.protocol_document.generated_version) # Fake editing the protocol document = model.protocol_document.resolve_document() versioner = Versioner(document) versioner.create_initial_version() versioner.create_version("bumb version") # When closing the meeting, we should end up with a new version browser.open(self.meeting) self.assertEquals([ 'Closing the meeting will not update the protocol automatically.' '\nMake sure to transfer your changes or recreate the protocol.', 'Are you sure you want to close this meeting?' ], browser.css('#confirm_close_meeting p').text) model.close() self.assertEquals(0, model.protocol_document.generated_version) self.assertEquals(u'closed', model.workflow_state)
def test_protocol_generate_action_only_available_for_unedited_protocols( self, browser): self.login(self.committee_responsible, browser) self.schedule_paragraph(self.meeting, u'A-Gesch\xe4fte') self.schedule_proposal(self.meeting, self.submitted_proposal) meeting = self.meeting.model self.assertIsNone(meeting.protocol_document) browser.open(meeting.get_url()) # generate first protocol generate_button = browser.css( '.meeting-document.protocol-doc .action.generate').first # Make sure we have the action without overwrite self.assertIn("overwrite=False", generate_button.get("href")) generate_button.click() statusmessages.assert_message( u'Protocol for meeting 9. Sitzung der ' u'Rechnungspr\xfcfungskommission has been generated ' u'successfully.') self.assertIsNotNone(meeting.protocol_document) self.assertEqual(0, meeting.protocol_document.generated_version) # Fake editing the protocol document = meeting.protocol_document.resolve_document() versioner = Versioner(document) versioner.create_initial_version() versioner.create_version("bumb version") # Without reloading the page, we still have the link to update the protocol # without confirmation generate_button = browser.css( '.meeting-document.protocol-doc .action.generate').first # Make sure we have the action without overwrite self.assertIn("overwrite=False", generate_button.get("href")) generate_button.click() # Protocol was not updated, as update needs confirmation self.assertEqual(0, meeting.protocol_document.generated_version) statusmessages.assert_message( u'Protocol for meeting 9. Sitzung der Rechnungspr\xfcfungskommission ' 'has not been updated. The protocol has been modified manually and ' 'these modifications will be lost if you regenerate the protocol.') # Reload browser page and make sure we now have the link with confirmation browser.open(meeting.get_url()) generate_button = browser.css( '.meeting-document.protocol-doc .action.generate').first self.assertIn("overwrite=True", generate_button.get("href")) self.assertEqual('generate_protocol_with_confirm', generate_button.get("id")) generate_button.click() statusmessages.assert_message( u'Protocol for meeting 9. Sitzung der ' u'Rechnungspr\xfcfungskommission has been updated successfully.') self.assertIsNotNone(meeting.protocol_document) self.assertEqual(2, meeting.protocol_document.generated_version)
def test_protocol_generate_action_only_available_for_unedited_protocols(self, browser): self.login(self.committee_responsible, browser) self.schedule_paragraph(self.meeting, u'A-Gesch\xe4fte') self.schedule_proposal(self.meeting, self.submitted_proposal) meeting = self.meeting.model self.assertIsNone(meeting.protocol_document) browser.open(meeting.get_url()) # generate first protocol generate_button = browser.css('.meeting-document.protocol-doc .action.generate').first # Make sure we have the action without overwrite self.assertIn("overwrite=False", generate_button.get("href")) generate_button.click() statusmessages.assert_message( u'Protocol for meeting 9. Sitzung der ' u'Rechnungspr\xfcfungskommission has been generated ' u'successfully.') self.assertIsNotNone(meeting.protocol_document) self.assertEqual(0, meeting.protocol_document.generated_version) # Fake editing the protocol document = meeting.protocol_document.resolve_document() versioner = Versioner(document) versioner.create_initial_version() versioner.create_version("bumb version") # Without reloading the page, we still have the link to update the protocol # without confirmation generate_button = browser.css('.meeting-document.protocol-doc .action.generate').first # Make sure we have the action without overwrite self.assertIn("overwrite=False", generate_button.get("href")) generate_button.click() # Protocol was not updated, as update needs confirmation self.assertEqual(0, meeting.protocol_document.generated_version) statusmessages.assert_message( u'Protocol for meeting 9. Sitzung der Rechnungspr\xfcfungskommission ' 'has not been updated. The protocol has been modified manually and ' 'these modifications will be lost if you regenerate the protocol.') # Reload browser page and make sure we now have the link with confirmation browser.open(meeting.get_url()) generate_button = browser.css('.meeting-document.protocol-doc .action.generate').first self.assertIn("overwrite=True", generate_button.get("href")) self.assertEqual('generate_protocol_with_confirm', generate_button.get("id")) generate_button.click() statusmessages.assert_message( u'Protocol for meeting 9. Sitzung der ' u'Rechnungspr\xfcfungskommission has been updated successfully.') self.assertIsNotNone(meeting.protocol_document) self.assertEqual(2, meeting.protocol_document.generated_version)