Пример #1
0
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())
Пример #2
0
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)
Пример #3
0
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'))
Пример #4
0
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'))
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
 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, [])
Пример #8
0
 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)