Example #1
0
def registerUser():
    form = UserRegisterForm(request.form)
    if form.validate_on_submit():
        user = User(
                name = form.name.data,
                surname = form.surname.data,
                email = form.email.data,
                password = utils.encrypt_password(form.password.data),
                birth_date = form.birth_date.data,
                #country = form.country.data,
                il_id = form.il.data if form.il.data > 0 else None,
                ilce_id = form.ilce.data if form.ilce.data > 0 else None,
                semt_id = form.semt.data if form.semt.data > 0 else None,
                confirmed = False,
                active = True
        )
        for i in form.interests.data:
			#dao.addObject(interests_users(interest_id=i, user_id=user.id))
			user.interests.append(dao.getObject(i, InterestArea))
        dao.addObject(user)
        dao.commit()
        login_user(user)
        flash(u'Kayıt oldunuz', 'info')
        return redirect(url_for('index'))
    return render_template('register_user.html', form=form)
Example #2
0
def addBook():
    if 'editor' not in current_user.roles and 'admin' not in current_user.roles:
        flash(u'Bu sayfaya erişim izniniz yok.', 'warning')
        return redirect(url_for('index'))
    form = BookAddForm(request.form)
    if form.validate_on_submit():
        author = dao.getObject(form.author.data, Author)
        
        publisher = None
        ebook_fname = None
        image_fname = None
        if form.publisher.data:
            publisher = dao.getObject(form.publisher.data, Publisher)
        if form.ebook.data:
            ebook_fname = ebooks.save(request.files[form.ebook.name])
        if form.image.data:
            image_fname = book_images.save(request.files[form.image.name])
        book = Book(
                name = form.name.data,
                author = author,
                publication_place= form.publication_place.data,
                publication_year= form.publication_year.data,
                publisher = publisher,
                isbn = form.isbn.data,
                page_amount = form.page_amount.data,
                description = form.description.data,
                ebook_fname = ebook_fname,
                image_fname = image_fname
        )
        dao.addObject(book)
        dao.commit();
        flash('Kitap eklendi.', 'info')
        return redirect(url_for('index'))
    return render_template('add_book.html', form=form)
Example #3
0
def removeNote(note_id):
    note = dao.getObject(note_id, Note)
    if note.user != current_user:
        return redirect(request.referrer or url_for('index'))
    dao.deleteObject(note)
    dao.commit()
    flash("Not silindi!", 'info')
    return redirect(request.referrer or url_for('bookPage', book_id=note.book.id))
Example #4
0
def removeComment(comment_id):
    comment = dao.getObject(comment_id, Comment)
    if comment.user != current_user:
        return redirect(request.referrer or url_for('index'))
    dao.deleteObject(comment)
    dao.commit()
    flash("Yorum silindi!", 'info')
    return redirect(request.referrer or url_for('bookPage', book_id=comment.book.id))
Example #5
0
def deleteSummary(assoc_id):
    assoc = dao.getObject(assoc_id, UserBook)
    if assoc is None or assoc not in current_user.book_assocs or assoc.status != Status.have_read or assoc.summary == None:
        flash(u'Var olmayan bir özeti silemezsiniz!', 'warning')
        return redirect(request.referrer or url_for('index'))
    dao.deleteObject(assoc.summary)
    dao.commit()
    flash(u'Özet silindi!', 'info')
    return redirect(url_for('index'))
Example #6
0
def editComment(comment_id):
    comment = dao.getObject(comment_id, Comment)
    if comment is None or comment.user != current_user:
        flash(u'Bu yorumu düzenleyemezsiniz!', 'warning')
        return redirect(request.referrer or url_for('index'))
    comment.text = request.form["comment"]
    comment.time_last_modified = datetime.now()
    dao.commit()
    flash(u'Yorum düzenlendi!', 'info')
    return redirect(request.referrer or url_for('bookPage', book_id=comment.book.id))
Example #7
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'))
Example #8
0
def recommendBook():
    if 'admin' not in current_user.roles or not session['ids_list']:
        flash(u'Bu sayfaya erişim izniniz yok.', 'warning')
        return redirect(url_for('index'))
    form = RecommendBookForm(request.form)
    if form.validate_on_submit():
        ids = session['ids_list']
        for user_id in ids:
            dao.associateBookWithUser(form.book.data, user_id, Status.recommended)
        dao.commit()
        #session['ids_list'] = None
        flash(u'Kitap önerme tamamlandı.', 'info')
    return render_template('recommend_book.html', form=form)
Example #9
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'))
Example #10
0
def editSummary(assoc_id):
    assoc = dao.getObject(assoc_id, UserBook)
    if assoc is None or assoc not in current_user.book_assocs or assoc.status != Status.have_read or assoc.summary == None:
        flash(u'Var olmayan bir özeti güncelleyemezsiniz!', 'warning')
        return redirect(request.referrer or url_for('index'))
    form = WriteSummaryForm(request.form)
    if form.validate_on_submit():
        assoc.summary.text = form.summary.data
        assoc.summary.time_last_modified = datetime.now()
        dao.commit()
        flash(u'Özet güncellendi!', 'info')
        return redirect(url_for('bookPage', book_id=assoc.book.id))
    elif request.method == 'GET':
        form.summary.data = assoc.summary.text
    return render_template('write_summary.html', form=form)
