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

Fix admin interface

- replace TextAreaField by StringField for several Text columns
- add filter to replace empty string by None on optional Text and INET
  fields
parent bac5293b
No related branches found
No related tags found
No related merge requests found
......@@ -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],
}
}
......@@ -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)
......
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