def parse_request(request):
    order_list, filters_dict = [], []
    if "search" in request.form:
        form = SearchForm(request.form)
        if form.validate_on_submit():
            query = form.search.data
            order_list = helpers.search_results(query)
            page_title = "Search Results"
            if not [order.order_id for order in order_list]:
                order_list, filters_dict = helpers.get_orderlist(session["id"])
                error = "Not Found"

    else:
        print request
        order_list, filters_dict = helpers.get_orderlist(session["id"])
        postvars = variabledecode.variable_decode(request.form, dict_char="__")
        helpers.update_order(postvars)
        flash("Successfully Updated!")
    return order_list, filters_dict
def returns(page, brand_name=None, stock=None):
    order_list, filters_dict = helpers.get_orderlist(session["id"], **{"page": "Return"})
    return render_template(
        "editable-table.html",
        name="Orders to be Returned",
        order_list=order_list.paginate(page, POST_PER_PAGE, False),
        filters_dict=filters_dict,
        pagination=Pagination(page=page, per_page=POST_PER_PAGE, total=len(list(order_list))),
        username=session["name"],
        error=error,
        search_form=SearchForm(request.form),
    )
def cancelled_orders(page, brand_name=None, stock=None):
    order_list, filters_dict = helpers.get_orderlist(session["id"], **{"page": "Cancelled"})
    return render_template(
        "dashboard.html",
        name="Cancelled Orders",
        order_list=order_list.paginate(page, POST_PER_PAGE, False),
        filters_dict=filters_dict,
        pagination=Pagination(page=page, per_page=POST_PER_PAGE, total=len(list(order_list))),
        username=session["name"],
        error=error,
        search_form=SearchForm(request.form),
    )
def get_ajax():
    if request.form:
        # Code for handling CRUD goes here
        print request.form
        print "Yes"

    order_list, filters_dict = helpers.get_orderlist(session["id"], **{"page": "Shipments"})
    ajax_response = {}
    ajax_response["data"], ajax_response["options"], ajax_response["files"] = [], [], []

    for index, order in enumerate(order_list):
        dict = order.__dict__
        del (dict["_sa_instance_state"])
        dict["DT_RowId"] = "row_%s" % (index)
        ajax_response["data"].append(dict)

    return jsonify(ajax_response)
def main(page, order_list=None, filters_dict=None):
    error = None
    page_title = "Active Orders"
    if request.method == "POST":
        order_list, filters_dict = parse_request(request)
    else:
        order_list, filters_dict = helpers.get_orderlist(session["id"])

    return render_template(
        "datatable.html",
        name=page_title,
        order_list=order_list.paginate(page, POST_PER_PAGE, False),
        filters_dict=filters_dict,
        pagination=Pagination(page=page, per_page=POST_PER_PAGE, total=len(list(order_list))),
        username=session["name"],
        error=error,
        search_form=SearchForm(request.form),
    )
def edit_order(order_id):
    error = None
    order_details, filters_dict = helpers.get_orderlist(session, **{"order_id": order_id})

    if request.method == "POST":
        form = CreateOrder_Form(request.form)
        error = helpers.add_order(form, session["name"], "Edit")
        flash("Order Successfully Edited.")
        return redirect(url_for("dashboard.main"))

    return render_template(
        "edit_order.html",
        order_list=order_details,
        CreateOrder_Form=CreateOrder_Form(request.form),
        username=session["name"],
        error=error,
        search_form=SearchForm(request.form),
    )
def shipments_sheet(page, brand_name=None, stock=None):
    if request.method == "POST":
        print "Shipments Sheet Updated"
        order_list, filters_dict = parse_request(request)
        # if request.args:
        # dict = {}
        # dict['filters'] = request.args
        # order_list, filters_dict = helpers.get_orderlist(session['id'], **dict)
    else:
        order_list, filters_dict = helpers.get_orderlist(session["id"], **{"page": "Shipments"})

    return render_template(
        "editor.html",
        name="Shipments Sheet",
        order_list=order_list.paginate(page, POST_PER_PAGE, False),
        filters_dict=filters_dict,
        pagination=Pagination(page=page, per_page=POST_PER_PAGE, total=len(list(order_list))),
        username=session["name"],
        error=error,
        search_form=SearchForm(request.form),
    )