Exemplo n.º 1
0
def add_news():
    form = NewsForm()
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        news = News()
        if request.method == 'POST':
            print(request.files)
            if 'file' not in request.files:
                flash('No file part')
                return redirect(request.url)
            file = request.files['file']
            if file.filename == '':
                flash('No selected file')
                return redirect(request.url)
            if file and allowed_file(file.filename):
                filename = secure_filename(file.filename)
                file.save(os.path.join('static', 'img', filename))
                news.images = filename
        news.title = form.title.data
        news.content = form.content.data
        news.is_private = form.is_private.data
        current_user.news.append(news)
        db_sess.merge(current_user)
        db_sess.commit()
        return redirect('/')
    return render_template('add_news.html',
                           title='Добавление новости',
                           form=form)
Exemplo n.º 2
0
def add_news():
    form = NewsForm()
    if form.validate_on_submit():
        attachments = []
        f = request.files['file']
        if f:
            files = request.files.to_dict(flat=False)['file']
            for file in files:
                print(file.filename)  # Обработка приложенных файлов
                filename = secure_filename(
                    f'{str(time.time()).replace(".", "-")}-{file.filename}')
                attachments.append(filename)
                # print(filename)
                file.save('static/attachments/' + filename)
        db_sess = db_session.create_session()  # Сохранение и отправка
        news = News()
        news.title = form.title.data
        news.content = form.content.data
        news.is_private = form.is_private.data
        news.attach = '|'.join(attachments)
        current_user.news.append(news)
        db_sess.merge(current_user)
        db_sess.commit()
        return redirect('/feed')
    return render_template('news.html', title='Добавление новости', form=form)
Exemplo n.º 3
0
def add_news():
    form = NewsForm()
    if form.validate_on_submit():
        session = db_session.create_session()
        news = News()
        news.title = form.title.data
        news.content = form.content.data
        f = form.photo.data
        if f:
            filename = secure_filename(f.filename)
            f.save(os.path.join(app.static_folder, 'img', filename))
            news.photo = f.filename
        news.is_private = form.is_private.data
        lst = []
        tags = []
        for e in session.query(Category.name):
            lst.append(*e)
        for i in form.tag.data.split():
            if i not in lst:
                tag = Category(name=i)
                session.add(tag)
            tags.append(i)
        news.tag_id = ' '.join(tags)
        current_user.news.append(news)
        session.merge(current_user)
        session.commit()
        return redirect('/')
    return render_template('news.html', title='Добавление новости', form=form)
Exemplo n.º 4
0
def feed():
    session['from_page'] = f'/feed'
    form = NewsForm()  # Подключаем нужные формы
    commsform = CommsForm()
    db_sess = db_session.create_session()
    comms = db_sess.query(Comment).all()

    if current_user.is_authenticated:
        news = db_sess.query(News).filter((
            News.user == current_user) | (News.is_private != True)).order_by(
                News.created_date.desc())  # Достаём новости из БД
        if form.validate_on_submit():  # Форма добавления новости
            attachments = []
            f = request.files['file']
            if f:
                files = request.files.to_dict(flat=False)['file']
                for file in files:
                    print(file.filename)
                    filename = secure_filename(
                        f'{str(time.time()).replace(".", "-")}-{file.filename}'
                    )
                    ftype = ''  # Определяем тип файла для корректного отображения в браузере
                    if filename.endswith('png') or filename.endswith('jpg') \
                            or filename.endswith('jpeg') or filename.endswith('bmp') \
                            or filename.endswith('mp4') or filename.endswith('mov') \
                            or filename.endswith('avi') or filename.endswith('wav') \
                            or filename.endswith('mp3'):
                        ftype = 'media'
                    attachments.append(f'{ftype}{filename}')
                    # print(filename)
                    file.save('static/attachments/' + f'{ftype}{filename}')
            db_sess = db_session.create_session()
            news = News()
            news.title = form.title.data
            news.content = form.content.data
            news.is_private = form.is_private.data
            news.attach = '|'.join(attachments)
            current_user.news.append(news)
            db_sess.merge(current_user)
            db_sess.commit()
            return redirect('/feed')
        if commsform.validate_on_submit():  # Отправка комментария
            db_sess = db_session.create_session()
            comm = Comment()
            comm.to = commsform.to.data
            comm.content = commsform.content.data
            current_user.comm.append(comm)
            db_sess.merge(current_user)
            db_sess.commit()
            return redirect(f'/feed#{comm.to}')
    else:
        news = db_sess.query(News).filter(News.is_private != True).order_by(
            News.created_date.desc())
    return render_template("feed.html",
                           news=news,
                           form=form,
                           comments=comms,
                           commsform=commsform,
                           title='Новости на главной странице')
