Пример #1
0
 def dispatch_request(self):
     form = AuthorForm()
     form.books.query = Book.query.all()
     if request.method == "POST":
         if form.validate_on_submit():
             obj = Author()
             form.populate_obj(obj)
             obj.save()
             return redirect("/authors/")
     return render_template("author_add.html", form=form)
Пример #2
0
 def dispatch_request(self, obj_id):
     obj = Author.query.get_or_404(obj_id)
     form = AuthorForm(obj=obj)
     form.books.query = Book.query.join(Author.books).union(Book.query)
     if request.method == "POST":
         if form.validate_on_submit():
             form.populate_obj(obj)
             obj.save()
             return redirect("/authors/")
     return render_template("author_edit.html", form=form, obj=obj)
Пример #3
0
def create_author():
    if request.method == 'GET':
        form = AuthorForm()
    else:   # POST
        form = AuthorForm(request.form)
        if form.validate():
            author = Author('')
            form.populate_obj(author)
            db.session.add(author)
            db.session.commit()
            return redirect(url_for('edit_authors'))
    return render_template('authors_edit_page.html', form=form)
Пример #4
0
def create_author():
    if request.method == 'GET':
        form = AuthorForm()
    else:  # POST
        form = AuthorForm(request.form)
        if form.validate():
            author = Author('')
            form.populate_obj(author)
            db.session.add(author)
            db.session.commit()
            return redirect(url_for('edit_authors'))
    return render_template('authors_edit_page.html', form=form)
Пример #5
0
def edit_authors(id_=None):
    if id_ is None:
        authors = Author.query.all()
        return render_template('authors_list_page.html', authors=authors)
    else:
        author = Author.query.get_or_404(id_)
        if request.method == 'GET':
            form = AuthorForm(obj=author)
        elif request.method == 'POST':
            form = AuthorForm(request.form)
            if form.validate():
                form.populate_obj(author)
                db.session.add(author)
                db.session.commit()
                return redirect(url_for('edit_authors'))
        else:    # request.method == 'DELETE'
            db.session.delete(author)
            db.session.commit()
            return '', 200
    return render_template('authors_edit_page.html', form=form, obj_id=author.id)
Пример #6
0
def edit_authors(id_=None):
    if id_ is None:
        authors = Author.query.all()
        return render_template('authors_list_page.html', authors=authors)
    else:
        author = Author.query.get_or_404(id_)
        if request.method == 'GET':
            form = AuthorForm(obj=author)
        elif request.method == 'POST':
            form = AuthorForm(request.form)
            if form.validate():
                form.populate_obj(author)
                db.session.add(author)
                db.session.commit()
                return redirect(url_for('edit_authors'))
        else:  # request.method == 'DELETE'
            db.session.delete(author)
            db.session.commit()
            return '', 200
    return render_template('authors_edit_page.html',
                           form=form,
                           obj_id=author.id)
Пример #7
0
def edit_author(id):
    '''Editing or adding author depending on given id.'''
    if id == 'new':
        author = Author()
    else:
        author = Author.query.filter_by(id=id).first_or_404()
    form = AuthorForm(request.form, obj=author)
    if request.method == 'GET':
        return render_template('edit_author.html', form=form)
    if request.method == 'POST' and form.validate():
        form.populate_obj(author)
        author.name = form.name.data
        author.books = form.books.data
        if id == 'new':
            db.session.add(author)
            flash('Author was successfully added')
        else:
            db.session.merge(author)
            flash('Author info was successfully updated')
        db.session.commit()
        return redirect(url_for('author', id=author.id))
    else:
        return render_template('edit_author.html', form=form)