def customer(id): customer = Customer.query.get(id) if request.method == 'DELETE': db.session.delete(customer) db.session.commit() return redirect(url_for('customers')) else: form = CustomerForm(request.form) if form.validate(): form.populate_obj(customer) db.session.add(customer) db.session.commit() return redirect(url_for('customers')) else: return render_template('edit_customer.html', form=form, customer=customer)
def customers(): if request.method == 'POST': form = CustomerForm(request.form) customer = Customer() if form.validate(): form.populate_obj(customer) db.session.add(customer) db.session.commit() return redirect(url_for('customers')) else: return render_template('new_customer.html', form=form) else: page = int(request.args.get('page', 1)) page_size = int(request.args.get('page_size', 10)) filter = request.args.get('filter', None) order_by = request.args.get('order_by', None) order = request.args.get('order', None) order = order if order in ['ASC', 'DESC'] else 'ASC' q = Customer.query if filter: q = q.filter(getattr(Customer, 'name').like('%{}%'.format(filter))) count = q.count() if order_by: q = q.order_by('{} {}'.format(order_by, order)) q = q.offset((page - 1) * page_size) customers = q.limit(page_size) total_pages = (count // page_size) + (0 if (count % page_size) == 0 else 1) return render_template('customers.html', customers=customers, page=page, page_size=page_size, count=count, total_pages=total_pages)