def bookPage(book_id): book = dao.getObject(book_id, Book) if book is None: flash('Kitap bulunmuyor', 'warning') return redirect(request.referrer or '/') assoc = dao.findUserBook(current_user.id, book_id) return render_template('book_page.html', book=book, assoc=assoc, comment_form=WriteCommentForm())
def bookRead(book_id): assoc = dao.findUserBook(current_user.id, book_id) if assoc is None or (assoc.status != Status.reading and assoc.status != Status.have_read): flash(u"Bu kitabı okumuyorsunuz", 'warning') return redirect(request.referrer or url_for('index')) hide = (request.args.get("hide") is None) page = request.args.get('start_page') or assoc.pages_read return render_template('book_read.html', assoc=assoc, note_form=WriteNoteForm(page=page), comment_form=WriteCommentForm(), hide=hide, start_page=page)
def addBookToUser(): book_id = request.args.get("book_id") status = request.args.get("status") assoc = dao.findUserBook(current_user.id, book_id) if assoc is not None and assoc.status == Status.removed: dao.updateAssocStatus(book_id, current_user.id, None, status) dao.commit() else: if dao.associateBookWithUser(book_id, current_user.id, status): dao.commit() else: flash("Bu kitap zaten listenizde!", 'warning') return redirect(url_for('index'))
def updateBookFromList(): book_id = request.args.get('book_id') status = request.args.get('status') pages_read = request.args.get('pages_read') is_finished = dao.updateAssocStatus(book_id, current_user.id, pages_read, status) dao.commit() if is_finished: assoc = dao.findUserBook(current_user.id, book_id) flash(assoc.book.__repr__()+u""" kitabını bitirdiniz! <button onclick="rateBook(%s, 1)">Beğen</button> <button onclick="rateBook(%s, -1)">Beğenme</button> <p><a href='book/%s'>Yorum yapmak için kitap sayfasına gidin</a></p>""" % (assoc.id, assoc.id, book_id), "modal") return redirect(url_for('index'))
def test_summary(self): with self.app: self.app.post( '/login', data=dict(email="*****@*****.**", password="******"), follow_redirects=True ) self.app.get( '/add_book_to_user?book_id=1&status=3', follow_redirects=True ) book = getObject(1, Book) self.assertIn(book, current_user.books) # create response = self.app.post( '/write_summary/1', data=dict(summary="Summary summary summary"), follow_redirects=True ) assoc = findUserBook(current_user.id, 1) self.assertIn("Özet yazıldı", response.data) self.assertIsNotNone(assoc.summary) self.assertEqual("Summary summary summary", assoc.summary.text) # read response = self.app.get( '/summary/1', follow_redirects=True ) self.assertIn("Summary summary summary", response.data) self.assertIn("Özetleyen - Userguy Userson", response.data) # update response = self.app.post( '/edit_summary/1', data=dict(summary="Hede hodo hudu"), follow_redirects=True ) self.assertIn("Özet güncellendi!", response.data) self.assertIn("Hede hodo hudu", response.data) self.assertIn(format_time(assoc.summary.time_last_modified), response.data) self.assertEqual("Hede hodo hudu", assoc.summary.text) # delete response = self.app.get( '/delete_summary/1', follow_redirects=True ) self.assertIn("Özet silindi!", response.data) self.assertNotIn("Hede hodo hudu", response.data) self.assertIsNone(assoc.summary)
def test_update_book_in_user(self): with self.app: self.app.post( '/login', data=dict(email="*****@*****.**", password="******"), follow_redirects=True ) self.app.get( '/add_book_to_user?book_id=1&status=1', follow_redirects=True ) book = getObject(1, Book) self.assertIn(book, current_user.books) response = self.app.get( '/update_book_list?book_id=1&status=2', follow_redirects=True ) assoc = findUserBook(current_user.id, 1) self.assertEqual(assoc.status, 2) self.assertEqual(response.status_code, 200)
def test_note(self): with self.app: self.app.post( '/login', data=dict(email="*****@*****.**", password="******"), follow_redirects=True ) self.app.get( '/add_book_to_user?book_id=1&status=2', follow_redirects=True ) book = getObject(1, Book) self.assertIn(book, current_user.books) # create response = self.app.post( '/write_note/1', data=dict(page=10, note="Note note note"), follow_redirects=True ) assoc = findUserBook(current_user.id, 1) self.assertIn("Not yazıldı!", response.data) self.assertIsNotNone(assoc.notes) self.assertNotEqual(assoc.notes, []) self.assertEqual("Note note note", assoc.notes[0].text) self.assertEqual(10, assoc.notes[0].page) self.assertFalse(assoc.notes[0].is_public) # read note in the user page response = self.app.get( '/userpage', follow_redirects=True ) self.assertIn("Note note note", response.data) self.assertIn(format_time(assoc.notes[0].time_created), response.data) # delete response = self.app.get( '/remove_note/1', follow_redirects=True ) self.assertIn("Not silindi!", response.data) self.assertNotIn("Note note note", response.data) self.assertEqual(assoc.notes, [])
def test_rate(self): with self.app: self.app.post( '/login', data=dict(email="*****@*****.**", password="******"), follow_redirects=True ) self.app.get( '/add_book_to_user?book_id=1&status=3', follow_redirects=True ) book = getObject(1, Book) assoc = findUserBook(current_user.id, 1) self.assertIn(book, current_user.books) self.assertEqual(book.like_amount, 0) self.assertEqual(book.score_amount, 0) self.assertEqual(assoc.rating, 0) # 0 -> 1 self.app.get( '/ratebook/1?rate=1' ) self.assertEqual(book.like_amount, 1) self.assertEqual(book.score_amount, 1) self.assertEqual(assoc.rating, 1) # 1 -> 0 self.app.get( '/ratebook/1?rate=1' ) self.assertEqual(book.like_amount, 0) self.assertEqual(book.score_amount, 0) self.assertEqual(assoc.rating, 0) # 0 -> -1 self.app.get( '/ratebook/1?rate=-1' ) self.assertEqual(book.like_amount, 0) self.assertEqual(book.score_amount, 1) self.assertEqual(assoc.rating, -1) # -1 -> 0 self.app.get( '/ratebook/1?rate=-1' ) self.assertEqual(book.like_amount, 0) self.assertEqual(book.score_amount, 0) self.assertEqual(assoc.rating, 0) # -1 -> 1 self.app.get( '/ratebook/1?rate=-1' ) self.app.get( '/ratebook/1?rate=1' ) self.assertEqual(book.like_amount, 1) self.assertEqual(book.score_amount, 1) self.assertEqual(assoc.rating, 1) # 1 -> -1 self.app.get( '/ratebook/1?rate=-1' ) self.assertEqual(book.like_amount, 0) self.assertEqual(book.score_amount, 1) self.assertEqual(assoc.rating, -1)