Example #11
0
def index():
    rg = current_user.reading_goal
    message = ""
    if rg:
        now = datetime.now()
        #degisebilir
        if rg.last_update.day != now.day:
            rg.last_update = now
            rg.pages_read_today = 0
            dao.commit()
        if rg.pages_read_today >= rg.goal:
            message = u"Günlük okuma hedefinizi tamamladınız!"
        else:
            message = u"Günlük okuma hedefinizi tamamlamanıza %s sayfa kaldı!" % (rg.goal - rg.pages_read_today)
    return render_template('user.html', status_list=list(enumerate(Status.names)), goal_message=message)
Example #12
0
def writeComment(book_id):
    book = dao.getObject(book_id, Book)
    if book is None:
        flash(u'Böyle bir kitap yok!', 'warning')
        return redirect(request.referrer or url_for('index'))
        
    form = WriteCommentForm(request.form)
    if form.validate_on_submit():
        comment = Comment(
            text = form.comment.data,
            user = current_user,
            book = book,
            time_created = datetime.now(),
            time_last_modified = None
        )
        dao.addObject(comment)
        dao.commit()
        flash(u'Yorum yazıldı!', 'info')
    return redirect(request.referrer or url_for('bookPage', book_id=book.id))
Example #13
0
def writeSummary(assoc_id):
    assoc = dao.getObject(assoc_id, UserBook)
    if assoc is None or assoc not in current_user.book_assocs or assoc.status != Status.have_read or assoc.summary != None:
        flash(u'Sadece okumuş olduğunuz kitaplar hakkında birer adet özet yazabilirsiniz!', 'warning')
        return redirect(request.referrer or url_for('index'))
    
    form = WriteSummaryForm(request.form)
    if form.validate_on_submit():
        summary = Summary(
            text = form.summary.data,
            time_created = datetime.now(),
            time_last_modified = None,
            userbook = assoc
        )
        dao.addObject(summary)
        dao.commit()
        flash(u'Özet yazıldı!', 'info')
        return redirect(url_for('bookPage', book_id=assoc.book.id))
    return render_template('write_summary.html', form=form)
Example #14
0
def rateBook(assoc_id):
    rate = int(request.args.get("rate"))
    if rate is None or rate not in [-1, 1]:
        return redirect(url_for('home'))
    assoc = dao.getObject(assoc_id, UserBook)
    if assoc.rating == 0:
        assoc.rating = rate
        assoc.book.score_amount += 1
        if rate == 1:
            assoc.book.like_amount += 1
    elif assoc.rating == rate:
        assoc.rating = 0
        assoc.book.score_amount -= 1
        if rate == 1:
            assoc.book.like_amount -= 1
    else:
        assoc.rating = rate
        assoc.book.like_amount += 1 if rate == 1 else -1
    dao.commit()
    return redirect(request.referrer or url_for('index'))
Example #15
0
def setGoal():
    try:
        goal = int(request.form.get('goal'))
    except ValueError:
        flash(u"Kutuya geçerli bir değer girmelisiniz!", "warning")
        return redirect(url_for('index'))
    if goal < 1:
        flash(u"Hedef birden küçük olamaz!", "warning")
        return redirect(url_for('index'))
    if current_user.reading_goal is None:
        current_user.reading_goal = ReadingGoal(
            goal = goal,
            pages_read_today = 0,
            last_update = datetime.now(),
            reached = False
        )
        dao.commit()
    else:
        current_user.reading_goal.goal = goal
        current_user.reading_goal.last_update = datetime.now()
        dao.commit()
    return redirect(url_for('index'))
Example #16
0
def writeNote(assoc_id):
    assoc = dao.getObject(assoc_id, UserBook)
    if assoc is None or assoc.status != Status.reading:
        flash(u"Okumakta olmadığınız bir kitaba not alamazsınız", 'warning')
        return redirect(request.referrer or url_for('index'))
    note_form = WriteNoteForm(request.form)
    if note_form.validate_on_submit():
        note = Note(
            text = note_form.note.data,
            page = note_form.page.data,
            is_public = note_form.is_public.data,
            userbook = assoc,
            time_created = datetime.now(),
            time_last_modified = None
        )
        dao.addObject(note)
        dao.commit()
        flash(u'Not yazıldı!', 'info')
        return redirect(url_for('bookRead', book_id=assoc.book.id))
    else:
        flash(u'Not yazımı hatalı!', 'info')
        return redirect(url_for('bookRead', book_id=assoc.book.id, hide=""))
Example #17
0
def on_user_logged_in(sender, user):
    user.last_login = datetime.now()
    dao.commit()
Example #18
0
def removeGoal():
    if current_user.reading_goal is not None:
        dao.deleteObject(current_user.reading_goal)
        dao.commit()
    return redirect(url_for('index'))
Example #19
0
def removeBookFromList():
    book_id = request.args.get('book_id')
    dao.removeBookFromUser(book_id, current_user.id)
    dao.commit()
    return redirect(url_for('index'))