Browse Source

client-barcode: Allow showing product info without log-in (bug #202)

Log-in is tried first so if someone's code matches a product he can still log in
Sebastian Pipping 9 years ago
parent
commit
d468585069
1 changed files with 40 additions and 6 deletions
  1. 40
    6
      client-barcode/freitagskasse.py

+ 40
- 6
client-barcode/freitagskasse.py View File

@@ -263,6 +263,30 @@ def error_page(error_message, hint_message=None):
263 263
 	delay('Weiter', delay_seconds)
264 264
 
265 265
 
266
+def item_info_page(item):
267
+	indent = 4 * ' '
268
+
269
+	clear()
270
+	print('Diese Ware heißt')
271
+	print()
272
+	print(indent + COLOR_SOME + item.name + COLOR_RESET)
273
+	print()
274
+	print('und kostet')
275
+	print()
276
+	if item.deposit > 0:
277
+		print(indent + '%s%4.2f Euro%s  (plus %4.2f Euro Pfand) .' \
278
+				% (COLOR_MUCH, item.price, COLOR_RESET, item.deposit))
279
+	else:
280
+		print(indent + '%s%4.2f Euro%s .' \
281
+				% (COLOR_MUCH, item.price, COLOR_RESET))
282
+	print()
283
+	print()
284
+	print(COLOR_MUCH + 'Zum Kaufen bitte einloggen.' + COLOR_RESET)
285
+	print()
286
+
287
+	delay('Weiter', 3)
288
+
289
+
266 290
 class Status:
267 291
 	def __init__(self):
268 292
 		self._reset()
@@ -552,12 +576,22 @@ def handle(line, status):
552 576
 			status.login(line)
553 577
 		except urllib2.HTTPError as e:
554 578
 			if e.code == 404:  # URL not found == user unknown
555
-				display_screen("FEHLER","Nutzer ist  unbekannt: '%s' *** " % line)
556
-
557
-				error_page('FEHLER: Benutzer "%s" nicht bekannt' % line,
558
-						hint_message='Ist in der WebApp unter "Einstellungen" ' \
559
-						'für Ihren Account Plugin "BarcodePlugin" ' \
560
-						'als erlaubt markiert?')
579
+				# Try same code as a product
580
+				item = None
581
+				try:
582
+					item = status.find(line)
583
+				except urllib2.HTTPError as e:
584
+					pass
585
+
586
+				if item is None:
587
+					display_screen("FEHLER","Nutzer ist  unbekannt: '%s' *** " % line)
588
+
589
+					error_page('FEHLER: Produkt oder Nutzer "%s" nicht bekannt' % line,
590
+							hint_message='Ist in der WebApp unter "Einstellungen" ' \
591
+							'für Ihren Account Plugin "BarcodePlugin" ' \
592
+							'als erlaubt markiert?')
593
+				else:
594
+					item_info_page(item)
561 595
 			else:
562 596
 				print_display('\x0cFEHLER: Server Error%20s' % str(e)[:20])
563 597
 				error_page('FEHLER bei Kommunikation mit Server "%s"' % str(e))

Loading…
Cancel
Save