def edit_a_book(request, book_requested): if request.method == 'POST': formA = BookForm(request.POST, prefix='formA') formA.is_multipart() formB = AuthorForm(request.POST, prefix='formB') # Book Title Regex used before saving to DB -------------------------- if formA.is_valid(): title = formA.cleaned_data['title'] m = re.match('(\w+\s)*(\w+)', title) # continue normal view as before ------------------------------------- if all([formA.is_valid(), formB.is_valid()]) and m is not None and len(str(m.group())) == len(str(title)): orig_book = uncode_display_url(book_requested) book = get_object_or_404(Book, title=orig_book) author = Author.objects.get(book__title=orig_book) book.title = formA.cleaned_data['title'] author.first_name = formB.cleaned_data['first_name'] author.last_name = formB.cleaned_data['last_name'] book.description = formA.cleaned_data['description'] author.save() book.save() return HttpResponseRedirect(reverse('books:profile')) else: orig_book = uncode_display_url(book_requested) book = get_object_or_404(Book, title=orig_book) author = Author.objects.get(book__title=orig_book) formA = BookForm(prefix='formA', initial={'title': book.title, 'description': book.description}) formB = AuthorForm(prefix='formB', initial={'first_name': author.first_name, 'last_name': author.last_name}) return render(request, 'books/edit_a_book.html', {'formA': formA, 'formB': formB})
def addauthor(request,id=1): if request.POST: form = AuthorForm(request.POST) if form.is_valid(): author=form.save(commit=False) form.save() return redirect('/authors/all',)
def add_a_book(request): if request.method == 'POST': formA = AddBookForm(request.POST, request.FILES, prefix='formA') formA.is_multipart() formB = AuthorForm(request.POST, prefix='formB') # Book Title Regex used before saving to DB -------------------------- if formA.is_valid(): title = formA.cleaned_data['title'] m = re.match('(\w+\s)*(\w+)', title) # continue normal view as before ------------------------------------- if all([formA.is_valid(), formB.is_valid()]) and m is not None and len(str(m.group())) == len(str(title)): title = formA.cleaned_data['title'] first_name = formB.cleaned_data['first_name'] last_name = formB.cleaned_data['last_name'] description = formA.cleaned_data['description'] date = datetime.datetime.now() a_book = formA a_author = formB new_book = a_book.save(commit=False) new_author, created_author = Author.objects.get_or_create(first_name=first_name, last_name=last_name) new_book.file.name = content_file_name('content', formA['file'].name) new_book.user = request.user new_book.save() new_book.authors.add(new_author.id) new_book.save() return HttpResponseRedirect(reverse('books:index')) else: formA = AddBookForm(prefix='formA') formB = AuthorForm(prefix='formB') return render(request, 'books/add_a_book.html', {'formA': formA, 'formB': formB})
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 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")
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"))
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 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 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")
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())
def create_author(request): if request.POST: form = AuthorForm(request.POST,request.FILES) if form.is_valid(): form.save() return HttpResponseRedirect('/appwptn/all/author') else: form = AuthorForm() args = {} args.update(csrf(request)) args['form'] = form return render_to_response('create_author.html',args)
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())
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)
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 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())
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)
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_create(request): if request.user.author_profile.count() != 0: return HttpResponseRedirect(reverse('author_detail', args=[request.user.get_profile().id])) if request.method == 'POST': form = AuthorForm(request.POST) if form.is_valid(): new_author = form.save(commit=False) new_author.user = request.user new_author.save() return HttpResponseRedirect(reverse('author_detail', args=[new_author.id])) else: form = AuthorForm(request.POST) else: form = AuthorForm() return render_to_response('author_create.html', {'form': form}, context_instance = RequestContext(request))
def author_manager(request, author): BookInlineFormSet = inlineformset_factory(Author, Book, extra=1, formfield_callback=add_category) form = AuthorForm(request.POST or None, instance=author) formset = BookInlineFormSet(request.POST or None, instance=author) if form.is_valid() and formset.is_valid(): form.save() formset.save() return HttpResponseRedirect('/inlines/') return render_to_response("manage_authors.html", {"formset": formset, "form": form}, RequestContext(request))
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 author_add(request, object_id): """ FIXME @param request: @type request: @param object_id: @type object_id: """ aLarp = get_object_or_404(Larp, pk=object_id) anAuthor = Author(larp=aLarp, user=request.user) if request.method == "POST": form = AuthorForm(request.POST,instance=anAuthor) if form.is_valid(): run=form.save() return HttpResponseRedirect(anAuthor.larp.get_absolute_url()) return HttpResponseRedirect(run.get_absolute_url())
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())
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 author_manager(request, author): BookInlineFormSet = inlineformset_factory(Author, Book, extra=1, formfield_callback=add_category) form = AuthorForm(request.POST or None, instance=author) formset = BookInlineFormSet(request.POST or None, instance=author) if form.is_valid() and formset.is_valid(): form.save() formset.save() return HttpResponseRedirect('/inlines/') return render_to_response("manage_authors.html", { "formset": formset, "form": form }, RequestContext(request))
def submit_proposal(request): if request.method=='POST': author_form = AuthorForm(request.POST) proposal_form = ProposalForm(request.POST, request.FILES) if author_form.is_valid() and proposal_form.is_valid: author = author_form.save(commit=False) author.save() proposal = proposal_form.save(commit=False) proposal.author = author proposal.save() return HttpResponseRedirect(reverse('program-submit-proposal-complete')) else: author_form = AuthorForm() proposal_form = ProposalForm() return render_to_response('program/submit_proposal_form.html', {'author_form': author_form, 'proposal_form': proposal_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 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)
def edit_a_book(request, book_requested): if request.method == 'POST': formA = BookForm(request.POST, prefix='formA') formA.is_multipart() formB = AuthorForm(request.POST, prefix='formB') # Book Title Regex used before saving to DB -------------------------- if formA.is_valid(): title = formA.cleaned_data['title'] m = re.match('(\w+\s)*(\w+)', title) # continue normal view as before ------------------------------------- if all([formA.is_valid(), formB.is_valid() ]) and m is not None and len(str(m.group())) == len( str(title)): orig_book = uncode_display_url(book_requested) book = get_object_or_404(Book, title=orig_book) author = Author.objects.get(book__title=orig_book) book.title = formA.cleaned_data['title'] author.first_name = formB.cleaned_data['first_name'] author.last_name = formB.cleaned_data['last_name'] book.description = formA.cleaned_data['description'] author.save() book.save() return HttpResponseRedirect(reverse('books:profile')) else: orig_book = uncode_display_url(book_requested) book = get_object_or_404(Book, title=orig_book) author = Author.objects.get(book__title=orig_book) formA = BookForm(prefix='formA', initial={ 'title': book.title, 'description': book.description }) formB = AuthorForm(prefix='formB', initial={ 'first_name': author.first_name, 'last_name': author.last_name }) return render(request, 'books/edit_a_book.html', { 'formA': formA, 'formB': formB })
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 addauthor(request, id=1): if request.POST: form = AuthorForm(request.POST) if form.is_valid(): author = form.save(commit=False) form.save() return redirect('/authors/all', )
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_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 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)
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")
def add_a_book(request): if request.method == 'POST': formA = AddBookForm(request.POST, request.FILES, prefix='formA') formA.is_multipart() formB = AuthorForm(request.POST, prefix='formB') # Book Title Regex used before saving to DB -------------------------- if formA.is_valid(): title = formA.cleaned_data['title'] m = re.match('(\w+\s)*(\w+)', title) # continue normal view as before ------------------------------------- if all([formA.is_valid(), formB.is_valid() ]) and m is not None and len(str(m.group())) == len( str(title)): title = formA.cleaned_data['title'] first_name = formB.cleaned_data['first_name'] last_name = formB.cleaned_data['last_name'] description = formA.cleaned_data['description'] date = datetime.datetime.now() a_book = formA a_author = formB new_book = a_book.save(commit=False) new_author, created_author = Author.objects.get_or_create( first_name=first_name, last_name=last_name) new_book.file.name = content_file_name('content', formA['file'].name) new_book.user = request.user new_book.save() new_book.authors.add(new_author.id) new_book.save() return HttpResponseRedirect(reverse('books:index')) else: formA = AddBookForm(prefix='formA') formB = AuthorForm(prefix='formB') return render(request, 'books/add_a_book.html', { 'formA': formA, 'formB': formB })
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)
def author_create(request): if request.user.author_profile.count() != 0: return HttpResponseRedirect( reverse('author_detail', args=[request.user.get_profile().id])) if request.method == 'POST': form = AuthorForm(request.POST) if form.is_valid(): new_author = form.save(commit=False) new_author.user = request.user new_author.save() return HttpResponseRedirect( reverse('author_detail', args=[new_author.id])) else: form = AuthorForm(request.POST) else: form = AuthorForm() return render_to_response('author_create.html', {'form': form}, context_instance=RequestContext(request))
def author_edit(request, id): author = get_object_or_404(Author, pk=id) if request.user != author.user: resp = render_to_response('403.html', context_instance=RequestContext(request)) resp.status_code = 403 return resp if request.method == 'POST': form = AuthorForm(request.POST, instance=author) if form.is_valid(): form.save() return HttpResponseRedirect( reverse('author_detail', args=[author.id])) else: form = AuthorForm(request.POST, instance=author) else: form = AuthorForm(instance=author) return render_to_response('author_edit.html', { 'form': form, 'author': author }, context_instance=RequestContext(request))
def author_edit(request, id): author = get_object_or_404(Author, pk=id) if request.user != author.user: resp = render_to_response('403.html', context_instance=RequestContext(request)) resp.status_code = 403 return resp if request.method == 'POST': form = AuthorForm(request.POST, instance=author) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('author_detail', args=[author.id])) else: form = AuthorForm(request.POST, instance=author) else: form = AuthorForm(instance=author) return render_to_response('author_edit.html', {'form': form, 'author': author}, context_instance = RequestContext(request))
def add_feed_author(): similar_authors = None author = None if 'query' in request.values: similar_authors = Author.auto_complete_authors( request.values['query']).all() names = request.values['query'].split(' ') author = Author.query.filter(Author.lastname == names[-1]).filter( Author.forenames == ' '.join(names[:-1])).first() if 'author_id' in request.values: author = Author.query.filter( Author.id == request.values['author_id']).first() if author is not None: similar_authors = author.similar_authors() if 'feed_id' in request.values: feed_id = int(request.values['feed_id']) else: feed_id = None if author is None: author = Author.query.filter( Author.id == similar_authors[0].id).first() if similar_authors is None: return no_found_error("Error: author not found!") author_form = AuthorForm(user=g.user, author=author, feed_id=feed_id) return render_template('add_feed_author.html', author=author, similar_authors=similar_authors, author_form=author_form, endpoint=request.values['endpoint'])
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)