From 3a1e1ad8eba2145fbeb9e5f1148c489c43c53ead Mon Sep 17 00:00:00 2001
From: Benjamin Bertrand <benjamin.bertrand@esss.se>
Date: Sun, 12 Nov 2017 21:42:03 +0100
Subject: [PATCH] Use StringField for QRCode name in admin forms

CIText is displayed as a TextAreaField by flask-admin.
Override it to use StringField.
---
 app/admin/views.py |  8 ++++++++
 app/factory.py     | 12 ++++++------
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/app/admin/views.py b/app/admin/views.py
index e8c30e9..6bef8be 100644
--- a/app/admin/views.py
+++ b/app/admin/views.py
@@ -50,6 +50,14 @@ class UserAdmin(AdminModelView):
         super().__init__(User, session)
 
 
+class QRCodeAdmin(AdminModelView):
+
+    # Replace TextAreaField (default for CIText) with StringField
+    form_overrides = {
+        'name': fields.StringField
+    }
+
+
 class ItemAdmin(AdminModelView):
 
     form_args = {
diff --git a/app/factory.py b/app/factory.py
index 9074012..a3b9b36 100644
--- a/app/factory.py
+++ b/app/factory.py
@@ -15,7 +15,7 @@ from whitenoise import WhiteNoise
 from . import settings
 from .extensions import db, migrate, login_manager, ldap_manager, bootstrap, admin, mail, jwt, toolbar
 from .models import Action, Manufacturer, Model, Location, Status, Network, Host, Mac
-from .admin.views import AdminModelView, ItemAdmin, UserAdmin, GroupAdmin
+from .admin.views import AdminModelView, ItemAdmin, UserAdmin, GroupAdmin, QRCodeAdmin
 from .main.views import bp as main
 from .users.views import bp as users
 from .api.main import bp as api
@@ -95,11 +95,11 @@ def create_app(config=None):
     admin.init_app(app)
     admin.add_view(GroupAdmin(db.session))
     admin.add_view(UserAdmin(db.session))
-    admin.add_view(AdminModelView(Action, 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))
+    admin.add_view(QRCodeAdmin(Action, db.session))
+    admin.add_view(QRCodeAdmin(Manufacturer, db.session))
+    admin.add_view(QRCodeAdmin(Model, db.session))
+    admin.add_view(QRCodeAdmin(Location, db.session))
+    admin.add_view(QRCodeAdmin(Status, db.session))
     admin.add_view(ItemAdmin(db.session))
     admin.add_view(AdminModelView(Network, db.session))
     admin.add_view(AdminModelView(Host, db.session))
-- 
GitLab