diff --git a/app/main/views.py b/app/main/views.py index 5faf01d950627bacdc9f73cbbfb89c5910323b95..e0b06e99ae40ef81716d1be6c02acd8a202f0072 100644 --- a/app/main/views.py +++ b/app/main/views.py @@ -9,10 +9,10 @@ This module implements the main blueprint. :license: BSD 2-Clause, see LICENSE for more details. """ -from flask import (Blueprint, render_template, jsonify) +from flask import Blueprint, render_template, jsonify from flask_login import login_required from ..extensions import db -from ..models import Action, Vendor, Model, Location, Status +from ..models import Action, Vendor, Model, Location, Status, Item from .. import utils bp = Blueprint('main', __name__) @@ -39,15 +39,16 @@ def handle_inventory_error(error): @bp.route('/_retrieve_items') @login_required def retrieve_items(): - sql = """SELECT item.id, item.name, vendor.name, model.name, location.name, status.name - FROM item - INNER JOIN vendor ON vendor.id = item.vendor_id - INNER JOIN model ON model.id = item.model_id - INNER JOIN location ON location.id = item.location_id - INNER JOIN status ON status.id = item.status_id - """ - result = db.engine.execute(sql) - data = [[item for item in row] for row in result] + items = Item.query.order_by(Item._created) + data = [[item.id, + item.serial_number, + item.name, + utils.format_field(item.vendor), + utils.format_field(item.model), + utils.format_field(item.location), + utils.format_field(item.status), + utils.format_field(item._updated), + ] for item in items] return jsonify(data=data) diff --git a/app/templates/index.html b/app/templates/index.html index 155ad1fd8eca39901d17746b5725e3e6e67ce78e..89e97bb12b2d71c723388c3301cbcfa296f11145 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -9,11 +9,13 @@ <thead> <tr> <th>Id</th> + <th>Serial number</th> <th>name</th> <th>Vendor</th> <th>Model</th> <th>Location</th> <th>Status</th> + <th>Last updated</th> </tr> </thead> </table> diff --git a/app/utils.py b/app/utils.py index 40d9f16cd527ce12114defc8d2df303f098ccf85..dddef7b632a53dd158d71c91d7343fc71c32d8c9 100644 --- a/app/utils.py +++ b/app/utils.py @@ -10,6 +10,7 @@ This module implements utility functions. """ import base64 +import datetime import io import hashlib import uuid @@ -55,3 +56,12 @@ def image_to_base64(img, format='PNG'): buf = io.BytesIO() img.save(buf, format=format) return base64.b64encode(buf.getvalue()).decode('ascii') + + +def format_field(field): + """Format the given field to a string or None""" + if field is None: + return None + if isinstance(field, datetime.datetime): + return field.strftime('%Y-%m-%d %H:%M') + return str(field)