예제 #1
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)
예제 #2
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)
예제 #3
0
def add_news():
    form = ContentForm()
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        all_news = db_sess.query(News).all()
        le = len(all_news)
        news_item = News()
        news_item.title = form.title.data
        news_item.content = form.content.data
        news_item.created_date = datetime.now().date()
        news_item.picture = ''
        current_user.news.append(news_item)

        img = Image.open(form.picture.data)
        img.save(f'static/img/news/back_news_item{le}.jpg')
        news_item.picture = f'back_news_item{le}.jpg'

        db_sess.merge(current_user)
        db_sess.commit()
        db_sess.close()

        return redirect('/')
    return render_template('content.html',
                           title='Новая новость  - Sputnik',
                           form=form)
예제 #4
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)
예제 #5
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='Новости на главной странице')
예제 #6
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='Профиль')
예제 #7
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
        current_user.news.append(news)
        db_sess.merge(current_user)
        db_sess.commit()
        return redirect('/blogs')
    return render_template('news.html', title='Добавление новости', form=form)
예제 #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
        db_sess.add(news)
        db_sess.commit()

        return redirect('/home')
    return render_template('news.html', title='Создание новости', form=form)
예제 #9
0
파일: Main.py 프로젝트: ZertisRF/SiteMoscow
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)
예제 #10
0
def add_news():
    form = AddNewsForm()
    if form.validate_on_submit():
        news_ = News()
        news_.user_id = form.user.data
        news_.title = "Title"
        news_.content = form.content.data
        session = db_session.create_session()
        session.add(news_)
        session.commit()
        flask.session["last_news"] = news_.content
        return redirect("/news")
    return render_template('addnews.html', form=form)
예제 #11
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)
예제 #12
0
def article():
    db_sess = db_session.create_session()
    news1 = db_sess.query(News)
    form = NewsForm()
    if form.validate_on_submit():
        news2 = News()
        news2.title = form.title.data
        news2.description = form.content.data
        news2.href = form.href.data
        current_user.news.append(news2)
        db_sess.merge(current_user)
        db_sess.commit()
        return redirect('/news')
    return render_template("article.html", form=form, news=news1)
예제 #13
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)
예제 #14
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("/")
예제 #15
0
파일: main.py 프로젝트: MadPuffer/infi
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)
예제 #16
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']
        number_of_img = randint(0, 10000000000)
        im.save(f"static/img/new_image{number_of_img}.jpg")
        news.img = f"new_image{number_of_img}.jpg"
        im = None
        current_user.news.append(news)
        db_sess.merge(current_user)
        db_sess.commit()
        return redirect('/')
    return render_template('news.html', title='Создание объявления', form=form)
예제 #17
0
def add_news():
    """
    Обработка добавления новости
    :return: шаблон для добавления
    """
    form = AddNewsForm()
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        news = News()
        news.user_id = current_user.id
        news.title = form.news_name.data
        news.content = form.news_content.data
        db_sess.add(news)
        db_sess.commit()
        return redirect('/office')
    return render_template("add_news.html",
                           form=form,
                           title='Добавить новость')
예제 #18
0
def index():
    global visits_count
    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.count = form.count.data
        file = request.files['file']
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            file.save(
                os.path.join(app.config['UPLOAD_FOLDER'],
                             str(session.query(News)[-1].id + 1)) +
                filename[-4:])
            news.filename = '/static/img/' + str(
                session.query(News)[-1].id + 1) + str(filename[-4:])
        current_user.news.append(news)
        session.merge(current_user)
        session.commit()
        return redirect('/')
    session = db_session.create_session()
    news = session.query(News)[::-1]
    visits_count = int(request.cookies.get("index", 0))
    if visits_count:
        res = make_response(
            render_template('index.html',
                            news=news,
                            title='Маринчка',
                            form=form))
        res.set_cookie("index",
                       str(visits_count + 1),
                       max_age=60 * 60 * 24 * 365 * 2)
    else:
        res = make_response(
            render_template('about_us.html',
                            news=news,
                            title='Маринчка',
                            form=form))
        res.set_cookie("index",
                       str(visits_count + 1),
                       max_age=60 * 60 * 24 * 365 * 2)
    return res
예제 #19
0
def add_quest(id):
    form = NewsForm()
    db_sess = db_session.create_session()
    if db_sess.query(Hubs).filter_by(id=id).first().admin == current_user.id:
        if form.validate_on_submit():
            news = News()
            news.title = form.title.data
            news.content = form.content.data
            news.hub_id = id
            news.id_user = form.id_user.data
            current_user.news.append(news)
            db_sess.merge(current_user)
            db_sess.commit()
            return redirect(f'/hub/{id}')
        return render_template('news.html',
                               title='Добавление новости',
                               form=form)
    else:
        abort(404)
예제 #20
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)
예제 #21
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)
예제 #22
0
def add_news():
    if current_user.id in ADMINS:
        form = NewsForm()
        if form.validate_on_submit():
            db_sess = db_session.create_session()
            new_news = News()  # создание новости
            new_news.title = form.title.data
            new_news.content = form.content.data
            new_news.created_date = datetime.datetime.now()
            current_user.news.append(new_news)
            db_sess.merge(current_user)
            db_sess.commit()
            return redirect('/news')
        return render_template('add_news.html',
                               title='Добавление новости',
                               form=form,
                               photo='/'.join(
                                   current_user.photo.split('/')[1:]),
                               is_photo=current_user.is_photo)
    return render_template('no_perm.html',
                           title='Ошибка',
                           is_photo=current_user.is_photo,
                           photo='/'.join(current_user.photo.split('/')[1:]))
예제 #23
0
def add_news():
    form = NewsForm()
    db_sess = db_session.create_session()
    categories = db_sess.query(Category).all()
    category = [(i.id, i.name) for i in db_sess.query(Category).all()]
    form.category.choices = category
    if form.validate_on_submit():
        news = News()
        news.title = form.title.data
        # news.content = form.content.data
        logging.warning(form)
        # news.content = form.content.data
        news.content = request.form.get('content')
        news.is_published = form.is_published.data
        news.category_id = form.category.data
        current_user.news.append(news)
        # мы изменили текущего пользователя с помощью метода merge
        db_sess.merge(current_user)
        db_sess.commit()
        return redirect('/')
    return render_template('news.html',
                           title='Добавление новости',
                           form=form,
                           category=categories)