diff --git a/app/api/items.py b/app/api/items.py index ea9b8a69615016d5562d1cc09285e4616fab2e06..7caa5cfa0599cb16fbf934ea48266958c9ea95a1 100644 --- a/app/api/items.py +++ b/app/api/items.py @@ -42,9 +42,9 @@ def login(): @bp.route('/items') @jwt_required def get_items(): - sql = """SELECT item.id, item.name, vendor.name, model.name, location.name, status.name + sql = """SELECT item.id, item.name, manufacturer.name, model.name, location.name, status.name FROM item - INNER JOIN vendor ON vendor.id = item.vendor_id + INNER JOIN manufacturer ON manufacturer.id = item.manufacturer_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 diff --git a/app/defaults.py b/app/defaults.py index 302d51b419db5ef2b9107a4b828e03cf8b5ab036..03e2fe61887cb9ec75415fa5bae1b186cc01b95f 100644 --- a/app/defaults.py +++ b/app/defaults.py @@ -25,10 +25,10 @@ defaults = [ models.Status(id=1, name='In service'), models.Status(id=2, name='Disposed'), - models.Vendor(id=0, name='ESS'), - models.Vendor(id=1, name='MRF'), - models.Vendor(id=2, name='IOxOS'), - models.Vendor(id=3, name='Wiener'), + models.Manufacturer(id=0, name='ESS'), + models.Manufacturer(id=1, name='MRF'), + models.Manufacturer(id=2, name='IOxOS'), + models.Manufacturer(id=3, name='Wiener'), models.Model(id=0, name='vme-evm-300'), models.Model(id=1, name='mtca-evr-300u'), diff --git a/app/factory.py b/app/factory.py index c08ff352664834bfbdf73dce54c1324e4d3eddb8..caa92cac340727bb848b36ddb82baa8ad424ffe0 100644 --- a/app/factory.py +++ b/app/factory.py @@ -13,7 +13,7 @@ import sqlalchemy as sa from flask import Flask from . import settings from .extensions import db, migrate, login_manager, ldap_manager, bootstrap, admin, mail, jwt -from .models import User, Role, Action, Vendor, Model, Location, Status +from .models import User, Role, Action, Manufacturer, Model, Location, Status from .admin.views import AdminModelView, ItemAdmin from .main.views import bp as main from .users.views import bp as users @@ -91,7 +91,7 @@ def create_app(): admin.add_view(AdminModelView(Role, db.session)) admin.add_view(AdminModelView(User, db.session)) admin.add_view(AdminModelView(Action, db.session)) - admin.add_view(AdminModelView(Vendor, db.session)) + admin.add_view(AdminModelView(Manufacturer, db.session)) admin.add_view(AdminModelView(Model, db.session)) admin.add_view(AdminModelView(Location, db.session)) admin.add_view(AdminModelView(Status, db.session)) diff --git a/app/main/views.py b/app/main/views.py index e0b06e99ae40ef81716d1be6c02acd8a202f0072..bed5b67f479db311f94139fda936690f46ea5386 100644 --- a/app/main/views.py +++ b/app/main/views.py @@ -12,7 +12,7 @@ This module implements the main blueprint. 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, Item +from ..models import Action, Manufacturer, Model, Location, Status, Item from .. import utils bp = Blueprint('main', __name__) @@ -43,7 +43,7 @@ def retrieve_items(): data = [[item.id, item.serial_number, item.name, - utils.format_field(item.vendor), + utils.format_field(item.manufacturer), utils.format_field(item.model), utils.format_field(item.location), utils.format_field(item.status), @@ -62,7 +62,7 @@ def index(): @login_required def qrcodes(): codes = {} - for model in (Action, Vendor, Model, Location, Status): + for model in (Action, Manufacturer, Model, Location, Status): items = db.session.query(model).order_by(model.name) images = [{'name': item.name, 'data': utils.image_to_base64(item.image())} diff --git a/app/models.py b/app/models.py index ba7e856e3b183eeff287935a7596b3967d4f1dea..02f31736690e674698c8c569549e6cc1b529d123 100644 --- a/app/models.py +++ b/app/models.py @@ -140,9 +140,9 @@ class Action(QRCodeMixin, db.Model): code = 'AC' -class Vendor(QRCodeMixin, db.Model): - code = 'VD' - items = db.relationship('Item', back_populates='vendor') +class Manufacturer(QRCodeMixin, db.Model): + code = 'MA' + items = db.relationship('Item', back_populates='manufacturer') class Model(QRCodeMixin, db.Model): @@ -168,22 +168,23 @@ class Item(db.Model): serial_number = db.Column(db.String(100), nullable=False) name = db.Column(db.String(100)) hash = db.Column(GUID, unique=True) - vendor_id = db.Column(db.Integer, db.ForeignKey('vendor.id')) + manufacturer_id = db.Column(db.Integer, db.ForeignKey('manufacturer.id')) model_id = db.Column(db.Integer, db.ForeignKey('model.id')) location_id = db.Column(db.Integer, db.ForeignKey('location.id')) status_id = db.Column(db.Integer, db.ForeignKey('status.id')) parent_id = db.Column(db.Integer, db.ForeignKey('item.id')) - vendor = db.relationship('Vendor', back_populates='items') + manufacturer = db.relationship('Manufacturer', back_populates='items') model = db.relationship('Model', back_populates='items') location = db.relationship('Location', back_populates='items') status = db.relationship('Status', back_populates='items') children = db.relationship('Item', backref=db.backref('parent', remote_side=[id])) - def __init__(self, serial_number=None, name=None, vendor=None, model=None, location=None, status=None): + def __init__(self, serial_number=None, name=None, manufacturer=None, model=None, location=None, status=None): + # All arguments must be optional for this class to work with flask-admin! self.serial_number = serial_number self.name = name - self.vendor = vendor + self.manufacturer = manufacturer self.model = model self.location = location self.status = status diff --git a/app/templates/index.html b/app/templates/index.html index 89e97bb12b2d71c723388c3301cbcfa296f11145..d110d2455d05db6b3a5894fdde431dae97853140 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -11,7 +11,7 @@ <th>Id</th> <th>Serial number</th> <th>name</th> - <th>Vendor</th> + <th>Manufacturer</th> <th>Model</th> <th>Location</th> <th>Status</th>