from flask_login import login_required
from flask import render_template, request

from . import bp
from ..models import ConfigChangeLog, Device, User


@bp.route("/")
@login_required
def list_log():
    query = ConfigChangeLog.query

    device_id = request.args.get("device_id", type=int)
    user_id = request.args.get("user_id", type=int)
    if device_id:
        query = query.filter_by(device_id=device_id)
    if user_id:
        query = query.filter_by(user_id=user_id)

    entries = query.order_by(ConfigChangeLog.timestamp.desc()).limit(200).all()
    devices = Device.query.order_by(Device.name).all()
    users = User.query.order_by(User.username).all()

    return render_template(
        "audit/list.html",
        entries=entries,
        devices=devices,
        users=users,
        selected_device_id=device_id,
        selected_user_id=user_id,
    )
