Пример #1
0
def add_author():
    form = AuthorForm(request.form)
    if request.method == 'POST' and form.validate():
        author = Author(form.name.data)
        session.add(author)
        session.commit()
        return redirect(url_for('index'))
    return render_template('author_form.html', form=form, action="/author/add")
Пример #2
0
def addauthor():
    form = AuthorForm(request.form)
    if form.validate():
        a = Author(form.name.data)
        db_session.add(a)
        db_session.commit()
        return redirect(url_for("singleauthor", a_id=a.id))
    else:
        return redirect(url_for("index"))
Пример #3
0
def authors_add():
    form = AuthorForm(request.form)

    if request.method == "POST" and form.validate():
        new_author = Author(name=form.data.get('name'))
        db.session.add(new_author)
        db.session.commit()
        flash("Author added")
        return redirect(url_for('authors_view_all'))

    return render_template('authors/add.html', **locals())
Пример #4
0
def edit_author(author_id):
    form = AuthorForm(request.form)
    if request.method == 'GET':
        form = AuthorForm(request.form, session.query(Author).get(author_id))
    if request.method == 'POST' and form.validate():
        author_edited = Author(form.name.data)
        author_db = session.query(Author).get(author_id)
        author_db.name = author_edited.name
        session.commit()
        return redirect(url_for('index'))
    return render_template('author_form.html', form=form, action="/author/%s/edit" % author_id, submit_text="Save")
Пример #5
0
def authors_edit(author_id):
    author = Author.query.get_or_404(author_id)

    form = AuthorForm(request.form, obj=author)

    if request.method == "POST" and form.validate():
        author.name = form.data.get('name')
        db.session.commit()
        flash("Author changed")
        return redirect(url_for('authors_view_all'))

    return render_template('authors/edit.html', **locals())
Пример #6
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)
Пример #7
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)
Пример #8
0
def add_author():
    form = AuthorForm(request.form)
    if request.method == 'POST' and form.validate():
        author = Author(form.name.data)
        session.add(author)
        session.commit()
        return redirect(url_for('index'))
    return render_template('author_form.html',
                           form=form,
                           action="/author/add",
                           user_name=current_user.name,
                           user_picture=current_user.picture,
                           if_administrator=verify_administrator())
Пример #9
0
def author():
	form = AuthorForm(formdata=request.form or None)
	if request.method == 'POST':
		if request.form and form.validate():
			a = Author(name=form.name.data)
			db.session.add(a)
			db.session.commit()
			return redirect(url_for('author'))
		else:
		    flash('There was an error with your input: %s' % form.errors)
		    return redirect(url_for('author'))
		
	else:
		authors = Author.query.all()
		return render_template('author.html', authors=authors, form=form)
Пример #10
0
def edit_author(author_id):
    form = AuthorForm(request.form)
    if request.method == 'GET':
        form = AuthorForm(request.form, session.query(Author).get(author_id))
    if request.method == 'POST' and form.validate():
        author_edited = Author(form.name.data)
        author_db = session.query(Author).get(author_id)
        author_db.name = author_edited.name
        session.commit()
        return redirect(url_for('index'))
    return render_template('author_form.html',
                           form=form,
                           action="/author/%s/edit" % (author_id),
                           submit_text="Save",
                           user_name=current_user.name,
                           user_picture=current_user.picture,
                           if_administrator=verify_administrator())
Пример #11
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)
Пример #12
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)
Пример #13
0
def singleauthor(a_id):
    author = Author.query.filter(Author.id == a_id).one()
    if request.method == "GET":
        books = author.books
        page = {'title': author.name}
        forms = {
            'author': AuthorForm(),
            'book': BookForm(),
            'authorship': AuthorshipForm(),
            'search': SearchForm()
        }
        forms['authorship'].books.choices = [(b.id, b.title) for b in Book.query.all()]
        return render_template("author.html", **locals())
    elif request.method == "POST":
        form = AuthorForm(request.form)
        if form.validate():
            author.name = form.name.data
            db_session.commit()
        return redirect(url_for("singleauthor", a_id=a_id)) # либо рендерить?..
    elif request.method == "DELETE":
        db_session.delete(author)
        db_session.commit()
        return url_for("index")
Пример #14
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)
Пример #15
0
def edit_author(number):
	if number == 'new':
		author = Author()
		title = 'Ajouter un auteur dans la bibliotheque'
	else:
		author = Author.query.get(number)
		title = author
		if os.path.exists('app/static/photos/' + str(author.id)):
			author.img = True
	#global author
	#a = author
	form = AuthorForm()
	form.booktoadd.choices = Book.query.filter(Book!=author.books)
	update = False
	#if form.validate_on_submit():
	if request.form=='POST' and form.validate():
		#print form.errors
		author.firstname = unicode(form.firstname.data)
		author.familyname = unicode(form.familyname.data)
		if form.nationality.data != author.nationality:
			author.nationality= unicode(form.nationality.data)
			update = True
		#a.dateofbirth= form.dateofbirth.data
		if form.placeofbirth.data != author.placeofbirth:
			author.placeofbirth = unicode(form.placeofbirth.data)
			update = True
		if form.website.data != author.website:
			author.website = unicode(form.website.data)
			update = True
		if form.biography.data != author.biography:
			author.biography = unicode(form.biography.data)
			update = True

		# gestion des livres
		if request.form.getlist('booktodelete'):
			for item in request.form.getlist('booktodelete'):
				a = Book.query.get(item)
				author.remove_book(a)
				update = True
		
		if request.form.getlist('booktoadd'):
			for item in request.form.getlist('booktoadd'):
				# even if noting is select, the field return something, a unicode string '__None'
				# this "if" not to block the whole thing. Same on books !
				if item != '__None':
					a = Book.query.get(item)
					author.add_book(a)
					update = True
		
		if update:
			db.session.add(author)
			db.session.commit()
			db.session.refresh(author)
		
		# the photo will overwrite the previous if existing.
		# thus, only one per author and nothing else to check
		if request.method == 'POST' and request.files['portrait']:
			fileurl = 'app/static/photos/' + str(author.id)
			image = request.files['portrait'].save(fileurl)
		
		return redirect('/admin')
	return render_template('edit_author.html', form = form, author = author, title = title)