Skip to content
Snippets Groups Projects
Commit b5df54e5 authored by Benjamin Bertrand's avatar Benjamin Bertrand
Browse files

Fix items table display

parent a5c97386
No related branches found
No related tags found
No related merge requests found
...@@ -9,10 +9,10 @@ This module implements the main blueprint. ...@@ -9,10 +9,10 @@ This module implements the main blueprint.
:license: BSD 2-Clause, see LICENSE for more details. :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 flask_login import login_required
from ..extensions import db from ..extensions import db
from ..models import Action, Vendor, Model, Location, Status from ..models import Action, Vendor, Model, Location, Status, Item
from .. import utils from .. import utils
bp = Blueprint('main', __name__) bp = Blueprint('main', __name__)
...@@ -39,15 +39,16 @@ def handle_inventory_error(error): ...@@ -39,15 +39,16 @@ def handle_inventory_error(error):
@bp.route('/_retrieve_items') @bp.route('/_retrieve_items')
@login_required @login_required
def retrieve_items(): def retrieve_items():
sql = """SELECT item.id, item.name, vendor.name, model.name, location.name, status.name items = Item.query.order_by(Item._created)
FROM item data = [[item.id,
INNER JOIN vendor ON vendor.id = item.vendor_id item.serial_number,
INNER JOIN model ON model.id = item.model_id item.name,
INNER JOIN location ON location.id = item.location_id utils.format_field(item.vendor),
INNER JOIN status ON status.id = item.status_id utils.format_field(item.model),
""" utils.format_field(item.location),
result = db.engine.execute(sql) utils.format_field(item.status),
data = [[item for item in row] for row in result] utils.format_field(item._updated),
] for item in items]
return jsonify(data=data) return jsonify(data=data)
......
...@@ -9,11 +9,13 @@ ...@@ -9,11 +9,13 @@
<thead> <thead>
<tr> <tr>
<th>Id</th> <th>Id</th>
<th>Serial number</th>
<th>name</th> <th>name</th>
<th>Vendor</th> <th>Vendor</th>
<th>Model</th> <th>Model</th>
<th>Location</th> <th>Location</th>
<th>Status</th> <th>Status</th>
<th>Last updated</th>
</tr> </tr>
</thead> </thead>
</table> </table>
......
...@@ -10,6 +10,7 @@ This module implements utility functions. ...@@ -10,6 +10,7 @@ This module implements utility functions.
""" """
import base64 import base64
import datetime
import io import io
import hashlib import hashlib
import uuid import uuid
...@@ -55,3 +56,12 @@ def image_to_base64(img, format='PNG'): ...@@ -55,3 +56,12 @@ def image_to_base64(img, format='PNG'):
buf = io.BytesIO() buf = io.BytesIO()
img.save(buf, format=format) img.save(buf, format=format)
return base64.b64encode(buf.getvalue()).decode('ascii') 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)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment