52 lines
1.2 KiB
Python
52 lines
1.2 KiB
Python
from flask import Flask, Blueprint, flash, request, redirect, url_for, current_app, render_template, jsonify
|
|
from files.auth import admin_required
|
|
from files.models import Category, db
|
|
|
|
bp = Blueprint('categories', __name__, url_prefix='/categories')
|
|
|
|
|
|
@bp.route('/')
|
|
def index():
|
|
categories = Category.query.all()
|
|
return render_template('categories/index.html', categories=categories)
|
|
|
|
|
|
@bp.route('/create', methods=['GET', 'POST'])
|
|
@admin_required
|
|
def create():
|
|
if request.method == 'POST':
|
|
name = request.form['name']
|
|
error = None
|
|
|
|
if not name:
|
|
error = "Name is required"
|
|
|
|
if error is not None:
|
|
flash(error)
|
|
else:
|
|
c = Category(name)
|
|
db.session.add(c)
|
|
db.session.commit()
|
|
return redirect(url_for('categories.index'))
|
|
|
|
return render_template('categories/create.html')
|
|
|
|
|
|
@bp.route('<int:id>')
|
|
def view(id):
|
|
category = Category.query.get(id)
|
|
files = category.files
|
|
return render_template('categories/view.html', category=category, files=files)
|
|
|
|
|
|
@bp.route('/<int:id>/update')
|
|
@admin_required
|
|
def update():
|
|
pass
|
|
|
|
|
|
@bp.route('/<int:id>/delete')
|
|
@admin_required
|
|
def delete():
|
|
pass
|