def fx(): if nome_finestra not in finestre: finestra = Toplevel(root) finestre[nome_finestra] = finestra finestra.grab_set() finestra.protocol("WM_DELETE_WINDOW", destroy(finestra)) finestra.geometry('+250+100') finestra.wm_iconbitmap(bitmap='ball.ico') finestra.title(nome_finestra) Label(finestra, text="Scegli una partita:").grid(row=0, column=0) combo_partita = {} partita = ttk.Combobox(finestra) values = [] for part in Partita(conndb).collection(): print part label = "{squadra} - {altra_squadra} ({data})".format(**part) values.append(label) combo_partita[label] = part['id'] partita['values'] = values partita.config(width=max([len(x) for x in values])) # if values: # partita.insert(0, values[-1]) # partita.current(0) partita.grid(row=0, column=1, columnspan=12) partita.bind("<<ComboboxSelected>>", popola_giocatori(conndb, finestra, partita, combo_partita))
def fx(): obj_gui = punteggi_giocatori[(nome_giocatore, codice_evento)] punti = int(obj_gui.cget('text')) punti += delta if punti < 0: punti = 0 obj_gui.config(text=punti) if delta == 1: DettaglioPartita(conndb).set_data(id_partita=id_partita, giocatore=nome_giocatore, evento=codice_evento, time=timer.cget('text') ).save() Partita(conndb).load(id_partita).set('timer', timer.cget('text')).save() elif delta == -1: c = DettaglioPartita(conndb).collection(where_sql='id_partita = ? AND giocatore = ? AND evento = ?', vals=( id_partita, nome_giocatore, codice_evento ), orderby="time DESC" ) if c: print c[0] DettaglioPartita(conndb).set_key(c[0]['id']).delete()
def get_punti(conndb, partita, giocatore, evento): c = DettaglioPartita(conndb).collection(where_sql='id_partita = ? AND giocatore = ? AND evento = ?', vals=( partita.get(Partita.get_key()), giocatore.get('nome'), evento.get('codice') ) ) return len(c)
def get_risultato(conndb, model_partita): # @todo calcolare il punteggio altra_squadra ret = 0 c = DettaglioPartita(conndb).collection(where_sql='id_partita = ?', vals=( model_partita.get(Partita.get_key()), ) ) for rec in c: e = Evento(conndb).load(rec['evento']) ret += int(e.get('punti')) return "%i - 0" % ret
def fx(tk_event): print len(oggetti_gui) while oggetti_gui: # vuota la finestra dei cotnrolli qui creati oggetti_gui.pop().destroy() while punteggi_giocatori: # vuota i punteggi giocatori fk = punteggi_giocatori.keys()[0] punteggi_giocatori.pop(fk) model_partita = Partita(conndb).load(combo_partita[partita.get()]) # print combo_partita[partita.get()], model_partita.get_data() # squadra = Squadra(conndb).load(model_partita.get('squadra')) # TIMER timer_value = model_partita.get('timer') if not timer_value: timer_value = "00:00" timer = Label(finestra, text=timer_value, bg='black', fg='red', font=("Helvetica", 16)) timer.grid(row=0, column=15, columnspan=3) timer.running = False oggetti_gui.append(timer) play_gif = PhotoImage(file='play.gif') pause_gif = PhotoImage(file='pause.gif') reset_gif = PhotoImage(file='reset.gif') play_button = Button(finestra, image=play_gif, command=start_timer(timer)) play_button.grid(row=0, column=18) play_button.image = play_gif oggetti_gui.append(play_button) button = Button(finestra, image=pause_gif, command=pause_timer(timer)) button.grid(row=0, column=20) button.image = pause_gif oggetti_gui.append(button) button = Button(finestra, image=reset_gif, command=reset_timer(timer)) button.grid(row=0, column=21) button.image = reset_gif oggetti_gui.append(button) # FINE TIMER # RISULTATO l = Label(finestra, text='Risultato :') l.grid(row=0, column=23, columnspan=3) oggetti_gui.append(l) g = get_risultato(conndb, model_partita) l = Label(finestra, text=g, bg='black', fg='red', font=("Helvetica", 16)) l.grid(row=0, column=26, columnspan=3) oggetti_gui.append(l) # FINE RISULTATO giocatori = Giocatore(conndb).collection(where_sql="squadra = ?", vals=(model_partita.get('squadra'), )) l = Label(finestra, text='Nome') l.grid(row=1, column=0) oggetti_gui.append(l) l = Label(finestra, text='Ruolo', background='white') l.grid(row=1, column=1, sticky=W + E + N + S) oggetti_gui.append(l) first = True moltiplicatore = 3 ox, oy = 2, 2 for y, giocatore in enumerate(giocatori): l = Label(finestra, text=giocatore['nome']) l.grid(row=y * 2 + oy, column=0, rowspan=2) oggetti_gui.append(l) l = Label(finestra, text=giocatore['ruolo'], background='white') l.grid(row=y * 2 + oy, column=1, rowspan=2, sticky=W + E + N + S) oggetti_gui.append(l) for x, evento in enumerate(eventi): # print evento if first: # label degli eventi l = Label(finestra, text=evento['nome'], background=evento.get('colore_fondo', '') ) l.grid(row=1, column=ox + (x * moltiplicatore), sticky=W + E + N + S, columnspan=moltiplicatore - 1) oggetti_gui.append(l) l = Label(finestra, image=pixel, background='black', width=1) l.image = pixel l.grid(row=1, column=ox + (x * moltiplicatore) + 2, sticky=W + E + N + S, rowspan=2) oggetti_gui.append(l) # bottoni degli eventi gif = PhotoImage(file=evento.get('icona', 'ball.gif')) b = Button(finestra, image=minus, background=evento.get('colore_fondo', ''), command=segnapunto(conndb, punteggi_giocatori, model_partita.get(Partita.get_key()), giocatore['nome'], evento['codice'], timer, -1) ) b.grid(row=y * 2 + oy, column=x * moltiplicatore + ox, sticky=E + W) b.minus = minus oggetti_gui.append(b) b = Button(finestra, image=gif, background=evento.get('colore_fondo', ''), command=segnapunto(conndb, punteggi_giocatori, model_partita.get(Partita.get_key()), giocatore['nome'], evento['codice'], timer) ) b.grid(row=y * 2 + oy, column=x * moltiplicatore + ox + 1, sticky=E + W) b.image = gif oggetti_gui.append(b) punti = get_punti(conndb, model_partita, giocatore, evento) l = Label(finestra, text=punti, background=evento.get('colore_fondo', '') ) l.grid(row=y * 2 + oy + 1, column=x * moltiplicatore + ox, sticky=W + E + N + S, columnspan=2) oggetti_gui.append(l) punteggi_giocatori[(giocatore['nome'], evento['codice'])] = l l = Label(finestra, image=pixel, width=1, background='black') l.grid(row=y * 2 + oy, column=x * moltiplicatore + ox + 2, sticky=W + E + N + S, rowspan=2) oggetti_gui.append(l) first = False
def schema(conndb): if len(Evento(conndb).collection_keys()) == 0: Evento(conndb).set('codice', 'ed') \ .set('nome', 'errore difesa') \ .set('punti', 0) \ .set('icona', 'cancel.gif') \ .set('colore_fondo', 'red') \ .set('position', 10) \ .save() Evento(conndb).set_data(codice='goal9', nome='GOAL9', icona='ball.gif', punti=1, colore_fondo='green', position=20 ).save() Evento(conndb).set_data(codice='goal6', nome='GOAL6', icona='ball.gif', punti=1, colore_fondo='green', position=30 ).save() Evento(conndb).set_data(codice='goalcontro', nome='GOAL C', icona='ball.gif', punti=1, colore_fondo='green', position=40 ).save() Evento(conndb).set_data(codice='goalrigore', nome='GOAL R', icona='ball.gif', punti=1, colore_fondo='green', position=50 ).save() Evento(conndb).set_data(codice='errore9', nome='ERRORE GOAL9', icona='cancel.gif', punti=0, colore_fondo='red', position=60 ).save() Evento(conndb).set_data(codice='errore6', nome='ERRORE GOAL6', icona='cancel.gif', punti=0, colore_fondo='red', position=70 ).save() Evento(conndb).set_data(codice='errorecontro', nome='ERRORE GOAL C', icona='cancel.gif', punti=0, colore_fondo='red', position=80 ).save() Evento(conndb).set_data(codice='errorerigorre', nome='ERRORE GOAL R', icona='cancel.gif', punti=0, colore_fondo='red', position=90 ).save() Evento(conndb).set_data(codice='pallarec', nome='PR', icona='angularbracket.gif', punti=0, colore_fondo='white', position=100 ).save() Evento(conndb).set_data(codice='erroretec', nome='ET', icona='cancel.gif', punti=0, colore_fondo='red', position=110 ).save() Evento(conndb).set_data(codice='ammonizione', nome='AM', icona='angularbracket.gif', punti=0, colore_fondo='yellow', position=120 ).save() Evento(conndb).set_data(codice='2min', nome='2M', icona='angularbracket.gif', punti=0, colore_fondo='red', position=130 ).save() Evento(conndb).set_data(codice='assist', nome='AS', icona='angularbracket.gif', punti=0, colore_fondo='white', position=140 ).save() if len(Squadra(conndb).collection_keys()) == 0: Squadra(conndb).set_data(nome='casalgrande', genere='maschile').save() Squadra(conndb).set_data(nome='pratisollo', genere='maschile').save() if len(Giocatore(conndb).collection_keys()) == 0: Giocatore(conndb).set_data(nome='prova 1', squadra='casalgrande', numero='00', ruolo='-' ).save() Giocatore(conndb).set_data(nome='prova 2', squadra='casalgrande', numero='01', ruolo='-' ).save() Giocatore(conndb).set_data(nome='prova 3', squadra='casalgrande', numero='02', ruolo='-' ).save() Giocatore(conndb).set_data(nome='prova 4', squadra='casalgrande', numero='03', ruolo='portiere' ).save() Giocatore(conndb).set_data(nome='prova 5', squadra='pratissolo', numero='00', ruolo='-' ).save() if len(Partita(conndb).collection_keys()) == 0: # .set('risultato_primo_tempo', '0-0') \ # .set('risultato_secondo_tempo', '0-0') \ Partita(conndb).set('squadra', 'casalgrande') \ .set('altra_squadra', 'montegrotto') \ .set('data', '01-01-2015') \ .set('risultato_finale', '0-0') \ .set('timer', '00:00') \ .save() Partita(conndb).set('squadra', 'pratissolo') \ .set('altra_squadra', 'montegrotto') \ .set('data', '01-02-2015') \ .set('risultato_finale', '0-0') \ .set('timer', '00:00') \ .save() if len(DettaglioPartita(conndb).collection_keys()) == 0: DettaglioPartita(conndb).set_data(id_partita=1, giocatore='prova 1', evento='goal6', time='00:00' # tempo="primo" ).save()