예제 #1
0
def categories():
    id = request.values.get('id', default=0, type=int)
    id_user = current_user.get_id()
    category = session.query(Category).filter(
        Category.id == id and Category.id_user == id_user).one_or_none()

    if not category:
        category = Category()
    elif request.args.get('action', default='', type=str) == 'delete':
        session.delete(category)
        session.commit()
        flash(
            f"Category was deleted (id='{category.id}', name='{category.name}')"
        )
        return redirect(url_for('categories'))

    form = CategoryForm(obj=category)
    categories = session.query(Category).filter(
        Category.id_user == id_user).order_by('id').all()
    tree = Tree(categories)
    form.parent_id.choices = tree.return_choises()

    if form.validate_on_submit():
        if form.parent_id.data == "0":
            form.parent_id.data = None
        category.add_form_data(form)
        session.add(category)
        session.commit()
        if id:
            flash(
                f"Category was updated (id='{category.id}', name='{category.name}')"
            )
        else:
            flash(
                f"Category was created (id='{category.id}', name='{category.name}')"
            )
        return redirect(url_for('categories'))

    to_form = {
        "title": "Categories",
        "id": id,
        "form": form,
        "categories": categories,
    }
    return render_template("categories.html", **to_form)
def category_details(request, idk=None):
    if idk:
        category = get_object_or_404(Category, pk=idk)
        category_form = CategoryForm(request.POST or None,
                                     request.FILES or None,
                                     instance=category)
    else:
        category = Category()
        category_form = CategoryForm()
    if request.POST:
        category_form = CategoryForm(instance=category,
                                     data=request.POST,
                                     files=request.FILES)
        if category_form.is_valid():
            category_form.save()
            return redirect('category_list')

    return render(request, 'category/category_details.html',
                  {'category_form': category_form})
예제 #3
0
def create_category():
    if 'id' in session:

        name = request.form["name"]

        img = request.files["image"]
        file_name = save_category_pic(img)

        new_category = Category(name=name, prof_img=file_name)
        try:
            db.session.add(new_category)
            db.session.commit()

            return redirect(url_for('Admin.show_category'))
        except Exception as e:
            print(e)
            db.session.rollback()

            flash("Category Not Created!!, Please try again", "warning")
            return redirect(url_for('Admin.show_category'))
    flash("You are not authorised", "danger")
    return redirect(url_for('Admin.log_in'))