Skip to content

Commit 4e1f6a9

Browse files
soft depend barcode reader instead of hard depend
1 parent 426d8bc commit 4e1f6a9

4 files changed

Lines changed: 23 additions & 1 deletion

File tree

src/app_context.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ def __init__(self, sheets: ApiClient, traffic_light: TrafficLightApi):
1313
self.nav = None
1414
self.check_in = None
1515
self.account = None
16-
self.dispatcher = None # set by main.py after QApplication is created
16+
self.dispatcher = None
17+
self.has_barcode_scanner = False
1718
self._rfid_lock = threading.Lock()
1819
self._rfid: str = ""
1920

src/controllers/check_in_controller.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from PyQt6.QtCore import QTimer
44

55
from screens.user_welcome import UserWelcome
6+
from screens.transition_screen import TransitionScreen
67

78

89
class CheckInController:
@@ -33,6 +34,12 @@ def _run_check_in(self, identifier, check_fn, welcome_message="Welcome back"):
3334
if status == "no_account":
3435
logging.info(f"No account found for {identifier}")
3536
self.ctx.traffic_light.request_red()
37+
if not self.ctx.has_barcode_scanner:
38+
self.ctx.nav.get_frame(TransitionScreen).display(
39+
"Looks like you don't have an account.\nUse the other kiosk to set one up!"
40+
)
41+
QTimer.singleShot(6000, self.ctx.nav.back_to_main)
42+
return
3643
self.ctx.nav.go_to_create_account(
3744
on_done=lambda: self._run_check_in(
3845
identifier, check_fn, welcome_message="Thank you for registering"

src/main.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ def clear_and_return(ctx: AppContext):
7575
card_reader.start(reader)
7676

7777
if usb.barcode:
78+
ctx.has_barcode_scanner = True
7879
barcode_scanner = BarcodeScanner(usb.barcode)
7980
barcode_controller = BarcodeScannerController(ctx)
8081
barcode_controller.start(barcode_scanner)

src/screens/components/dev_overlay.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from screens.check_in_manual import CheckInManual
1111
from screens.qr_codes import QRCodes
1212
from screens.user_welcome import UserWelcome
13+
from screens.transition_screen import TransitionScreen
1314

1415
_DEV_NAME = "Dev User"
1516
_DEV_EMAIL = "devuser@ucsd.edu"
@@ -20,6 +21,12 @@
2021

2122
def _sim_no_account_success(nav):
2223
nav.ctx.rfid = _DEV_RFID
24+
if not nav.ctx.has_barcode_scanner:
25+
nav.get_frame(TransitionScreen).display(
26+
"Looks like you don't have an account.\nUse the other kiosk to set one up!"
27+
)
28+
QTimer.singleShot(6000, nav.back_to_main)
29+
return
2330
def on_done():
2431
nav.ctx.traffic_light.request_green()
2532
nav.get_frame(UserWelcome).display_name(_DEV_NAME, _THANK_MSG)
@@ -28,6 +35,12 @@ def on_done():
2835

2936
def _sim_no_account_needs_waiver(nav):
3037
nav.ctx.rfid = _DEV_RFID
38+
if not nav.ctx.has_barcode_scanner:
39+
nav.get_frame(TransitionScreen).display(
40+
"Looks like you don't have an account.\nUse the other kiosk to set one up!"
41+
)
42+
QTimer.singleShot(6000, nav.back_to_main)
43+
return
3144
nav.go_to_create_account(on_done=nav.go_to_sign_waiver)
3245

3346

0 commit comments

Comments
 (0)