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-07-08 21:41:35 (GMT)
committer Rogelio Mita <rogeliomita@activitycentral.com>2013-07-08 21:41:35 (GMT)
commit69629bc99361a3e13e0fbcdcd0c8ceeec5244dc8 (patch)
treeab67092373afa3606148749c46c510224d4f65ba
parentd99649b5660e04700b268cc5334800c29b3d742a (diff)
poll completion behavior
-rw-r--r--CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py11
-rw-r--r--CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py25
-rw-r--r--CeibalEncuesta/gtk2/CeibalEncuesta/tests.py15
-rwxr-xr-xCeibalEncuesta/gtk3/CeibalEncuesta/CeibalEncuesta.py12
-rwxr-xr-xCeibalEncuesta/gtk3/CeibalEncuesta/Widgets.py26
-rw-r--r--CeibalEncuesta/gtk3/CeibalEncuesta/tests.py15
6 files changed, 92 insertions, 12 deletions
diff --git a/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py b/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py
index 0358a28..c375822 100644
--- a/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py
+++ b/CeibalEncuesta/gtk2/CeibalEncuesta/CeibalEncuesta.py
@@ -61,6 +61,15 @@ gobject.threads_init()
gdk.threads_init()
+class Encuesta(object):
+
+ def __init__(self):
+ self.finalizada = False
+
+ def finalizar(self):
+ self.finalizada = True
+
+
class CeibalEncuesta(gtk.Window):
__gsignals__ = {
@@ -332,6 +341,8 @@ class CeibalEncuesta(gtk.Window):
self.out_dict[encuestado] = {}
self.panel.update({})
+ self.panel.toolbar_encuesta.encuesta_actual = Encuesta()
+
self.menu_bar.hide()
self.infowidget.hide()
self.infowidget.set_encuestado(encuestado)
diff --git a/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py b/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py
index 27df02b..75e37d3 100644
--- a/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py
+++ b/CeibalEncuesta/gtk2/CeibalEncuesta/Widgets.py
@@ -177,10 +177,7 @@ class Panel(gtk.Paned):
else:
self.toolbar_encuesta.anterior.show_now()
- if index_visible == grupos.index(grupos[-1]):
- self.toolbar_encuesta.siguiente.hide()
- else:
- self.toolbar_encuesta.siguiente.show_now()
+ self.toolbar_encuesta.siguiente.show_now()
self.toolbar_encuesta.siguiente.emit("update_status", self)
@@ -245,6 +242,23 @@ class Panel(gtk.Paned):
self._window.get_vadjustment().set_value(0)
elif accion == "Siguiente" and self.toolbar_encuesta.siguiente.active:
+ if index_visible == len(grupos) - 1:
+ self.toolbar_encuesta.encuesta_actual.finalizar()
+ map(self.__hide_groups, grupos)
+
+ self.toolbar_encuesta.anterior.hide()
+ self.toolbar_encuesta.siguiente.hide()
+
+ align = gtk.Alignment(0.5, 0, 0, 0)
+ label = gtk.Label("Encuesta finalizada")
+ pangoFont = pango.FontDescription(QUESTION_FONT_SIZE)
+ label.modify_font(pangoFont)
+ align.add(label)
+ self.box_encuesta.pack_start(align, False, False, 0)
+ align.show_all()
+
+ return
+
if index_visible < len(grupos)-1:
map(self.__hide_groups, grupos)
map(self.__show_groups, [grupos[index_visible + 1]])
@@ -1663,6 +1677,7 @@ class ToolbarEncuesta(gtk.HBox):
gtk.HBox.__init__(self)
+ self.encuesta_actual = None
self.anterior = PageButton(
"",
img=PREV_PAGE_ACTIVE,
@@ -1699,7 +1714,7 @@ class ToolbarEncuesta(gtk.HBox):
self.emit("accion", widget.accion)
panel = self.get_toplevel().panel
- if len(panel.visible_questions()) == 0:
+ if not self.encuesta_actual.finalizada and len(panel.visible_questions()) == 0:
self.__button_clicked(widget)
diff --git a/CeibalEncuesta/gtk2/CeibalEncuesta/tests.py b/CeibalEncuesta/gtk2/CeibalEncuesta/tests.py
index c804742..e88c306 100644
--- a/CeibalEncuesta/gtk2/CeibalEncuesta/tests.py
+++ b/CeibalEncuesta/gtk2/CeibalEncuesta/tests.py
@@ -3,7 +3,7 @@ import os
import shutil
import glob
-from CeibalEncuesta import CeibalEncuesta
+from CeibalEncuesta import CeibalEncuesta, Encuesta
WORKPATH = 'test_files'
TEMPPATH = os.path.join(WORKPATH, "fixture_enc_simple.encuesta")
@@ -71,5 +71,18 @@ class NoBorraTempAlExportarTest(unittest.TestCase):
os.remove(WORKPATH + '/' + self.fixture_tmp)
+class ComportamientoFinalizar(unittest.TestCase):
+ """Este test hace referencia al issue #4144"""
+
+ def test_queda_finalizada_al_finalizar(self):
+
+ encuesta = Encuesta()
+ self.assertFalse(encuesta.finalizada)
+
+ encuesta.finalizar()
+
+ self.assertTrue(encuesta.finalizada)
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/CeibalEncuesta/gtk3/CeibalEncuesta/CeibalEncuesta.py b/CeibalEncuesta/gtk3/CeibalEncuesta/CeibalEncuesta.py
index 3d1fe58..3ef427b 100755
--- a/CeibalEncuesta/gtk3/CeibalEncuesta/CeibalEncuesta.py
+++ b/CeibalEncuesta/gtk3/CeibalEncuesta/CeibalEncuesta.py
@@ -72,6 +72,16 @@ context.add_provider_for_screen(
GObject.threads_init()
Gdk.threads_init()
+
+class Encuesta(object):
+
+ def __init__(self):
+ self.finalizada = False
+
+ def finalizar(self):
+ self.finalizada = True
+
+
class CeibalEncuesta(Gtk.Window):
def __init__(self):
@@ -327,6 +337,8 @@ class CeibalEncuesta(Gtk.Window):
self.out_dict[encuestado] = {}
self.panel.update({})
+ self.panel.toolbar_encuesta.encuesta_actual = Encuesta()
+
self.menu_bar.hide()
self.infowidget.hide()
self.infowidget.set_encuestado(encuestado)
diff --git a/CeibalEncuesta/gtk3/CeibalEncuesta/Widgets.py b/CeibalEncuesta/gtk3/CeibalEncuesta/Widgets.py
index 4e46b24..1ea40a5 100755
--- a/CeibalEncuesta/gtk3/CeibalEncuesta/Widgets.py
+++ b/CeibalEncuesta/gtk3/CeibalEncuesta/Widgets.py
@@ -179,10 +179,7 @@ class Panel(Gtk.Paned):
else:
self.toolbar_encuesta.anterior.show_now()
- if index_visible == grupos.index(grupos[-1]):
- self.toolbar_encuesta.siguiente.hide()
- else:
- self.toolbar_encuesta.siguiente.show_now()
+ self.toolbar_encuesta.siguiente.show_now()
self.toolbar_encuesta.siguiente.emit("update_status", self)
@@ -246,6 +243,24 @@ class Panel(Gtk.Paned):
self._window.get_vadjustment().set_value(0)
elif accion == "Siguiente" and self.toolbar_encuesta.siguiente.active:
+ if index_visible == len(grupos) - 1:
+ self.toolbar_encuesta.encuesta_actual.finalizar()
+ map(self.__hide_groups, grupos)
+
+ self.toolbar_encuesta.anterior.hide()
+ self.toolbar_encuesta.siguiente.hide()
+
+ align = Gtk.Alignment()
+ align.set(0.5, 0, 0, 0)
+ label = Gtk.Label("Encuesta finalizada")
+ pangoFont = Pango.FontDescription(QUESTION_FONT_SIZE)
+ label.modify_font(pangoFont)
+ align.add(label)
+ self.box_encuesta.pack_start(align, True, False, 0)
+ align.show_all()
+
+ return
+
if index_visible < len(grupos)-1:
map(self.__hide_groups, grupos)
map(self.__show_groups, [grupos[index_visible + 1]])
@@ -1651,6 +1666,7 @@ class ToolbarEncuesta(Gtk.HBox):
Gtk.HBox.__init__(self)
+ self.encuesta_actual = None
self.anterior = PageButton(
"",
img=PREV_PAGE_ACTIVE,
@@ -1688,7 +1704,7 @@ class ToolbarEncuesta(Gtk.HBox):
self.emit("accion", widget.accion)
panel = self.get_toplevel().panel
- if len(panel.visible_questions()) == 0:
+ if not self.encuesta_actual.finalizada and len(panel.visible_questions()) == 0:
self.__button_clicked(widget)
diff --git a/CeibalEncuesta/gtk3/CeibalEncuesta/tests.py b/CeibalEncuesta/gtk3/CeibalEncuesta/tests.py
index c804742..e88c306 100644
--- a/CeibalEncuesta/gtk3/CeibalEncuesta/tests.py
+++ b/CeibalEncuesta/gtk3/CeibalEncuesta/tests.py
@@ -3,7 +3,7 @@ import os
import shutil
import glob
-from CeibalEncuesta import CeibalEncuesta
+from CeibalEncuesta import CeibalEncuesta, Encuesta
WORKPATH = 'test_files'
TEMPPATH = os.path.join(WORKPATH, "fixture_enc_simple.encuesta")
@@ -71,5 +71,18 @@ class NoBorraTempAlExportarTest(unittest.TestCase):
os.remove(WORKPATH + '/' + self.fixture_tmp)
+class ComportamientoFinalizar(unittest.TestCase):
+ """Este test hace referencia al issue #4144"""
+
+ def test_queda_finalizada_al_finalizar(self):
+
+ encuesta = Encuesta()
+ self.assertFalse(encuesta.finalizada)
+
+ encuesta.finalizar()
+
+ self.assertTrue(encuesta.finalizada)
+
+
if __name__ == '__main__':
unittest.main()