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-06-25 19:50:09 (GMT)
committer Rogelio Mita <rogeliomita@activitycentral.com>2013-06-25 19:50:09 (GMT)
commit0febdb8535ca6f7cefc2b2904adb8f2871de29bd (patch)
treeca5d68a6359f8a90271f8c8fad2a909add3315bc
parent68655d108eb3f075dc79f485d64fe8f3131e5a09 (diff)
Refactoring wizard and alert for temporary files existence
-rw-r--r--CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py37
-rw-r--r--CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py38
2 files changed, 61 insertions, 14 deletions
diff --git a/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py b/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py
index 5fbb358..2411457 100644
--- a/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py
+++ b/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py
@@ -34,7 +34,7 @@ import gobject
from Widgets import Panel
from Widgets import InfoWidget
from Widgets import My_FileChooser
-from Widgets import My_Alert_Dialog
+from Widgets import My_Alert_Dialog, My_Alert_Dialog3
from Widgets import Wizard
import Globales as G
@@ -138,7 +138,7 @@ class CeibalEncuesta(gtk.Window):
response = dialog.run()
if response == gtk.RESPONSE_CANCEL:
- pass
+ self.emit("destroy")
else:
encuesta_nueva = dialog.label_1.get_text()
@@ -146,12 +146,14 @@ class CeibalEncuesta(gtk.Window):
encuesta_anterior = dialog.label_3.get_text()
if encuesta_nueva and lista and not encuesta_anterior:
- self.__load_encuesta(None, encuesta_nueva)
+ continue_ = self.__load_encuesta(None, encuesta_nueva)
+ if not continue_:
+ reset = True
+ else:
+ while gtk.events_pending():
+ gtk.main_iteration()
- while gtk.events_pending():
- gtk.main_iteration()
-
- self.__load_encuestados(None, lista)
+ self.__load_encuestados(None, lista)
elif encuesta_anterior and not encuesta_nueva and not lista:
self.__load_encuesta_respondida(None, encuesta_anterior)
@@ -601,6 +603,7 @@ class CeibalEncuesta(gtk.Window):
Carga una encuesta almacenada en
un archivo json o shelve.
"""
+ global BACKUP_PATH
if os.path.exists(TEMPPATH):
os.remove(TEMPPATH)
@@ -659,6 +662,24 @@ class CeibalEncuesta(gtk.Window):
self.poll_id = poll_id
+ bck_path = BACKUP_PATH + "/%s.encuesta" % self.poll_id
+ if os.path.exists(bck_path):
+ msg = """
+ Existe un archivo temporal para esta encuesta en %s,
+ si desea recuperarlo, debe utilizar la opcion 'seleccionar encuesta anterior' del asistente.
+ Pero si desea continuar, este archivo serĂ¡ remplazado.""" % bck_path
+ dialog = My_Alert_Dialog3(
+ parent_window = self.get_toplevel(), label = msg)
+
+ response = dialog.run()
+
+ if gtk.ResponseType(response) != gtk.RESPONSE_ACCEPT:
+ dialog.destroy()
+ return False
+
+ dialog.destroy()
+ os.remove(bck_path)
+
self.panel.load_encuesta(encuesta)
dict = {
@@ -676,6 +697,8 @@ class CeibalEncuesta(gtk.Window):
self.__check_sensitive()
+ return True
+
def __check_sensitive(self):
if self.panel.encuesta and self.panel.lista:
diff --git a/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py b/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py
index 244c32f..50ec6b2 100644
--- a/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py
+++ b/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py
@@ -1843,7 +1843,6 @@ class GeneralWidget(gtk.VBox):
self.scroll_list.set_policy(
gtk.POLICY_AUTOMATIC,
gtk.POLICY_AUTOMATIC)
- # self.scroll_list.add_with_viewport(self.lista)
self.pack_start(self.scroll_list, True, True, 0)
@@ -2048,7 +2047,9 @@ class Wizard(gtk.Dialog):
flags = gtk.DIALOG_MODAL,
buttons = (
"Proceder", gtk.RESPONSE_ACCEPT,
- "Cancelar", gtk.RESPONSE_CANCEL))
+ "Salir", gtk.RESPONSE_CANCEL,
+ )
+ )
self.modify_bg(0, gdk.color_parse("#d8eeb1"))
@@ -2071,7 +2072,7 @@ class Wizard(gtk.Dialog):
frame0.add(box0)
frame = gtk.Frame()
- frame.set_label("Seleccionar Nueva Encuesta. (archivo *.json)")
+ frame.set_label("Seleccionar modelo de encuesta. (archivo *.json)")
box = gtk.HBox()
box.pack_start(abrirencuesta, False, False, 10)
box.pack_start(self.label_1, False, False, 0)
@@ -2081,7 +2082,7 @@ class Wizard(gtk.Dialog):
box0.pack_start(frame, False, False, 10)
frame = gtk.Frame()
- frame.set_label("Seleccionar Nueva Lista. (archivo *.csv)")
+ frame.set_label("Seleccionar lista a encuestar. (archivo *.csv)")
box = gtk.HBox()
box.pack_start(abrirlista, False, False, 10)
box.pack_start(self.label_2, False, False, 0)
@@ -2091,19 +2092,21 @@ class Wizard(gtk.Dialog):
box0.pack_start(frame, False, False, 10)
vbox_base = gtk.VBox()
- vbox_base.pack_start(frame0, False, False, 30)
+ vbox_base.pack_start(gtk.Label("Nuevas encuestas"), False, False, 2)
+ vbox_base.pack_start(frame0, False, False, 10)
frame0.show_all()
frame = gtk.Frame()
- frame.set_label("Seleccionar Encuesta Anterior. (archivo *.encuesta)")
+ frame.set_label("Seleccionar encuesta desde archivo temporal. (archivo *.encuesta)")
box = gtk.HBox()
box.pack_start(cargarencuesta, False, False, 10)
box.pack_start(self.label_3, False, False, 0)
frame.add(box)
frame.show_all()
- vbox_base.pack_start(frame, False, False, 20)
+ vbox_base.pack_start(gtk.Label("Encuestas inconclusas"), False, False, 2)
+ vbox_base.pack_start(frame, False, False, 10)
scroll = gtk.ScrolledWindow()
@@ -2247,3 +2250,24 @@ class My_Alert_Dialog2(gtk.Dialog):
self.vbox.pack_start(label, True, True, 0)
+
+class My_Alert_Dialog3(gtk.Dialog):
+
+ def __init__(self, parent_window = None, label = ""):
+
+ gtk.Dialog.__init__(
+ self, title = "ATENCION !",
+ parent = parent_window,
+ flags = gtk.DIALOG_MODAL,
+ buttons = (
+ "Reemplazar", gtk.RESPONSE_ACCEPT,
+ "Volver al asistente", gtk.RESPONSE_CANCEL)
+ )
+
+ self.set_default_response(gtk.RESPONSE_CANCEL)
+ label = gtk.Label(label)
+ label.show()
+
+ self.set_border_width(10)
+
+ self.vbox.pack_start(label, True, True, 0)