Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/EjercitarClient/gui/Ejercitario.py
blob: 1ca0fee8ad9f1983819fa2ad3e53418fb6242c46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
'''
Created on Feb 4, 2013

@author: Samu
'''

import gtk

import suds
from suds.client import Client

class Ejercitario(gtk.VBox):

    # This is a callback function. The data arguments are ignored
    # in this example. More on callbacks below.


    def __init__(self, cliente_WS, id_tarea, id_alumno):
        # create a new window
        super(Ejercitario, self).__init__()
        
        self.id_tarea = id_tarea
        self.id_alumno = id_alumno
        self.cliente_WS = cliente_WS
        
        self.__inicializar_componentes()
        self.siguiente_ejercicio = self.__obtener_siguiente_ejercicio(cliente_WS, 0)
        self.__organizar_gui(self.siguiente_ejercicio)   
        #self.__sincronizar_temas()   
        self.show_all()
        
    def __inicializar_componentes(self):
        self.label_enunciado = gtk.Label()
        self.solucion1 = gtk.RadioButton()
        self.solucion2 = gtk.RadioButton()
        self.solucion3 = gtk.RadioButton()
        self.solucion4 = gtk.RadioButton()
        
        self.solucion2.set_group(self.solucion1)
        self.solucion3.set_group(self.solucion1)
        self.solucion4.set_group(self.solucion1)
        
        self.boton_responder = gtk.Button("Responder")
        self.boton_responder.connect("clicked", self.__responder_cb)
        
    def __organizar_gui(self, siguiente_ejercicio):
        
        self.solucion1.set_label(siguiente_ejercicio.respuestaList.respuestaList[0].descripcion)
        self.solucion2.set_label(siguiente_ejercicio.respuestaList.respuestaList[1].descripcion)
        self.solucion3.set_label(siguiente_ejercicio.respuestaList.respuestaList[2].descripcion)
        self.solucion4.set_label(siguiente_ejercicio.respuestaList.respuestaList[3].descripcion)

        self.label_enunciado.set_label(siguiente_ejercicio.enunciado)

        
        contenedor_soluciones = gtk.HBox()
        contenedor_soluciones.add(self.solucion1)
        contenedor_soluciones.add(self.solucion2)
        contenedor_soluciones.add(self.solucion3)
        contenedor_soluciones.add(self.solucion4)
        
        self.add(self.label_enunciado)
        self.add(contenedor_soluciones)
        self.add(self.boton_responder)
        self.show_all()
        
    def __sincronizar_temas(self):
        pass
    
    def __obtener_siguiente_ejercicio(self, cliente_WS, id_ejercicio):
        try:
            #cliente_WS = Client(self.WSDL_URL)
            siguiente_ejercicio = cliente_WS.service.getSiguienteEjercicio(self.id_tarea, self.id_alumno, id_ejercicio, "respuesta")
        except:
            print "\n\nERROR al instanciar el SINCRONIZAR PROXY:"
            
        return siguiente_ejercicio
    
    def __responder_cb(self, boton):
        siguiente_ejercicio = self.__obtener_siguiente_ejercicio(self.cliente_WS, self.siguiente_ejercicio.idEjercicio)
        self.__actualizar_gui(siguiente_ejercicio)  
        
    def __actualizar_gui(self, siguiente_ejercicio):
        self.solucion1.set_label(siguiente_ejercicio.respuestaList.respuestaList[0].descripcion)
        self.solucion2.set_label(siguiente_ejercicio.respuestaList.respuestaList[1].descripcion)
        self.solucion3.set_label(siguiente_ejercicio.respuestaList.respuestaList[2].descripcion)
        self.solucion4.set_label(siguiente_ejercicio.respuestaList.respuestaList[3].descripcion)

        self.label_enunciado.set_label(siguiente_ejercicio.enunciado)