Add audit button to inventory list view
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import boto3
|
||||
import pymongo
|
||||
from datetime import datetime
|
||||
from datetime import datetime, date, timedelta
|
||||
from botocore.exceptions import ClientError
|
||||
from bson.objectid import ObjectId
|
||||
from flask import Blueprint, abort, g, make_response, redirect, render_template, request
|
||||
@@ -393,13 +393,15 @@ def view_inventory(slug=None):
|
||||
q = {"type": {"$ne": "token"}}
|
||||
template = "inventory.html"
|
||||
public_view = False
|
||||
if not read_user():
|
||||
login_user = read_user()
|
||||
if not login_user:
|
||||
q.update({"inventory.public": True})
|
||||
template = "inventory_public.html"
|
||||
public_view = True
|
||||
else:
|
||||
fields.append(("inventory.owner.username", "Owner", str))
|
||||
fields.append(("inventory.user.username", "User", str))
|
||||
can_audit = "k-space:janitors" in login_user["groups"]
|
||||
if slug and not public_view:
|
||||
template = "inventory_pick.html"
|
||||
if request.path.startswith("/m/inventory/clone-with-slug"):
|
||||
@@ -446,7 +448,29 @@ def view_inventory_audit(item_id):
|
||||
"inventory.audit.timestamp": datetime.utcnow(),
|
||||
},
|
||||
})
|
||||
return redirect("/m/inventory/%s/view" % item_id)
|
||||
if request.form and request.form.get("noRedirect", False):
|
||||
return {}
|
||||
else:
|
||||
return redirect("/m/inventory/%s/view" % item_id)
|
||||
|
||||
@page_inventory.app_template_filter('audit_text')
|
||||
def render_audit_text(item):
|
||||
timestamp = item.get('audit', {}).get('timestamp', False)
|
||||
if timestamp:
|
||||
return timestamp.date()
|
||||
else:
|
||||
return 'Never'
|
||||
|
||||
@page_inventory.app_template_filter('audit_color')
|
||||
def render_audit_color(item):
|
||||
timestamp = item.get('audit', {}).get('timestamp', False)
|
||||
today = date.today()
|
||||
if not timestamp or timestamp.date() < today - timedelta(days=365):
|
||||
return "red"
|
||||
elif timestamp.date() < today - timedelta(days=7):
|
||||
return "orange"
|
||||
else:
|
||||
return "green unclickable"
|
||||
|
||||
@page_inventory.route("/m/inventory/<item_id>/claim", methods=["POST"])
|
||||
@login_required
|
||||
|
Reference in New Issue
Block a user