Exemplo n.º 5
0
def index(prof_id):
    session[
        'from_page'] = f'/{prof_id}'  # Объявляем переменные, подключаем базу данных, собираем данные
    form = NewsForm()
    commsform = CommsForm()
    db_sess = db_session.create_session()
    comms = db_sess.query(Comment).all()
    prof_user = db_sess.query(User).filter(
        User.id ==
        prof_id)  # Получаем ИД пользователя, в профиль которого мы зашли
    if current_user.is_authenticated:  # Если пользователь аутентифицирован
        news = db_sess.query(News).filter(News.user.has(id=prof_id)).order_by(
            News.created_date.desc())
        if form.validate_on_submit():  # Форма для создания новости
            attachments = []
            f = request.files['file']
            if f:  # Работаем с вложениями: называем каждое вложение, сохраняем в папку
                # print(request.files.to_dict(flat=False)['file'])
                files = request.files.to_dict(flat=False)['file']
                for file in files:
                    filename = secure_filename(
                        f'{str(time.time()).replace(".", "-")}.png')
                    attachments.append(filename)
                    # print(filename)
                    file.save('static/attachments/' + filename)
            db_sess = db_session.create_session()
            news = News(
            )  # Добавляем данные к экземпляру класса News данные и сохраняем
            news.title = form.title.data
            news.content = form.content.data
            news.is_private = form.is_private.data
            news.attach = '|'.join(attachments)
            current_user.news.append(news)
            db_sess.merge(current_user)
            db_sess.commit()
            return redirect(f'/{prof_id}')
        if commsform.validate_on_submit():  # Форма для комментариев
            db_sess = db_session.create_session()
            comm = Comment(
            )  # Добавляем данные к экземпляру класса Comment данные и сохраняем
            comm.to = commsform.to.data
            comm.content = commsform.content.data
            current_user.comm.append(comm)
            db_sess.merge(current_user)
            db_sess.commit()
            return redirect(f'/{prof_id}')
    else:  # Иначе отправляем все новости
        news = db_sess.query(News).filter(News.is_private != True).order_by(
            News.created_date.desc())
    return render_template("profile.html",
                           news=news,
                           form=form,
                           profile_id=prof_id,
                           profile_user=prof_user,
                           comments=comms,
                           commsform=commsform,
                           title='Профиль')
Exemplo n.º 6
0
def add_news():
    form = NewsForm()
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        news = News()
        news.musician = form.musician.data
        news.name = form.name.data
        news.is_private = form.is_private.data
        current_user.news.append(news)
        db_sess.merge(current_user)
        db_sess.commit()
        return redirect('/')
    return render_template('news.html', title='Добавление новости', form=form)
Exemplo n.º 7
0
def add_news():
    form = NewsForm()
    if form.validate_on_submit():
        session = db_session.create_session()
        news = News()
        news.title = form.title.data
        news.content = form.content.data
        news.is_private = form.is_private.data
        current_user.news.append(news)
        session.merge(current_user)
        session.commit()
        return redirect('/')
    return render_template('news.html', title='Добавление отзыва', form=form)
