def test_delete_document(self): new_doc_id = dm.create_new_document(self.template.id, {'name': 'foobar'}) documents = dm.get_all_documents() self.assertEquals(len(documents), 2) dm.delete_document(self.document) documents = dm.get_all_documents() self.assertEquals(len(documents), 1) self.assertEquals(documents[0].id, new_doc_id)
def new_document(template_id): ''' View handling the creation of new documents from templates GET - Returns the new document form POST - Creates a new document from a template ''' template = tp.get_single_template(template_id) form = DocumentBaseForm() if form.validate_on_submit(): document_base_id = dm.create_new_document(template_id, request.form) return redirect( url_for('generator.edit_document_sections', document_id=document_base_id) ) return render_template('generator/new.html', form=form, template=template)
def new_document(template_id): ''' View handling the creation of new documents from templates GET - Returns the new document form POST - Creates a new document from a template ''' template = tp.get_single_template(template_id) form = DocumentBaseForm() if form.validate_on_submit(): document_base_id = dm.create_new_document(template_id, request.form) return redirect( url_for('generator.edit_document_sections', document_id=document_base_id)) return render_template('generator/new.html', form=form, template=template)
def test_update_section(self): # add the unicode placeholder type db.session.execute('''INSERT INTO placeholder_types VALUES (1, 'unicode')''') # generate a template, section, and document template = util.insert_new_template() section = util.insert_new_section() document_id = dm.create_new_document(template.id, {'name': 'foobar'}) # add content to the section new_content = { 'widget': 'this is a <span class="js-fr-placeholder">[[Text||foo]]</span>' + '<span class="js-fr-placeholder">[[Text||bar]]</span>' + '<span class="js-fr-placeholder">[[Text||baz]]</span>' } # update the section and document with our new content sc.update_section(section, [], template.id, new_content) dm.update_documents(template.id) # test that the placeholders made it in ok placeholders = TemplatePlaceholders.query.all() self.assertEquals(len(placeholders), 3) self.assertEquals(section.text, new_content.get('widget')) # add values to each of the placeholders dm.save_document_section(placeholders, {'[[foo]]': 'foo', '[[bar]]': 'foo', '[[baz]]': 'foo'}) # test that the values were set properly document_placeholders = dm.get_document_placeholders(document_id) self.assertEquals(len(document_placeholders), 3) for placeholder in document_placeholders: self.assertEquals(placeholder.value, 'foo') # new content, deleting old placeholders new_content2 = { 'widget': 'this is a section with fewer placeholders <span class="js-fr-placeholder">[[Text||foo]]</span>' } # update the section, documents sc.update_section(section, placeholders, template.id, new_content2) dm.update_documents(template.id) # test that everything is correct with the section self.assertEquals(len(TemplatePlaceholders.query.all()), 1) self.assertEquals(section.text, new_content2.get('widget')) # test that the documents were updated properly placeholders = TemplatePlaceholders.query.all() document_placeholders = dm.get_document_placeholders(document_id) self.assertEquals(len(document_placeholders), 1) self.assertEquals(document_placeholders[0].value, 'foo') # update the section, additional content # add content to the section new_content = { 'widget': 'this is a <span class="js-fr-placeholder">[[Text||foo]]</span>' + '<span class="js-fr-placeholder">[[Text||bar]]</span>' } # update the section and document with our new content sc.update_section(section, placeholders, template.id, new_content) dm.update_documents(template.id) # test that the old value is still set document_placeholders = dm.get_document_placeholders(document_id) self.assertEquals(len(document_placeholders), 2) for placeholder in document_placeholders: if placeholder.display_name == '[[foo]]': self.assertEquals(placeholder.value, 'foo')
def test_create_document(self): new_doc_id = dm.create_new_document(self.template.id, {'name': 'foobar'}) placeholders = dm.get_document_placeholders(new_doc_id) self.assertEquals(len(placeholders), 1)