
@admin.route('/maintenance_print', methods=["GET", "POST"])
@login_required
def maintenance_print():

    action = request.form.get("action")
    start_date, end_date = get_date_range(request)

    if request.method != "POST":

    #     records = db.session.query(MaintenanceRequest).all()
    #     return render_template('maintenance_select.html', records=records)
    # 
    # rec_id = request.form.get("rec_id")

    # -----------------------------
    # Use services.py get_date_range and set_date.html include
    # to set a custom date range else default to 30 days.
    # -----------------------------

    # BEGIN

        records = (
            db.session.query(MaintenanceRequest)
            .filter(
                MaintenanceRequest.request_date.between(
                    start_date,
                    end_date
                )
            )
            .all()
        )

        return render_template(
            "maintenance_select.html",
            records=records,
            start_date=start_date,
            end_date=end_date
        )

    if action == "set_date":

        records = (
            db.session.query(MaintenanceRequest)
            .filter(
                MaintenanceRequest.request_date.between(
                    start_date,
                    end_date
                )
            )
            .all()
        )

        return render_template(
            "maintenance_select.html",
            records=records,
            start_date=start_date,
            end_date=end_date
        )

    # END

    rec_id = request.form.get("rec_id")

    if action == "select":

        record = (
            db.session.query(MaintenanceRequest)
            .filter(MaintenanceRequest.rec_id == rec_id)
            .first()
        )

        return render_template(
            "maintenance_print.html",
            rec_id=rec_id,
            record=record,
            units=Unit.query.all()
        )

    return redirect(url_for("admin.maintenance_view"))

