Ejemplo n.º 1
0
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)
Ejemplo n.º 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)
Ejemplo n.º 3
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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)