Exemplo n.º 8
0
def add_news():
    form = NewsForm()  # форма добавления отзыва
    if form.validate_on_submit():
        db_sess = db_session.create_session()  # сессия бд
        news = News()  # создаем новый отзыв в бд
        news.title = form.title.data  # добавляем данные в поля
        news.content = form.content.data
        news.is_private = form.is_private.data
        news.picture = form.picture.data
        current_user.news.append(news)  # добавляем отзыв у пользователя
        db_sess.merge(current_user)  # связываем отзыв с текущим пользователем
        db_sess.commit()  # сохраняем изменения
        return redirect('/reviews')  # переходим на страницу отзывов
    return render_template('news.html', title='Добавление отзыва', form=form)
Exemplo n.º 9
0
def news_add():
    form = NewsForm()
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        news = News()
        news.title = form.title.data
        news.content = form.content.data
        news.is_private = form.is_private.data
        current_user.news.append(news)
        db_sess.merge(current_user)
        db_sess.commit()
        return redirect('/news')
    return render_template('create_news.html', title='Добавление новости',
                           form=form)
Exemplo n.º 10
0
def add_news():
    form = NewsForm()
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        news = News()
        news.title = form.title.data
        news.content = form.content.data
        news.is_private = form.is_private.data
        current_user.news.append(news)
        # передаём бд данные б изменённом пользователе
        db_sess.merge(current_user)
        db_sess.commit()
        return redirect('/')
    return render_template('news.html', title='Добавление новости', form=form)
Exemplo n.º 11
0
def add_post():
    form = NewsForm()
    if form.validate_on_submit():
        session = db_session.create_session()
        news = News()
        news.title = form.title.data
        news.description = form.description.data
        news.content = form.content.data
        news.tags = form.tags.data
        news.is_private = form.is_private.data
        date = datetime.date.today()
        news.created_date = date
        current_user.news.append(news)
        session.merge(current_user)
        session.commit()
        return redirect("/")
    return render_template('adding.html', form=form)
Exemplo n.º 12
0
def add_news():
    form = NewsForm()
    if request.method == "GET":
        return render_template("add_news.html", title="Добавление новости",
                               form=form)
    elif request.method == "POST":
        session = db_session.create_session()
        news = News()
        news.title = request.form.get("title")
        news.theme = request.form.get("theme")
        news.content = request.form.get("content")
        news.user_id = current_user.id
        private = request.form.get("private")
        news.is_private = 0 if private is None else 1
        session.add(news)
        session.commit()
        return redirect("/")
Exemplo n.º 13
0
def add_news_page():
    """"Add news( available only for users)
    Create form: title, content, is_private (created date and user id automatically)
    After submit redirect to home"""

    form = NewsForm()
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        news = News()
        news.title = form.title.data
        news.content = form.content.data
        news.is_private = form.is_private.data
        current_user.news.append(news)
        db_sess.merge(current_user)
        db_sess.commit()

        return redirect('/')
    return render_template('news.html', title='Добавление новости',
                           form=form)
Exemplo n.º 14
0
 def add_news():
     form = NewsForm()
     if form.validate_on_submit():
         db_sess = db_session.create_session()
         news = News()
         news.title = form.title.data
         news.content = form.content.data
         im = request.files['file']  # upload photo
         number_of_img = randint(0, 10000000000)
         im.save(f"static/img/new_image{number_of_img}.jpg"
                 )  # save upload photo
         news.img = f"new_image{number_of_img}.jpg"
         im = None
         news.is_private = form.is_private.data
         current_user.news.append(news)
         db_sess.merge(current_user)
         db_sess.commit()
         return redirect('/')
     return render_template('news.html',
                            title='Добавление новости',
                            form=form)
Exemplo n.º 15
0
def add_news():
    form = NewsForm()
    if form.validate_on_submit:
        db_sess = db_session.create_session()
        print("ok session")
        news = News()
        news.title = form.title.data
        print("OK news")
        news.content = form.content.data
        #news.image = convert_to_binary_data(form.image.data)
        news.is_private = form.is_private.data
        news.city = form.city.data
        news.price = form.Pr.data
        news.type = form.flat.data
        news.room = form.room.data
        current_user.news.append(news)
        db_sess.merge(current_user)
        db_sess.commit()
        return redirect('/')
    return render_template('news.html',
                           title='Добавление объявления',
                           form=form)