Esempio n. 1
0
 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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
    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')
Esempio n. 5
0
 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)