diff options
author | Rogelio Mita <rogeliomita@activitycentral.com> | 2013-06-25 19:50:09 (GMT) |
---|---|---|
committer | Rogelio Mita <rogeliomita@activitycentral.com> | 2013-06-25 19:50:09 (GMT) |
commit | 0febdb8535ca6f7cefc2b2904adb8f2871de29bd (patch) | |
tree | ca5d68a6359f8a90271f8c8fad2a909add3315bc | |
parent | 68655d108eb3f075dc79f485d64fe8f3131e5a09 (diff) |
Refactoring wizard and alert for temporary files existence
-rw-r--r-- | CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py | 37 | ||||
-rw-r--r-- | CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py | 38 |
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) |