Ejemplo n.º 1
0
def edit_news(id):
    form = NewsForm()
    if request.method == "GET":
        db_sess = db_session.create_session()
        news = db_sess.query(News).filter(News.id == id,
                                          News.user == current_user).first()
        if news:
            form.title.data = news.title
            form.content.data = news.content
            write_to_file(form.image.data, news.image)
        else:
            abort(404)
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        news = db_sess.query(News).filter(News.id == id,
                                          News.user == current_user).first()
        if news:
            news.title = form.title.data
            news.content = form.content.data
            news.image = convert_to_binary_data(form.image.data)
            db_sess.commit()
            return redirect('/')
        else:
            abort(404)
    return render_template('news.html',
                           title='Редактирование объявления',
                           form=form)
Ejemplo n.º 2
0
def edit_items(id):
    form = NewsForm()
    if request.method == "GET":
        db_sess = db_session.create_session()
        news = db_sess.query(News).filter(News.id == id,
                                          News.user == current_user
                                          ).first()
        if news:
            form.title.data = news.title
            form.content.data = news.content
            form.cost.data = news.cost
            form.contet.data = news.contet
        else:
            abort(404)
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        news = db_sess.query(News).filter(News.id == id,
                                          News.user == current_user
                                          ).first()
        if news:
            news.title = form.title.data
            news.content = form.content.data
            news.is_private = form.is_private.data
            db_sess.commit()
            return redirect('/')
        else:
            abort(404)
    return render_template('news.html',
                           title='Редактирование товара',
                           form=form
                           )
Ejemplo n.º 3
0
def edit_quest(id):
    form = NewsForm()
    if request.method == "GET":
        db_sess = db_session.create_session()
        hub_id_news = db_sess.query(News).filter_by(id=id).first().hub_id
        news = db_sess.query(News).filter(News.id == id, ).first()
        if db_sess.query(Hubs).filter_by(
                id=hub_id_news).first().admin == current_user.id:
            form.title.data = news.title
            form.content.data = news.content
            form.id_user.data = news.id_user
        else:
            abort(404)
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        hub_id_news = db_sess.query(News).filter_by(id=id).first().hub_id
        news = db_sess.query(News).filter(News.id == id, ).first()
        if db_sess.query(Hubs).filter_by(
                id=hub_id_news).first().admin == current_user.id:
            news.title = form.title.data
            news.content = form.content.data
            news.id_user = form.id_user.data
            db_sess.commit()
            return redirect(f'/hub/{hub_id_news}')
        else:
            abort(404)
    return render_template('news.html',
                           title='Редактирование задания',
                           form=form)
Ejemplo n.º 4
0
def edit_news(id):
    form = NewsForm()  # форма отзыва
    if request.method == "GET":  # метод получения данных
        db_sess = db_session.create_session()
        news = db_sess.query(News).filter(
            News.id == id, News.user ==
            current_user).first()  # берем данные нужного отзыва из бд
        if news:  # если такой отзыв есть, добавляем в поля формы данные из бд
            form.title.data = news.title
            form.content.data = news.content
            form.is_private.data = news.is_private
        else:  # если отзыва нет, вызываем ошибку 404
            abort(404)
    if form.validate_on_submit():  # если кнопка применить нажата
        db_sess = db_session.create_session()
        news = db_sess.query(News).filter(News.id == id,
                                          News.user == current_user).first()
        if news:  # обновляем бд
            news.title = form.title.data
            news.content = form.content.data
            news.is_private = form.is_private.data
            db_sess.commit()
            return redirect('/reviews')  # преходим на страницу отзывов
        else:
            abort(404)
    return render_template('news.html',
                           title='Редактирование отзыва',
                           form=form)
