Beispiel #1
0
def add_news():
    if 'username' not in session:
        return redirect('/login')
    form = AddNewsForm()
    if form.back.data:
        return redirect('/index')
    elif form.validate_on_submit():
        title = form.title.data
        content = form.content.data
        nm = NewsModel(db.get_connection())
        nm.insert(title, content, session['user_id'], data_return())
        return redirect("/index")
    user = UsersModel(db.get_connection())
    position = user.return_position(session['user_id'])
    # Если пользователь случайно вбил, проверяется, имеет ли он права
    if not position:
        return render_template('indifferent/not_for_admin.html',
                               title='У вас недостаточно прав!')
    else:
        return render_template('add_news.html',
                               title='Добавление новости',
                               form=form,
                               username=session['username'],
                               about_page='',
                               session=session)
Beispiel #2
0
def add_topic():
    if 'username' not in session:
        return redirect('/login')
    form = AddTopicForm()
    if form.back.data:
        return redirect('/topics')
    elif form.validate_on_submit():
        title = form.title.data
        content = form.content.data
        nm = TopicModel(db.get_connection())
        nm.insert(title, content, session['user_id'], data_return())
        return redirect("/topics")
    user = UsersModel(db.get_connection())
    position = user.return_position(session['user_id'])
    # Проверка, имеет ли пользователь права
    if not position:
        return render_template('indifferent/not_for_admin.html',
                               title='У вас недостаточно прав!',
                               session=session)
    else:
        return render_template('add_topic.html',
                               title='Добавление темы',
                               form=form,
                               username=session['username'],
                               about_page='',
                               session=session)
Beispiel #3
0
def login():
    global recent
    recent = '/login'
    form = LoginForm()
    # Переход к регистрации
    if form.reg.data:
        return redirect("/registration")
    elif form.validate_on_submit():
        user_name = form.username.data
        password = form.password.data
        user_model = UsersModel(db.get_connection())
        # Проверка, существует ли аккаунт
        exists = user_model.exists(user_name, password)
        if exists[0]:
            session['username'] = exists[2]
            session['user_id'] = exists[1]
        else:
            return render_template(
                'login.html',
                title='Авторизация',
                form=form,
                err='Проверьте правильность введенных данных',
                session=session)
        # Переход к новостям
        return redirect("/index")
    return render_template('login.html',
                           title='Авторизация',
                           form=form,
                           about_page='',
                           session=session)
Beispiel #4
0
def popular(period):
    global recent
    recent = '/popular/' + period
    news = NewsModel(db.get_connection())
    # + сортировка по дате. За последнюю неделю, месяц, все время
    if period == 'week':
        if 'username' not in session:
            return redirect('/login')
        news = news.get_popular_week(session['user_id'])
        return render_template('all_news.html',
                               title='Популярное',
                               news=news,
                               session=session)
        return 'week'
    elif period == 'month':
        if 'username' not in session:
            return redirect('/login')
        news = news.get_popular_month(session['user_id'])
        return render_template('all_news.html',
                               title='Популярное',
                               news=news,
                               session=session)
    elif period == 'all_time':
        if 'username' not in session:
            return redirect('/login')
        news = news.get_popular_alltime(session['user_id'])
        return render_template('all_news.html',
                               title='Популярное',
                               news=news,
                               session=session)
Beispiel #5
0
def registration():
    global recent
    recent = 'registration'
    form = RegistrationForm()
    user_model = UsersModel(db.get_connection())
    if form.back.data:
        return redirect('/login')
    elif form.validate_on_submit():
        user_name = form.username.data
        password = form.password.data
        email = form.email.data
        about = form.about.data
        user_model.insert(user_name, password, email, about)
        # Проверка, точно ли все в базе
        exists = user_model.exists(user_name, password)
        if exists[0]:
            session['username'] = user_name
            session['user_id'] = exists[1]
        # Переход к новостям
        return redirect('/index')
    return render_template('registration.html',
                           title='Регистрация',
                           form=form,
                           err='',
                           about_page='Расскажите нам немного о себе!',
                           session=session)
Beispiel #6
0
def topics():
    global recent
    recent = '/topics'
    if 'username' not in session:
        return redirect('/login')
    if request.method == 'POST':
        if 'perenap' in request.form:
            return redirect('/add_topic')
    user = UsersModel(db.get_connection())
    position = user.return_position(session['user_id'])
    topics = TopicModel(db.get_connection())
    topics = topics.get_all()
    return render_template('topics.html',
                           title='Наиболее актуальные и волнующие темы',
                           topics=topics,
                           position=position,
                           session=session)
Beispiel #7
0
def for_adm():
    if 'username' not in session:
        return redirect('/login')
    um = UsersModel(db.get_connection())
    user = um.return_position(session['user_id'])
    # Проверка, есть ли права
    if user:
        nm = NewsModel(db.get_connection())
        news = nm.get_all_likes()
        print(news)
        return render_template('for_admin.html',
                               mas=news,
                               title='Информация о лайках',
                               session=session)
    else:
        return render_template('indifferent/not_for_admin.html',
                               title='У вас недостаточно прав!',
                               session=session)
Beispiel #8
0
def index():
    global recent
    recent = '/index'
    if 'username' not in session:
        return redirect('/login')
    if request.method == 'POST':
        # Добавление новости. Только для админа
        if 'perenap' in request.form:
            return redirect('/add_news')
    user = UsersModel(db.get_connection())
    # Проверка. User или adm (пользователь или админ)
    position = user.return_position(session['user_id'])
    news = NewsModel(db.get_connection())
    news = news.get_all(session['user_id'])
    return render_template('all_news.html',
                           title='Новости',
                           news=news,
                           position=position,
                           session=session)
Beispiel #9
0
def lk():
    global recent
    recent = '/lk'
    if 'username' not in session:
        return redirect('/login')
    news = NewsModel(db.get_connection())
    news = news.get_my(session['user_id'])
    return render_template('all_news.html',
                           title='Сохраненные новости',
                           news=news,
                           session=session)
Beispiel #10
0
def validate_user_email(form, field):
    if len(field.data) == 0:
        raise ValidationError('Поле не заполнено')
    user_model = UsersModel(db.get_connection())
    if user_model.user_email_exists(field.data):
        raise ValidationError("Email уже занят")
Beispiel #11
0
def validate_user_name(form, field):
    if len(field.data) == 0:
        raise ValidationError('Поле не заполнено')
    user_model = UsersModel(db.get_connection())
    if user_model.user_name_exists(field.data):
        raise ValidationError("Пользователь существует")
Beispiel #12
0
def delete_topic(topic_id):
    if 'username' not in session:
        return redirect('/login')
    nm = TopicModel(db.get_connection())
    nm.delete(topic_id)
    return redirect("/topics")
Beispiel #13
0
def delete_news(news_id):
    if 'username' not in session:
        return redirect('/login')
    nm = NewsModel(db.get_connection())
    nm.delete(news_id)
    return redirect("/index")
Beispiel #14
0
def delete_like(id):
    if 'username' not in session:
        return 'not ok'
    nm = NewsModel(db.get_connection())
    nm.delete_like(session['user_id'], id)
    return 'ok'
Beispiel #15
0
def add_like(id):
    if 'username' not in session:
        return 'not ok'
    nm = NewsModel(db.get_connection())
    nm.add_like(session['user_id'], id, data_return())
    return 'ok'