diff --git a/app/admin/views.py b/app/admin/views.py index 12fab597757fe25a89841b877d752be5153ae04a..27bb41a389824c5c9965c82dea9cf0365fc7dbd2 100644 --- a/app/admin/views.py +++ b/app/admin/views.py @@ -60,9 +60,47 @@ class QRCodeAdmin(AdminModelView): class ItemAdmin(AdminModelView): + # Replace TextAreaField (default for Text) with StringField + form_overrides = { + 'ics_id': fields.StringField, + 'serial_number': fields.StringField, + } + form_args = { 'ics_id': { 'label': 'ICS id', - 'validators': [validators.Regexp(ICS_ID_RE, message='ICS id shall match [A-Z]{3}[0-9]{3}')] + 'validators': [validators.Regexp(ICS_ID_RE, message='ICS id shall match [A-Z]{3}[0-9]{3}')], + 'filters': [lambda x: x or None], + } + } + + +class NetworkAdmin(AdminModelView): + + # Replace TextAreaField (default for Text) with StringField + form_overrides = { + 'label': fields.StringField, + } + + form_args = { + 'label': { + 'filters': [lambda x: x or None], + }, + 'gateway': { + 'filters': [lambda x: x or None], + }, + } + + +class HostAdmin(AdminModelView): + + # Replace TextAreaField (default for Text) with StringField + form_overrides = { + 'name': fields.StringField, + } + + form_args = { + 'name': { + 'filters': [lambda x: x or None], } } diff --git a/app/factory.py b/app/factory.py index fde52fc81da6e71cd0cf95231c88fc528c86b3a9..3e40240b1740ac3d31334492c0fa80ade5d8f4e8 100644 --- a/app/factory.py +++ b/app/factory.py @@ -14,7 +14,7 @@ from flask import Flask from whitenoise import WhiteNoise from . import settings, models from .extensions import db, migrate, login_manager, ldap_manager, bootstrap, admin, mail, jwt, toolbar -from .admin.views import AdminModelView, ItemAdmin, UserAdmin, GroupAdmin, QRCodeAdmin +from .admin.views import AdminModelView, ItemAdmin, UserAdmin, GroupAdmin, QRCodeAdmin, NetworkAdmin, HostAdmin from .main.views import bp as main from .users.views import bp as users from .api.main import bp as api @@ -100,8 +100,8 @@ def create_app(config=None): admin.add_view(QRCodeAdmin(models.Location, db.session)) admin.add_view(QRCodeAdmin(models.Status, db.session)) admin.add_view(ItemAdmin(models.Item, db.session)) - admin.add_view(AdminModelView(models.Network, db.session)) - admin.add_view(AdminModelView(models.Host, db.session)) + admin.add_view(NetworkAdmin(models.Network, db.session)) + admin.add_view(HostAdmin(models.Host, db.session)) admin.add_view(AdminModelView(models.Mac, db.session)) app.register_blueprint(main)