Ejemplo n.º 5
0
def add_news():
    # Нужно для загрузки файлов
    # Подробнее: https://flask-wtf.readthedocs.io/en/stable/form.html
    form = NewsForm(CombinedMultiDict((request.files, request.form)))
    params = {
        "title": "Добавление новости",
        "message": "",
        "form": form,
    }
    if form.validate_on_submit():
        # Базовые параметры для новости
        title = form.title.data
        content = form.content.data
        # Обработка загруженных файлов
        filenames = []
        # Абсолютный путь для загрузки, иначе при загрузке будут ошибки
        app_root = os.path.dirname(os.path.abspath(__file__))
        upload_dir = os.path.join(app_root, app.config["UPLOAD_FOLDER"])
        for file in form.files_field.data:
            # Имя файла содержит id новости, чтобы при большом количестве новостей
            # картинки с одинаковыми именами не перезаписывали друг друга
            filename = f"news_img/{file.filename}"
            # Проверка на соответствие форматам указанных в конфиге
            if filename.split(
                    '.')[-1].lower() in app.config["ALLOWED_EXTENSIONS"]:
                # Сохранение файла и добавление пути до него в список
                image_path = os.path.join(upload_dir, filename)
                file.save(image_path)
                filenames.append(filename)

        paths_to_images = ';'.join(filenames)
        # Добавление новости
        post_news(title, content, paths_to_images)
        return redirect('/admin')
    return render_template('news_form.html', **params)
Ejemplo n.º 6
0
def edit_news(id_):
    form = NewsForm()
    db_sess = db_session.create_session()
    categories = db_sess.query(Category).all()
    form.category.choices = [(i.id, i.name)
                             for i in db_sess.query(Category).all()]
    if request.method == "GET":

        news = db_sess.query(News).filter(News.id == id_,
                                          News.user == current_user).first()
        if news:
            form.title.data = news.title
            form.content.data = news.content
            form.is_published.data = news.is_published
            form.category.data = news.category_id
        else:
            abort(404)
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        news = db_sess.query(News).filter(News.id == id_).first()
        if news and current_user.user_type_id == 1:
            news.title = form.title.data
            news.content = form.content.data
            news.is_published = form.is_published.data
            news.category_id = form.category.data
            db_sess.commit()
            return redirect('/')
        else:
            abort(404)
    return render_template('news.html',
                           title='Редактирование новости',
                           category=categories,
                           form=form)
Ejemplo n.º 7
0
def edit_news(edit_id):
    if current_user.id in ADMINS:  # проверка, является ли пользователь администратором
        form = NewsForm()
        if request.method == "GET":
            db_sess = db_session.create_session()
            news_edit = db_sess.query(News).filter(
                News.id == edit_id, News.user == current_user).first()
            if news_edit:  # если новость существует, отображаем ее данные в форме
                form.title.data = news_edit.title
                form.content.data = news_edit.content
            else:
                abort(
                    404)  # если новости не существует, выбрасываем ошибку 404
        if form.validate_on_submit():
            db_sess = db_session.create_session()
            news_edit = db_sess.query(News).filter(
                News.id == edit_id, News.user == current_user).first()
            if news_edit:  # если новость существует, редактируем её
                news_edit.title = form.title.data
                news_edit.content = form.content.data
                news_edit.created_date = datetime.datetime.now()
                db_sess.commit()
                return redirect('/news')
            else:  # если новости не существует, выбрасываем ошибку 404
                abort(404)
        return render_template('add_news.html',
                               title='Редактирование новости',
                               form=form,
                               photo=current_user.photo,
                               edit=True)
    return render_template('no_perm.html',
                           title='Ошибка',
                           is_photo=current_user.is_photo,
                           photo='/'.join(current_user.photo.split('/')[1:]))
Ejemplo n.º 8
0
def edit_news(id):
    form = NewsForm()
    if request.method == "GET":
        db_sess = db_session.create_session()
        news = db_sess.query(News).filter(News.id == id,
                                          News.user == current_user).first()
        if news:
            form.musician.data = news.musician
            form.name.data = news.name
            form.is_private.data = news.is_private
        else:
            abort(404)
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        news = db_sess.query(News).filter(News.id == id,
                                          News.user == current_user).first()
        if news:
            news.musician = form.musician.data
            news.name = form.name.data
            news.is_private = form.is_private.data
            db_sess.commit()
            return redirect('/')
        else:
            abort(404)
    return render_template('news.html',
                           title='Редактирование новости',
                           form=form)
