diff options
author | Rogelio Mita <rogeliomita@activitycentral.com> | 2013-11-08 20:13:05 (GMT) |
---|---|---|
committer | Rogelio Mita <rogeliomita@activitycentral.com> | 2013-11-08 20:23:11 (GMT) |
commit | d2cabb41b054ade9dec399fdabeb3d322d054bda (patch) | |
tree | 52476b61c6ff13a0aa15f1a83a8543b0cd748a21 | |
parent | f74df6d308bbf57467de3210d8e78289053e5721 (diff) |
Fixed for monitoreo kind of poll
-rw-r--r-- | CeibalEncuesta/gtk2/CeibalEncuesta/Globales.py | 7 | ||||
-rw-r--r-- | CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py | 24 | ||||
-rw-r--r-- | CeibalEncuesta/gtk2/CeibalEncuesta/tests.py | 8 |
3 files changed, 23 insertions, 16 deletions
diff --git a/CeibalEncuesta/gtk2/CeibalEncuesta/Globales.py b/CeibalEncuesta/gtk2/CeibalEncuesta/Globales.py index a679c01..b04c7b5 100644 --- a/CeibalEncuesta/gtk2/CeibalEncuesta/Globales.py +++ b/CeibalEncuesta/gtk2/CeibalEncuesta/Globales.py @@ -21,6 +21,7 @@ import csv import os import chardet +import re def csv_validate(archivo): @@ -179,9 +180,9 @@ class Encuestado(object): self.encuestado_str = encuestado_str def get_tipo_grupo(self): - first = self.encuestado_str.split()[:-5] - second = self.encuestado_str[len(" ".join(first)) + 1:] - tipo_grupo = second.split()[3] + match = re.search(r'\w+ (?P<num_esc>\d)+', self.encuestado_str) + second = self.encuestado_str[match.end() + 1:] + tipo_grupo = second.split()[2] return int(tipo_grupo) def get_id(self): diff --git a/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py b/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py index 913b8ad..4bdbe96 100644 --- a/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py +++ b/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py @@ -28,7 +28,7 @@ import gobject import pango import Globales as G -from Globales import GrupoDeEncuestados +from Globales import GrupoDeEncuestados, Encuestado HOME = os.environ["HOME"] WORKPATH = os.path.join(HOME, "CeibalEncuesta") @@ -81,7 +81,7 @@ class Panel(gtk.Paned): gtk.Paned.__init__(self) self.modify_bg(0, gdk.color_parse("#d8eeb1")) - + self.marca_ultima_pregunta_desactivada = False self.encuestados = None # mantiene csv para guardarlo como tal self.lista = None # Lista() Lista de encuestados @@ -272,8 +272,9 @@ class Panel(gtk.Paned): user += " %s" % item encuestado = user.strip() - if encuestado in ceibal_encuesta.out_dict.keys(): - ceibal_encuesta.out_dict[encuestado]["finalizada"] = True + encuestado_id = Encuestado(encuestado).get_id() + if encuestado_id in ceibal_encuesta.out_dict.keys(): + ceibal_encuesta.out_dict[encuestado_id]["finalizada"] = True self.toolbar_encuesta.siguiente.hide() self.toolbar_encuesta.anterior.show() @@ -583,12 +584,12 @@ class Panel(gtk.Paned): """ Muestra la lista en encuestas de tipo general. """ - + self._window.hide() self.scroll_list.get_parent().show_all() self.scroll_list.set_size_request(200,-1) self._window.show() - + def __new_encuestado(self, widget, encuestado): """ Cuando se crea un nuevo encuestado, este debe agregarse @@ -848,12 +849,11 @@ class Lista(gtk.TreeView): self.seleccionar_ultimo() return - encuestado = encuestados[0] + encuestados = filter(lambda x: len(x) > 0, encuestados) + encuestado = encuestados.pop() self.modelo.append( encuestado ) - encuestados.remove(encuestado) - gobject.idle_add(self.__run_add_encuestado, encuestados) def __seleccionar_primero(self, widget = None): @@ -921,15 +921,15 @@ class Grupo(gtk.Frame): def __init__(self, indice_grupo, grupo): gtk.Frame.__init__(self) - + label = gtk.Label(grupo.get('name', '')) label.modify_fg(0, gdk.Color(0, 0, 0)) self.set_label_widget(label) - + desc = pango.FontDescription(GRADO_FONT_SIZE) desc.set_weight(pango.WEIGHT_BOLD) label.modify_font(desc) - + self.indice = indice_grupo # indice del grupo en la encuesta self.grupo = grupo.copy() # Diccionario del grupo en la encuesta diff --git a/CeibalEncuesta/gtk2/CeibalEncuesta/tests.py b/CeibalEncuesta/gtk2/CeibalEncuesta/tests.py index 8b1c972..e1c1f3d 100644 --- a/CeibalEncuesta/gtk2/CeibalEncuesta/tests.py +++ b/CeibalEncuesta/gtk2/CeibalEncuesta/tests.py @@ -126,7 +126,13 @@ class EncuestaTests(unittest.TestCase): class EncuestadoTests(unittest.TestCase): def test_get_tipo_grupo(self): - encuestado_str = "1101236 MONTEVIDEO A 236 2 A 1 0" + encuestado_str = u"1101236 MONTEVIDéO A 236 2 A 1 0" + + encuestado = Encuestado(encuestado_str) + tipo_grupo = encuestado.get_tipo_grupo() + self.assertEqual(1, tipo_grupo) + + encuestado_str = "1101236 MONTEVíDEO H J K 236 2 B 1 46415922 Matías Test" encuestado = Encuestado(encuestado_str) tipo_grupo = encuestado.get_tipo_grupo() |