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