Ejemplo n.º 9
0
def new_news_item():
    form = NewsForm()
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        filename = secure_filename(form.image.data.filename)
        form.image.data.save('uploads/'+filename)
        news = News(form.title.data, form.content.data, '/img/'+filename, 1)
        db_sess.add(news)
        db_sess.commit()
        return redirect(f"/admin/news")
    return render_template('admin/news_item.html', title='Новая Новость', form=form)
Ejemplo 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
        current_user.news.append(news)
        db_sess.merge(current_user)
        db_sess.commit()
        return redirect('/blogs')
    return render_template('news.html', title='Добавление новости', form=form)
Ejemplo n.º 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
        db_sess.add(news)
        db_sess.commit()

        return redirect('/home')
    return render_template('news.html', title='Создание новости', form=form)
Ejemplo n.º 12
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)
Ejemplo n.º 13
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)
Ejemplo 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
        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)
Ejemplo n.º 15
0
def add_news():
    form = NewsForm()
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        news = Forms()
        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(url_for('apply', n=news.content, title=news.title))
    return render_template('news.html', title='Добавление формы', form=form)
Ejemplo n.º 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
        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)
Ejemplo n.º 17
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)
Ejemplo n.º 18
0
def edit_news_item(id):
    form = NewsForm()
    db_sess = db_session.create_session()
    news = db_sess.query(News).get(id)

    if form.validate_on_submit():
        filename = secure_filename(form.image.data.filename)
        if filename != '' and news.image != '/img/'+filename:
            form.image.data.save('uploads/'+filename)
            news.image = '/img/' + filename
        news.title = form.title.data
        news.content = form.content.data
        db_sess.commit()
        return redirect('/admin/news')
    else:
        form.title.data = news.title
        form.content.data = news.content
        form.image.filename = news.image
    return render_template('admin/news_item.html', title='Редактировать Новость', form=form)
Ejemplo n.º 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)
Ejemplo n.º 20
0
def edit_news(news_id):
    # Нужно для загрузки файлов
    # Подробнее: https://flask-wtf.readthedocs.io/en/stable/form.html
    form = NewsForm(CombinedMultiDict((request.files, request.form)))
    news = get_news(news_id)["news"]
    params = {
        "title": "Редактирование новости",
        "message": "",
        "form": form,
    }
    # Установка текущих данных новости (кроме картинок, это не нужно, они
    # выбираются заново), только при GET запросе, чтобы не переопределить новые
    # данные при POST запросе
    if request.method == "GET":
        form.title.data = news["title"]
        form.content.data = news["content"]

    if form.validate_on_submit():
        new_title = form.title.data
        new_content = form.content.data
        # Обработка загруженных файлов
        new_filenames = []
        # Абсолютный путь для загрузки, иначе при загрузке будут ошибки
        app_root = os.path.dirname(os.path.abspath(__file__))
        upload_dir = os.path.join(app_root, app.config["UPLOAD_FOLDER"])
        for file in form.files_field.data:
            filename = f"news_img/{file.filename}"
            # Проверка на соответствие форматам указанных в конфиге
            # Проверка на соответствие форматам указанных в конфиге
            if filename.split(
                    '.')[-1].lower() in app.config["ALLOWED_EXTENSIONS"]:
                # Сохранение файла и добавление пути до него в список
                image_path = os.path.join(upload_dir, filename)
                file.save(image_path)
                new_filenames.append(filename)

        new_paths_to_images = ';'.join(new_filenames)
        # Изменение параметров у новости
        put_news(news_id, new_title, new_content, new_paths_to_images)
        return redirect('/admin')

    return render_template('news_form.html', **params)
Ejemplo n.º 21
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:]))
Ejemplo n.º 22
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)
Ejemplo n.º 23
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
        print("ok ")
        current_user.news.append(news)
        db_sess.merge(current_user)
        db_sess.commit()
        print("Ok2")
        return redirect('/')
    return render_template('news.html',
                           title='Добавление объявления',
                           form=form)