diff options
Diffstat (limited to 'CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py')
-rw-r--r-- | CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py | 86 |
1 files changed, 43 insertions, 43 deletions
diff --git a/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py b/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py index 12897a9..8f898c7 100644 --- a/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py +++ b/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py @@ -281,22 +281,19 @@ class CeibalEncuesta(gtk.Window): encuestado = user.strip() - # Entrada para encuestado - if not encuestado in self.out_dict.keys(): - self.out_dict[encuestado] = {} - # Entrada para grupo - if not self.out_dict[encuestado].get(indice_grupo, False): - self.out_dict[encuestado][indice_grupo] = {} + encuestado_id = Encuestado(encuestado).get_id() + if not self.out_dict[encuestado_id].get(indice_grupo, False): + self.out_dict[encuestado_id][indice_grupo] = {} # Entrada para pregunta - if not self.out_dict[encuestado][indice_grupo].get("fields", False): - self.out_dict[encuestado][indice_grupo]["fields"] = {} + if not self.out_dict[encuestado_id][indice_grupo].get("fields", False): + self.out_dict[encuestado_id][indice_grupo]["fields"] = {} - self.out_dict[encuestado][indice_grupo]["name"] = grupo_name + self.out_dict[encuestado_id][indice_grupo]["name"] = grupo_name + + self.out_dict[encuestado_id][indice_grupo]["fields"][indice_pregunta] = dict_pregunta - self.out_dict[encuestado][indice_grupo]["fields"][indice_pregunta] = dict_pregunta - def save_text(self): self.__save_json() @@ -315,22 +312,23 @@ class CeibalEncuesta(gtk.Window): encuestado = user.strip() + encuestado_id = Encuestado(encuestado).get_id() # Entrada para encuestado - if not encuestado in self.out_dict.keys(): - self.out_dict[encuestado] = {} + if not encuestado_id in self.out_dict.keys(): + self.out_dict[encuestado_id] = {} # Entrada para grupo - if not self.out_dict[encuestado].get(indice_grupo, False): - self.out_dict[encuestado][indice_grupo] = {} + if not self.out_dict[encuestado_id].get(indice_grupo, False): + self.out_dict[encuestado_id][indice_grupo] = {} # Entrada para pregunta - if not self.out_dict[encuestado][indice_grupo].get("fields", False): - self.out_dict[encuestado][indice_grupo]["fields"] = {} + if not self.out_dict[encuestado_id][indice_grupo].get("fields", False): + self.out_dict[encuestado_id][indice_grupo]["fields"] = {} + + self.out_dict[encuestado_id][indice_grupo]["name"] = grupo_name - self.out_dict[encuestado][indice_grupo]["name"] = grupo_name + self.out_dict[encuestado_id][indice_grupo]["fields"][indice_pregunta] = dict_pregunta - self.out_dict[encuestado][indice_grupo]["fields"][indice_pregunta] = dict_pregunta - self.__save_json() def __new_selection(self, widget, encuestado): @@ -340,7 +338,8 @@ class CeibalEncuesta(gtk.Window): grupo = GrupoDeEncuestados() encuestado_str = encuestado - tipo = Encuestado(encuestado_str).get_tipo_grupo() + encuestado = Encuestado(encuestado_str) + tipo = encuestado.get_tipo_grupo() grupo.set_tipo(int(tipo)) encuesta_actual = Encuesta() encuesta_actual.set_grupo(grupo) @@ -355,18 +354,19 @@ class CeibalEncuesta(gtk.Window): self.out_dict = {} self.out_dict = enc["groups"] - if self.out_dict.get(encuestado, False): - self.panel.update(self.out_dict[encuestado]) + encuestado_id = encuestado.get_id() + if self.out_dict.get(encuestado_id, False): + self.panel.update(self.out_dict[encuestado_id]) else: - self.out_dict[encuestado] = {} + self.out_dict[encuestado_id] = {} self.panel.update({}) self.panel.toolbar_encuesta.encuesta_actual = self.encuesta_actual self.menu_bar.hide() self.infowidget.hide() - self.infowidget.set_encuestado(encuestado) + self.infowidget.set_encuestado(encuestado_id) combo_box = getattr(self.panel.lista, "combo", None) if combo_box: @@ -435,13 +435,13 @@ class CeibalEncuesta(gtk.Window): ### Asegurandose de que se haya guardado toda la informaciĆ³n. self.copy_to_Documents() - + import json import codecs archivo = codecs.open(self.path, "r", "utf-8") enc = json.JSONDecoder("utf-8").decode(archivo.read()) - + ### Cabecera para lista de encuestados. cabecera = enc["encuestados"][0] @@ -450,7 +450,7 @@ class CeibalEncuesta(gtk.Window): ### Encuestados. encuestados = enc["encuestados"][1:] - + ### Respuestas respuestas = enc["groups"] @@ -481,32 +481,32 @@ class CeibalEncuesta(gtk.Window): if not answers.get("finalizada", None): continue - + if answers.get("finalizada", None): del answers['finalizada'] for group_order, fields in answers.iteritems(): for field_order, field_data in fields['fields'].iteritems(): - + if field_data.get('img', False): del field_data['img'] - + selected = field_data.get('default', []) field_data['answer'] = {} - + if len(selected): for option_id, value in field_data.get("options", {}).iteritems(): if option_id in selected: selected_opt = field_data['options'][option_id] - + if "Image" in field_data['widget_type']: del selected_opt['img'] - + elif "TextInput" in field_data['widget_type']: new_text = value.get("newtext", "") value['text'] = new_text del value['newtext'] - + field_data['answer'].update({"%s" % option_id: selected_opt}) for key_to_del in ['dependence', 'options', 'default']: @@ -531,10 +531,10 @@ class CeibalEncuesta(gtk.Window): poll_id = enc.get("poll_id", "") hash = int(time.time() * 1000) path = os.path.join(chosen_path, "%s_%s.poll_result" % (poll_id, hash)) - + try: archivo = open(path, "w") - + except IOError, ioe: dialog = My_Alert_Dialog( parent_window = self, @@ -568,7 +568,7 @@ class CeibalEncuesta(gtk.Window): dialog = My_Alert_Dialog( parent_window=self, label="Encuesta Exportada Correctamente.") - + dialog.run() dialog.destroy() @@ -747,21 +747,21 @@ class CeibalEncuesta(gtk.Window): "poll_id": poll_id, "pollster_id": pollster_id, "pollster_username": pollster_username} - + self.poll_id = getattr(self, "poll_id", poll_id) self.path = os.path.join(os.path.dirname(self.path), "%s.encuesta" % self.poll_id) import json archivo = open(self.path, "w") - archivo.write(json.dumps(salida)) + archivo.write(json.dumps(salida, indent=4)) archivo.close() def copy_to_Documents(self): - + self.__save_json() - + final_path = os.path.join(WORKPATH, os.path.basename(self.path)) - + import shutil shutil.copyfile(self.path, final_path) |