def author_edit_page(author_id): searchform = SearchForm() db = current_app.config["db"] author = db.get_author_by_id(author_id) if author is None: abort(404) if not current_user.is_admin: abort(401) form = AuthorForm() if form.validate_on_submit(): name = form.data["name"] description = form.data["description"] photo = form.data["photo"] author_ = Author(id=author_id, name=name, description=description, photo=photo) db.update_author(author_) flash("Author updated successfully.") return redirect(url_for("author_page", author_id=author_id)) form.name.data = author.name form.description.data = author.description if author.description else "" form.photo.data = author.photo if author.photo else "" return render_template("author_edit.html", form=form, searchform=searchform)
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)
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)
def login(): af = AuthorForm() if af.validate_on_submit(): user = models.Author.query.filter_by(name=af.name.data, passwd=af.passwd.data).first() if not user: user = models.Author(af.name.data, af.passwd.data) db.session.add(user) db.session.commit() login_user(user) flash("User successful login") return redirect(request.args.get('next') or url_for('index')) else: return render_template('login.html', aform = af)
def author_add(): form = LoginForm() author_form = AuthorForm(request.form) author_form.books.choices = [(p.id, p.title) for p in db_session.query(Book).order_by('id')] if author_form.validate_on_submit(): author = Author() author.name = author_form.name.data author.books = [db_session.query(Book).get(o) for o in author_form.books.data] db_session.add(author) db_session.commit() flash('Successfully added.', 'success') return redirect(url_for('index')) return render_template("add_author.html", bform=author_form, form=form, user=current_user, is_authenticated=True)
def author_edit(id): form = LoginForm() author = db_session.query(Author).get(id) author_form = AuthorForm(request.form, obj=author) author_form.books.choices = [(p.id, p.title) for p in db_session.query(Book).order_by('id')] if author_form.validate_on_submit(): author = db_session.query(Author).get(id) author.name = author_form.name.data author.books = [db_session.query(Book).get(o) for o in author_form.books.data] db_session.commit() flash('Saved.', 'info') return redirect(url_for('index')) author_form.books.data = [p.id for p in author.books] return render_template("author.html", bform=author_form, form=form, author=author, user=current_user, is_authenticated=True)
def addauthor(): """ Добавление писателя (только админ) """ form = AuthorForm() session = db_session.create_session() if form.validate_on_submit(): if session: author = Author(name=form.name.data, surname=form.surname.data, years=form.years.data, list_of_books=form.list_of_books.data) session.add(author) session.commit() return redirect("/") return redirect('/logout') return render_template('addauthor.html', title='Добавление писателя', form=form)
def add_author(author_id): a = Author.query.filter(Author.id == author_id).first() form = AuthorForm(user=g.user, author=a) msg = "Success!" if not form.validate_on_submit(): msg = '; '.join(form.errors.items()) # update feeds for feed in Feed.query.filter(Feed.id.in_(form.feeds.data)): for sa_id, sa_name in form.similar_authors.choices: author = Author.query.filter(Author.id == int(sa_id)).first() if author in feed.authors: feed.authors.remove(author) for sa_id in form.similar_authors.data: author = Author.query.filter(Author.id == int(sa_id)).first() feed.authors.append(author) db.session.add(feed) db.session.commit() return msg
def add_author(author_id): a = Author.query.filter(Author.id == author_id).first() form = AuthorForm(user=g.user, author=a) msg = "Success!" if not form.validate_on_submit(): msg = '; '.join(form.errors.items()) # update feeds for feed in Feed.query.filter(Feed.id.in_(form.feeds.data)): for sa_id, sa_name in form.similar_authors.choices: author = Author.query.filter(Author.id == int(sa_id)).first() if author in feed.authors: feed.authors.remove(author) for sa_id in form.similar_authors.data: author = Author.query.filter(Author.id == int(sa_id)).first() feed.authors.append(author) db.session.add(feed) db.session.commit() return msg
def add_author(): if not current_user.is_admin: return abort(401) db = current_app.config["db"] form = AuthorForm() if form.validate_on_submit(): values = author_take_info_from_form(form) person_id = db.person.add(*values[0]) db.author.add(person_id, values[1]) flash("Author is added successfully", "success") next_page = request.args.get("next", url_for("home_page")) return redirect(next_page) empty_person = PersonObj() empty_author = AuthorObj("", "", "") return render_template("author/author_form.html", form=form, person=empty_person, author=empty_author)
def author_edit_page(author_id): if not current_user.is_admin: return abort(401) db = current_app.config["db"] form = AuthorForm() author_obj = db.author.get_row("*", "AUTHOR_ID", author_id) person_obj = db.person.get_row("*", "PERSON_ID", author_obj.person_id) if form.validate_on_submit(): values = author_take_info_from_form(form) db.person.update([ "PERSON_NAME", "SURNAME", "GENDER", "DATE_OF_BIRTH", "NATIONALITY" ], values[0], "PERSON_ID", author_obj.person_id) db.author.update("BIOGRAPHY", values[1], "AUTHOR_ID", author_id) flash("Author is updated successfully", "success") next_page = request.args.get("next", url_for("home_page")) return redirect(next_page) return render_template("author/author_form.html", form=form, person=person_obj, author=author_obj)
def author_add(): # form = LoginForm() author_form = AuthorForm(request.form) author_form.books.choices = [ (p.id, p.title) for p in db_session.query(Book).order_by('id') ] if author_form.validate_on_submit(): author = Author() author.name = author_form.name.data author.books = [ db_session.query(Book).get(o) for o in author_form.books.data ] db_session.add(author) db_session.commit() flash('Successfully added.', 'success') return redirect(url_for('index')) return render_template("new_author.html", bform=author_form, user=current_user, is_authenticated=True)
def author_edit(id): # form = LoginForm() author = db_session.query(Author).get(id) author_form = AuthorForm(request.form, obj=author) author_form.books.choices = [ (p.id, p.title) for p in db_session.query(Book).order_by('id') ] if author_form.validate_on_submit(): author = db_session.query(Author).get(id) author.name = author_form.name.data author.books = [ db_session.query(Book).get(o) for o in author_form.books.data ] db_session.commit() flash('Saved.', 'info') return redirect(url_for('index')) author_form.books.data = [p.id for p in author.books] return render_template("author.html", bform=author_form, author=author, user=current_user, is_authenticated=True)