示例#1
0
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)
示例#2
0
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
示例#3
0
    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