コード例 #1
0
ファイル: regist.py プロジェクト: georgefs/pyconapac-rpi
class Tab1(Tab):
    def __init__(self, master):
        Tab.__init__(self, master, u"報到".encode('utf-8'))
        self.web = Web()
        self.db = DBController("/home/pi/pyconapac-rpi/db/pycon2015.db.nofacebook")
        self.reg_no = StringVar()
        self.nickname = StringVar()
        self.uid = StringVar()
        self.tshirt_wtime = StringVar()

        self.tab1_lbl_reg_no = Label(self, bg="red", fg="white", font=('Arial', 16), textvariable=sv_reg_no).pack(fill=X)
        self.tab1_lbl_nickname = Label(self, bg="green", fg="black", font=('Arial', 22), textvariable=sv_nickname).pack(fill=X)
        self.tab1_lbl_uid = Label(self, bg="blue", fg="white", font=('Arial', 20), textvariable=sv_uid).pack(fill=X)
        self.tab1_lbl_status = Label(self, bg="yellow", fg="black", font=('Arial', 22), textvariable=sv_regist_status).pack(side=LEFT, fill=BOTH, expand=YES)

    def load_profile(self, uid):
        print type(self).__name__ + "/" + inspect.stack()[0][3]
        try:
            result = self.web.infoQuery(uid)
            status = result['result']['regist_wtime'] if result['result']['regist_wtime'] != '0' else 'First Check-in'
            reg_no = result['result']['reg_no']
            nickname = result['result']['nickname']
            user_info = self.db.getInfoByReg(reg_no)
            sv_reg_no.set(reg_no + "/" + user_info.ticket_type.split(' ')[-1])
            sv_nickname.set(nickname)
            sv_uid.set(uid)

            sv_regist_status.set(status)
            result = self.web.registerUpdate(reg_no, uid)

            # user_info = self.web.infoQuery(uid)
            # sv_reg_no.set(str(user_info['result']['reg_no']))
            # sv_nickname.set(str(user_info['result']['nickname']))
            # sv_uid.set(str(user_info['result']['uid']))
            # result = self.web.registerUpdate(user_info['result']['reg_no'], uid)
            print result

            # if user_info.regist_wtime == None:
            #     self.db.checkIn(uid)

        except ValueError:
            sv_reg_no.set(VALUE_ERROR)
            sv_nickname.set(VALUE_ERROR)
            sv_uid.set(uid)
コード例 #2
0
class TestDBAccess(unittest.TestCase):
    def setUp(self):
        self.web = Web()
        self.UID = '09  4d  06  02'

    def test_register(self):
        req = self.web.infoQuery(self.UID)
        self.assertEqual("60", req['result']['reg_no'])
        self.assertEqual("Bruce Tsai", req['result']['nickname'])
        req = self.web.registerUpdate(req['result']['reg_no'], self.UID)
        self.assertEqual("ok", req['status'])

    def test_query(self):
        req = self.web.infoQuery(self.UID)
        self.assertEqual("60", req['result']['reg_no'])
        self.assertEqual("Bruce Tsai", req['result']['nickname'])

    def test_tshirt_query(self):
        req = self.web.tshirtQuery(self.UID)
        self.assertEqual("M /160~170cm", req['result']['tshirt'])

    def test_tshirt_update(self):
        req = self.web.tshirtUpdate(self.UID)
        self.assertEqual("ok", req['status'])
コード例 #3
0
ファイル: regist.py プロジェクト: wagamama/pyconapac-rpi
class Tab3(Tab):
    def __init__(self, master):
        Tab.__init__(self, master, u"新增".encode('utf-8'))

        self.web = Web()
        self.db = DBController("/home/pi/pyconapac-rpi/db/pycon2015.db")
        self.reg_no = StringVar()
        self.nickname = StringVar()
        self.fullname = StringVar()
        self.uid = StringVar()
        self.pair_status = StringVar()
        self.is_reg_no = False

        self.tab3_fm1 = Frame(self)
        self.txt3_fm1 = Text(self.tab3_fm1, width=3, height=1, font=('Arial', 12))
        self.txt3_fm1.pack(side=TOP, fill=X, expand=YES)
        self.txt3_fm1.focus()

        self.tab3_btn1 = Button(self.tab3_fm1, text='OK')
        self.tab3_btn1.pack(side=TOP, anchor=W, fill=X, expand=YES)
        self.tab3_btn1.bind('<Button-1>', self.load_profile)
        self.tab3_fm1.pack(side=LEFT, fill=BOTH, expand=YES)

        self.tab3_fm2 = Frame(self)
        Label(self.tab3_fm2, bg="red", fg="white", width=12, font=('Arial', 16), textvariable=self.reg_no).pack(side=TOP, fill=BOTH, expand=YES)
        Label(self.tab3_fm2, bg="green", fg="black", width=12, font=('Arial', 10), textvariable=self.nickname).pack(side=TOP, fill=BOTH, expand=YES)
        Label(self.tab3_fm2, bg="blue", fg="white", width=12, font=('Arial', 16), textvariable=self.fullname).pack(side=TOP, fill=BOTH, expand=YES)
        self.tab3_fm2.pack(side=LEFT, padx=10)

        self.tab3_fm3 = Frame(self)
        self.tab3_lbl_uid = Label(self.tab3_fm3, bg="white", fg="black", width=10, font=('Arial', 12), textvariable=sv_uid).pack(side=TOP, anchor=W, fill=X, expand=YES)
        self.tab3_btn1 = Button(self.tab3_fm3, text='Pair', font=('Arial', 10))
        self.tab3_btn1.pack(side=LEFT, anchor=W)
        self.tab3_btn1.bind('<Button-1>', self.pair_uid)
        self.tab3_lbl_pair_status = Label(self.tab3_fm3, bg="yellow", fg="black", width=4, font=('Arial', 24), textvariable=self.pair_status).pack(side=LEFT, fill=BOTH, expand=YES)
        self.tab3_fm3.pack(side=LEFT, fill=BOTH, expand=YES)

    def clear_profile(self):
        self.reg_no.set("")
        self.nickname.set("")
        self.fullname.set("")
        self.txt3_fm1.delete("1.0", "end")

    def clear_pair(self):
        sv_uid.set("")
        self.pair_status.set("")


    def load_profile(self, button):
        print type(self).__name__ + "/" + inspect.stack()[0][3]
        global reg_no
        reg_no = self.txt3_fm1.get("1.0", "end")
        user_info = self.db.getInfoByReg(int(reg_no))
        reg_no = user_info.reg_no
        self.reg_no.set(str(user_info.reg_no) + "/" + user_info.ticket_type.split(' ')[-1])
        self.nickname.set(user_info.nickname)
        self.fullname.set(user_info.fullname)
        self.clear_pair()
        self.is_reg_no = True

    def pair_uid(self, button):
        print type(self).__name__ + "/" + inspect.stack()[0][3]
        # from nfc import NFC
        # NFC('/home/pi/3rd/libnfc-1.7.0-rc7/examples/nfc-poll').read()
        try :
            if self.is_reg_no != True:
                return
            result = self.web.registerUpdate(reg_no, uid)
            print result
            self.pair_status.set(result["status"])
            self.is_reg_no = False
        except NameError:
            print "NameError"
            self.pair_status.set("NameError")
        finally:
            self.clear_profile()
            sv_uid.set("")