diff --git a/wuttapos/app.py b/wuttapos/app.py
index c0d976e..9c4ed5c 100644
--- a/wuttapos/app.py
+++ b/wuttapos/app.py
@@ -36,6 +36,7 @@ from traceback import format_exception
from rattail import app as base
from rattail.config import make_config
from rattail.files import resource_path
+from rattail.util import simple_error
import flet as ft
@@ -96,6 +97,7 @@ def main(page: ft.Page):
app.send_email('uncaught_exception', {
'extra_context': extra_context,
+ 'error': simple_error(exc_value),
'traceback': traceback,
})
diff --git a/wuttapos/controls/header.py b/wuttapos/controls/header.py
index bc52c24..b2641e1 100644
--- a/wuttapos/controls/header.py
+++ b/wuttapos/controls/header.py
@@ -133,11 +133,28 @@ You should have received a copy of the GNU General Public License along with
WuttaPOS. If not, see .
"""
- if self.page.session.get('user_uuid'):
+ buttons = []
+
+ user_uuid = self.page.session.get('user_uuid')
+ if user_uuid:
+
+ session = self.app.make_session()
+ model = self.app.model
+ user = session.get(model.User, user_uuid)
+ auth = self.app.get_auth_handler()
+ has_perm = auth.has_permission(session, user, 'pos.test_error')
+ session.close()
+ if has_perm:
+ test_error = self.make_button("TEST ERROR", font_size=24,
+ height=60,
+ width=60 * 3,
+ bgcolor='red',
+ on_click=self.test_error_click)
+ buttons.append(test_error)
+
feedback = WuttaFeedback(self.config, page=self.page,
on_send=self.reset, on_cancel=self.reset)
- else:
- feedback = ft.Text() # no display
+ buttons.append(feedback)
self.dlg = ft.AlertDialog(
title=ft.Text(title),
@@ -150,7 +167,10 @@ WuttaPOS. If not, see .
ft.Divider(),
ft.Text(license),
ft.Container(
- content=feedback,
+ content=ft.Row(
+ controls=buttons,
+ alignment=ft.MainAxisAlignment.CENTER,
+ ),
alignment=ft.alignment.center,
expand=True,
),
@@ -180,6 +200,15 @@ WuttaPOS. If not, see .
self.dlg.open = True
self.page.update()
+ def test_error_click(self, e):
+
+ # first get the dialog out of the way
+ self.dlg.open = False
+ self.reset()
+ self.page.update()
+
+ raise RuntimeError("FAKE ERROR - to test error handling")
+
def close_dlg(self, e):
self.dlg.open = False
self.reset()
diff --git a/wuttapos/views/pos.py b/wuttapos/views/pos.py
index 8cb47f3..f644c4b 100644
--- a/wuttapos/views/pos.py
+++ b/wuttapos/views/pos.py
@@ -667,8 +667,8 @@ class POSView(WuttaView):
[
meta_button("Adjust\nPrice", font_size=30, bgcolor='yellow',
on_click=self.adjust_price_click),
- meta_button("(TEST ERROR)", bgcolor='red', on_click=self.not_supported,
- font_size=24, data={'error': True}),
+ meta_button("TODO", bgcolor='yellow', on_click=self.not_supported,
+ font_size=24),
],
spacing=0,
),