Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRogelio Mita <rogeliomita@activitycentral.com>2013-08-19 15:40:54 (GMT)
committer Rogelio Mita <rogeliomita@activitycentral.com>2013-08-19 15:40:54 (GMT)
commitb6237a7c15df259cb110a409b43c13a18ec54c14 (patch)
tree8d5e402cfdf536bfd54c3565dae8016cf1d4907c
parentd23c64d5a877c99bb576d416a4c14289c338b4c0 (diff)
parentee811ccf7b9820a842f92c48483c5aeab397db68 (diff)
Merge branch 'DEV'v4.13
-rw-r--r--CeibalEncuesta/gtk2/CeibalEncuesta.activity/activity/activity.info2
-rw-r--r--CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py50
-rw-r--r--CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py12
-rw-r--r--CeibalEncuesta/gtk2/installers/CeibalEncuesta-4.13.xobin0 -> 286073 bytes
-rw-r--r--CeibalEncuesta/gtk2/installers/CeibalEncuesta_Gtk2_4.13_Installer.zipbin0 -> 217833 bytes
-rw-r--r--CeibalEncuesta/gtk2/setup.py2
6 files changed, 33 insertions, 33 deletions
diff --git a/CeibalEncuesta/gtk2/CeibalEncuesta.activity/activity/activity.info b/CeibalEncuesta/gtk2/CeibalEncuesta.activity/activity/activity.info
index 8da3ee6..47c19cf 100644
--- a/CeibalEncuesta/gtk2/CeibalEncuesta.activity/activity/activity.info
+++ b/CeibalEncuesta/gtk2/CeibalEncuesta.activity/activity/activity.info
@@ -3,6 +3,6 @@ name = CeibalEncuesta
license = GPLv2+
icon = ceibal
exec = sugar-activity CeibalEncuestaActivity.CeibalEncuesta
-activity_version = 4.12
+activity_version = 4.13
bundle_id = org.laptop.CeibalEncuesta
diff --git a/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py b/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py
index b74c1a8..be0d37d 100644
--- a/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py
+++ b/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py
@@ -426,12 +426,6 @@ class CeibalEncuesta(gtk.Window):
filechooser.connect("load", self.__save_results)
- def are_answers_empty(self, answers):
- if answers.get("finalizada", None):
- return False
-
- return True
-
def __save_results(self, widget = None, chosen_path = WORKPATH):
"""
Exporta los datos a un archivo con el formato
@@ -439,15 +433,14 @@ class CeibalEncuesta(gtk.Window):
"""
### Asegurandose de que se haya guardado toda la informaciĆ³n.
-
- self.__save_json()
-
+ 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]
@@ -456,7 +449,7 @@ class CeibalEncuesta(gtk.Window):
### Encuestados.
encuestados = enc["encuestados"][1:]
-
+
### Respuestas
respuestas = enc["groups"]
@@ -465,18 +458,18 @@ class CeibalEncuesta(gtk.Window):
for item in cabecera:
polled_dict[item] = ""
-
+
### llenando la salida para este encuestado.
result = {}
contador = 0
for encuestado in encuestados:
-
+
### polled
polled = polled_dict.copy()
for item in encuestado:
polled[cabecera[encuestado.index(item)]] = item
-
+
### answers
user = ""
for item in encuestado:
@@ -486,35 +479,41 @@ class CeibalEncuesta(gtk.Window):
answers = respuestas.get(encue, {})
- if self.are_answers_empty(answers):
+ 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']:
if field_data.get(key_to_del, None):
del field_data[key_to_del]
- result[contador] = {"polled": polled, "answers": answers}
+ result[str(contador)] = {"polled": polled, "answers": answers}
contador += 1
@@ -532,11 +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))
-
- import json
-
+
try:
archivo = open(path, "w")
+
except IOError, ioe:
dialog = My_Alert_Dialog(
parent_window = self,
@@ -567,15 +565,13 @@ class CeibalEncuesta(gtk.Window):
)
archivo.close()
- dialog = self._alert_dialog(
+ dialog = My_Alert_Dialog(
parent_window=self,
label="Encuesta Exportada Correctamente.")
+
dialog.run()
dialog.destroy()
- def _alert_dialog(self, parent_window, label):
- return My_Alert_Dialog(parent_window=parent_window, label=label)
-
def __load_encuesta_respondida(self, widget, archivo):
"""
@@ -761,9 +757,11 @@ class CeibalEncuesta(gtk.Window):
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)
diff --git a/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py b/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py
index da51b09..c58fd8a 100644
--- a/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py
+++ b/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py
@@ -251,13 +251,13 @@ class Panel(gtk.Paned):
elif accion == "Siguiente" and self.toolbar_encuesta.siguiente.active:
ceibal_encuesta = self.get_toplevel()
+ finalizada = False
if index_visible < len(grupos) - 1:
map(self.__hide_groups, grupos)
map(self.__show_groups, [grupos[index_visible + 1]])
self.box_encuesta.queue_draw()
self._window.get_vadjustment().set_value(0)
- ceibal_encuesta.copy_to_Documents()
if index_visible == len(grupos) - 2:
self.toolbar_encuesta.encuesta_actual.finalizar()
@@ -270,12 +270,14 @@ class Panel(gtk.Paned):
encuestado = user.strip()
if encuestado in ceibal_encuesta.out_dict.keys():
- ceibal_encuesta.out_dict[encuestado].update(
- {"finalizada": True})
-
+ ceibal_encuesta.out_dict[encuestado]["finalizada"] = True
+
self.toolbar_encuesta.siguiente.hide()
self.toolbar_encuesta.anterior.show()
- return
+ finalizada = True
+
+ ceibal_encuesta.copy_to_Documents()
+ if finalizada: return
self.__check_sensibility_butons()
diff --git a/CeibalEncuesta/gtk2/installers/CeibalEncuesta-4.13.xo b/CeibalEncuesta/gtk2/installers/CeibalEncuesta-4.13.xo
new file mode 100644
index 0000000..08c7f9a
--- /dev/null
+++ b/CeibalEncuesta/gtk2/installers/CeibalEncuesta-4.13.xo
Binary files differ
diff --git a/CeibalEncuesta/gtk2/installers/CeibalEncuesta_Gtk2_4.13_Installer.zip b/CeibalEncuesta/gtk2/installers/CeibalEncuesta_Gtk2_4.13_Installer.zip
new file mode 100644
index 0000000..9c89e9d
--- /dev/null
+++ b/CeibalEncuesta/gtk2/installers/CeibalEncuesta_Gtk2_4.13_Installer.zip
Binary files differ
diff --git a/CeibalEncuesta/gtk2/setup.py b/CeibalEncuesta/gtk2/setup.py
index d460af8..742c1e1 100644
--- a/CeibalEncuesta/gtk2/setup.py
+++ b/CeibalEncuesta/gtk2/setup.py
@@ -7,7 +7,7 @@ import commands
from distutils.core import setup
-APP_VERSION = "4.12"
+APP_VERSION = "4.13"
USER_BASE = site.getuserbase()