Exemple #1
0
def create_category():
    data = request.get_json() or {}

    if 'category' not in data or 'department_id' not in data:
        return bad_request('Must include category name and department_id')

    if not isinstance(data['department_id'], int):
        return bad_request('department_id must be an integer.')

    if FlicketCategory.query. \
            filter_by(category=data['category']). \
            filter_by(department_id=data['department_id']).first():
        return bad_request('Category within department already exists.')

    department = FlicketDepartment.query.filter_by(
        id=data['department_id']).first()
    category = FlicketCategory(data['category'], department)
    db.session.add(category)
    db.session.commit()

    response = jsonify(category.to_dict())
    response.status_code = 201
    response.headers['Location'] = url_for('bp_api.get_category',
                                           id=category.id)
    return response
Exemple #2
0
    def create_default_depts(silent=False):
        """ creates default departments and categories. """

        for d in depart_categories:

            department = d['department']
            categories = d['category']

            query = FlicketDepartment.query.filter_by(department=department).first()
            if not query:
                add_department = FlicketDepartment(
                    department=department
                )
                db.session.add(add_department)

                if not silent:
                    print("department {} added.".format(department))

                for c in categories:
                    query = FlicketCategory.query.filter_by(category=c).first()
                    if not query:
                        add_category = FlicketCategory(
                            category=c,
                            department=add_department
                        )
                        db.session.add(add_category)

                        if silent is False:
                            print("category {} added.".format(c))
Exemple #3
0
def categories(department_id=False):
    form = CategoryForm()
    categories = FlicketCategory.query.order_by(
        FlicketCategory.category.asc()).filter_by(department_id=department_id)
    department = FlicketDepartment.query.filter_by(id=department_id).first()

    form.department_id.data = department_id

    if form.validate_on_submit():
        add_category = FlicketCategory(category=form.category.data,
                                       department=department)
        db.session.add(add_category)
        db.session.commit()
        flash(gettext('New category {} added.'.format(form.category.data)),
              category="success")
        return redirect(
            url_for('flicket_bp.categories', department_id=department_id))

    title = gettext('Categories')

    return render_template('flicket_categories.html',
                           title=title,
                           form=form,
                           categories=categories,
                           department=department)
Exemple #4
0
def get_categories():
    department_id = request.args.get('department_id')
    department = request.args.get('department')
    categories = FlicketCategory.query.order_by(FlicketCategory.category.asc())
    if department_id:
        categories = categories.filter_by(department_id=department_id)
    if department:
        categories = categories.filter(FlicketCategory.department.has(FlicketDepartment.department == department))
    page = request.args.get('page', 1, type=int)
    per_page = min(request.args.get('per_page', app.config['posts_per_page'], type=int), 100)
    data = FlicketCategory.to_collection_dict(categories, page, per_page, 'bp_api.get_categories')
    return jsonify(data)