@@ -9,10 +9,76 @@ def __init__(self, ctx):
99 def create_account_from_barcode (self , barcode ):
1010 self ._create (barcode = barcode )
1111
12+ def go_to_review_from_barcode (self , barcode ):
13+ canvas = self .ctx .window .canvas
14+ loading = tkinter .Label (
15+ canvas ,
16+ text = "Looking up student..." ,
17+ bg = "#153246" , fg = "white" , font = ("Arial" , 25 ),
18+ )
19+ loading .place (relx = 0.5 , rely = 0.87 , anchor = "center" )
20+ self .ctx .window .update ()
21+
22+ student = self .ctx .sheets .lookup_by_barcode (barcode )
23+ loading .destroy ()
24+
25+ if student is None :
26+ error = tkinter .Label (
27+ canvas ,
28+ text = "Student not found. Please enter your details manually." ,
29+ bg = "#153246" , fg = "white" , font = ("Arial" , 20 ),
30+ )
31+ error .place (relx = 0.5 , rely = 0.87 , anchor = "center" )
32+ error .after (3000 , error .destroy )
33+ return
34+
35+ self .ctx .nav .go_to_create_account_review (
36+ pid = student ["pid" ],
37+ first_name = student ["first_name" ],
38+ last_name = student ["last_name" ],
39+ email = student ["email" ],
40+ )
41+
1242 def create_account_from_pid (self , pid ):
1343 self ._create (pid = pid )
1444
15- def _create (self , * , barcode = None , pid = None ):
45+ def go_to_review_from_pid (self , pid ):
46+ canvas = self .ctx .window .canvas
47+ loading = tkinter .Label (
48+ canvas ,
49+ text = "Looking up student..." ,
50+ bg = "#153246" , fg = "white" , font = ("Arial" , 25 ),
51+ )
52+ loading .place (relx = 0.5 , rely = 0.87 , anchor = "center" )
53+ self .ctx .window .update ()
54+
55+ student = self .ctx .sheets .lookup_by_pid (pid )
56+ loading .destroy ()
57+
58+ if student is None :
59+ error = tkinter .Label (
60+ canvas ,
61+ text = "Student not found. Please check your PID." ,
62+ bg = "#153246" , fg = "white" , font = ("Arial" , 20 ),
63+ )
64+ error .place (relx = 0.5 , rely = 0.87 , anchor = "center" )
65+ error .after (3000 , error .destroy )
66+ return
67+
68+ self .ctx .nav .go_to_create_account_review (
69+ pid = pid ,
70+ first_name = student ["first_name" ],
71+ last_name = student ["last_name" ],
72+ email = student ["email" ],
73+ )
74+
75+ def create_account_from_review (self , * , first_name , last_name , email , pid ):
76+ if pid :
77+ self ._create (pid = pid )
78+ else :
79+ self ._create (first_name = first_name , last_name = last_name , email = email )
80+
81+ def _create (self , * , barcode = None , pid = None , first_name = None , last_name = None , email = None ):
1682 canvas = self .ctx .window .canvas
1783 inProgress = tkinter .Label (
1884 canvas ,
@@ -22,7 +88,14 @@ def _create(self, *, barcode=None, pid=None):
2288 inProgress .place (relx = 0.5 , rely = 0.87 , anchor = "center" )
2389 self .ctx .window .update ()
2490
25- result = self .ctx .sheets .create_account (self .ctx .rfid , barcode = barcode , pid = pid )
91+ result = self .ctx .sheets .create_account (
92+ self .ctx .rfid ,
93+ barcode = barcode ,
94+ pid = pid ,
95+ first_name = first_name ,
96+ last_name = last_name ,
97+ email = email ,
98+ )
2699 inProgress .destroy ()
27100
28101 if result is None :
0 commit comments