Пример #1
0
def news(method):
    morph = pymorphy2.MorphAnalyzer()
    db_sess = db_session.create_session()
    user_id = request.cookies.get('id')
    if method == 'GET':
        reviews__ = []
        reviews_ = db_sess.query(__all_models.Films).all()
        for i in reviews_:
            reviews__.append(
                [i.title, i.average_mark, i.genres, i.year, i.countReviews])
        word = morph.parse('Человек')[0]
        return render_template('news.html', reviews=reviews__, word=word)
    else:
        if 'header_btn' in request.form:
            return header_logic()
        elif 'submit_btn' in request.form:
            return search_logic()
Пример #2
0
def change_review(method, id):
    db_sess = db_session.create_session()
    user_id = request.cookies.get('id')
    review_ = db_sess.query(__all_models.Reviews).filter(
        __all_models.Reviews.id == id,
        __all_models.Reviews.id_user == user_id).first()
    if method == 'GET':
        return render_template('NewReviewForm.html',
                               film_title=review_.title,
                               mark_value=review_.mark,
                               year_film=review_.year,
                               review_user=review_.review,
                               btn_text='Изменить отзыв')
    else:
        if 'header_btn' in request.form:
            return header_logic()
        elif 'submit_btn' in request.form:
            return search_logic()
        else:
            title = request.form['movie_title']
            mark = request.form['mark']
            genre = request.form['genreOfFilm']
            year = request.form['movie_year']
            review = request.form['feedback']

            films = db_sess.query(__all_models.Films).filter(
                __all_models.Films.title == title).first()
            marks = [int(i) for i in films.mark.split('_')]
            for i in marks:
                if i == int(review_.mark):
                    marks[marks.index(i)] = mark
                    break
            films.mark = '_'.join([str(i) for i in marks])
            average_mark = sum([int(i) for i in marks]) / films.countReviews
            films.average_mark = average_mark

            review_.title = title
            review_.mark = mark
            review_.genre = genre
            review_.year = year
            review_.review = review
            db_sess.commit()
            return redirect('/news')
Пример #3
0
def reviews_check(method):
    db_sess = db_session.create_session()
    user_id = request.cookies.get('id')
    if method == 'GET':
        reviews_ = db_sess.query(__all_models.Reviews).filter(
            __all_models.Reviews.id_user == user_id)
        return render_template(
            'Reviews_form.html',
            reviews=reviews_,
        )
    else:
        if 'header_btn' in request.form:
            return header_logic()
        elif 'submit_btn' in request.form:
            return search_logic()
        else:
            if request.form['btn'] == 'change':
                return redirect('/change_review/<ind:id>')
            else:
                return redirect('/delete_review/<int:id>')
Пример #4
0
def main(method, photos):
    db_sess = db_session.create_session()
    user_id = request.cookies.get('id')
    user = db_sess.query(
        __all_models.User).filter(__all_models.User.id == user_id).first()
    if method == 'GET':
        reviews_ = db_sess.query(__all_models.Reviews).filter(
            __all_models.Reviews.id_user == user_id)
        if user.img is not None:
            return render_template('profile.html',
                                   image_route=url_for(
                                       'static',
                                       filename=f'pictures/{user.img}'),
                                   reviews=reviews_,
                                   name=user.name,
                                   count_reviews=user.reviews_count,
                                   reg_data=user.created_date)
        else:
            return render_template('profile.html',
                                   image_route=url_for(
                                       'static', filename='pictures/0.jpg'),
                                   name=user.name,
                                   count_reviews=user.reviews_count,
                                   reg_data=user.created_date,
                                   reviews=reviews_)
    else:
        if 'header_btn' in request.form:
            return header_logic()
        elif 'submit_btn' in request.form:
            return search_logic()
        else:
            if request.form['btn'] == 'write_new_review':
                return redirect('/writeReview')
            elif request.form['btn'] == 'edit_photo':
                img = request.files['file']
                filename = photos.save(img)
                user.img = filename
                db_sess.commit()
                return redirect('/profile')
            else:
                return 'ok'
Пример #5
0
def writeNewReview(method):
    if method == 'GET':
        return render_template('NewReviewForm.html',
                               film_title='',
                               mark_value=0,
                               year_film='',
                               review_user='',
                               btn_text='Добавить отзыв')
    else:
        if 'header_btn' in request.form:
            return header_logic()
        elif 'submit_btn' in request.form:
            return search_logic()
        else:
            user_id = request.cookies.get('id')
            db_sess = db_session.create_session()

            title = request.form['movie_title']
            mark = request.form['mark']
            genre = request.form['genreOfFilm']
            year = request.form['movie_year']
            review = request.form['feedback']

            db_film = db_sess.query(__all_models.Reviews).filter(
                __all_models.Reviews.title == title,
                __all_models.Reviews.id_user == user_id).first()
            if db_film:
                flash('Вы уже написали обзор на этот фильм!')
                return render_template('NewReviewForm.html')
            else:
                user = db_sess.query(__all_models.User).filter(
                    __all_models.User.id == user_id).first()

                film = __all_models.Reviews()
                film.id_user = user_id
                film.name_user = user.name
                film.title = title
                film.mark = mark
                film.genre = genre
                film.year = year
                film.review = review
                created_date = datetime.datetime.now()
                created_date = created_date.strftime("%d-%m-%Y %H:%M")
                film.date = created_date
                db_sess.add(film)

                films = db_sess.query(__all_models.Films).filter(
                    __all_models.Films.title == title).first()
                if films:
                    films.countReviews += 1
                    user.reviews_count += 1
                    films.mark = f'{films.mark}_{mark}'
                    films.average_mark = sum(
                        [int(i)
                         for i in films.mark.split('_')]) / films.countReviews
                    if genre not in films.genres.split(', '):
                        films.genres = f'{films.genres}, {genre}'
                else:
                    films = __all_models.Films()
                    films.title = title
                    films.mark = f'{mark}'
                    films.genres = f'{genre}'
                    films.year = year
                    films.countReviews = 1
                    user.reviews_count += 1
                    films.average_mark = int(films.mark) / films.countReviews
                    db_sess.add(films)
                db_sess.commit()
                return redirect('/news')