Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflavio <fdanesse@gmail.com>2013-08-01 21:53:17 (GMT)
committer Gonzalo Odiard <godiard@gmail.com>2013-09-02 17:50:01 (GMT)
commitf7f7e718642855220e4c96251c285655288615b8 (patch)
tree9c3079b00c5773b36e088dfbc40b4914b240f43f
parent388d350ecd6865c0dd646a19238c3a62706138dc (diff)
Modularización de SelectCanvas
-rw-r--r--Widgets.py68
-rw-r--r--poll.py26
2 files changed, 82 insertions, 12 deletions
diff --git a/Widgets.py b/Widgets.py
index 8180dd6..545085c 100644
--- a/Widgets.py
+++ b/Widgets.py
@@ -24,8 +24,10 @@ from gettext import gettext as _
from gi.repository import Gtk
from gi.repository import GdkPixbuf
-from sugar3.graphics.alert import NotifyAlert
from sugar3 import mime
+from sugar3 import profile
+from sugar3.graphics import style
+from sugar3.graphics.alert import NotifyAlert
from sugar3.graphics.objectchooser import ObjectChooser
from sugar3.graphics.toolbarbox import ToolbarBox
@@ -464,3 +466,67 @@ class OptionsCanvas(Gtk.Box):
self.poll_activity.add_alert(alert)
alert.connect('response', self.poll_activity._alert_cancel_cb)
alert.show()
+
+class SelectCanvas(Gtk.Box):
+
+ def __init__(self, poll_activity):
+
+ Gtk.Box.__init__(self, orientation = Gtk.Orientation.VERTICAL)
+
+ poll_activity._current_view = 'select'
+
+ label = Gtk.Label()
+ label.set_markup('<big><b>%s</b></big>' % _('Choose a Poll'))
+ self.pack_start(label, False, False, 0)
+
+ poll_selector_box = Gtk.VBox()
+
+ scroll = Gtk.ScrolledWindow()
+
+ scroll.set_policy(
+ Gtk.PolicyType.AUTOMATIC,
+ Gtk.PolicyType.NEVER)
+
+ scroll.add_with_viewport(poll_selector_box)
+
+ self.pack_start(scroll, True, True, 10)
+
+ row_number = 0
+
+ for poll in poll_activity._polls:
+ sha = poll.sha
+
+ if row_number % 2:
+ row_bgcolor = style.COLOR_WHITE.get_int()
+
+ else:
+ row_bgcolor = style.COLOR_SELECTION_GREY.get_int()
+
+ row_number += 1
+
+ poll_row = Gtk.HBox()
+ poll_selector_box.pack_start(poll_row, False, False, 10)
+
+ title = Gtk.Label(label=poll.title + ' (' + poll.author + ')')
+ align = Gtk.Alignment.new(0, 0.5, 0, 0)
+ align.add(title)
+ poll_row.pack_start(align, True, True, 10)
+
+ if poll.active:
+ button = Gtk.Button(_('VOTE'))
+
+ else:
+ button = Gtk.Button(_('SEE RESULTS'))
+
+ button.connect('clicked', poll_activity._select_poll_button_cb, sha)
+ poll_row.pack_start(button, False, False, 10)
+
+ if poll.author == profile.get_nick_name():
+ button = Gtk.Button(_('DELETE'))
+ button.connect('clicked', poll_activity._delete_poll_button_cb, sha)
+ poll_row.pack_start(button, False, False, 10)
+
+ poll_row.pack_start(Gtk.Label(
+ poll.createdate.strftime('%d/%m/%y')), False, False, 10)
+
+ self.show_all()
diff --git a/poll.py b/poll.py
index 047f3de..dee2a28 100644
--- a/poll.py
+++ b/poll.py
@@ -46,8 +46,6 @@ from dbus.gobject_service import ExportedGObject
from sugar3.presence.tubeconn import TubeConnection'''
from sugar3.activity import activity
-
-from sugar3.graphics import style
from sugar3.graphics.alert import NotifyAlert
from sugar3.presence import presenceservice
@@ -77,6 +75,7 @@ RADIO_SIZE = 32'''
from Widgets import NewPollCanvas
from Widgets import Toolbar
from Widgets import OptionsCanvas
+from Widgets import SelectCanvas
class PollBuilder(activity.Activity):
"""
@@ -148,14 +147,15 @@ class PollBuilder(activity.Activity):
# toolbar.help_button.connect('clicked', self._button_lessonplan_cb)
self.set_toolbar_box(toolbar)
- self.set_canvas(self._select_canvas())
+ #self.set_canvas(self._select_canvas())
+ self.set_canvas(SelectCanvas(self))
self.show_all()
self.poll_session = None # PollSession
#self.connect('shared', self._shared_cb)
#self.connect('joined', self._joined_cb)
-
+ '''
def _select_canvas(self):
"""
Show the select canvas where children choose an existing poll.
@@ -221,7 +221,7 @@ class PollBuilder(activity.Activity):
mainbox.show_all()
- return mainbox
+ return mainbox'''
'''
def set_root(self, widget):
@@ -310,7 +310,8 @@ class PollBuilder(activity.Activity):
f.close()
- self.set_canvas(self._select_canvas())
+ #self.set_canvas(self._select_canvas())
+ self.set_canvas(SelectCanvas(self))
def write_file(self, file_path):
"""
@@ -450,7 +451,7 @@ class PollBuilder(activity.Activity):
self._has_voted = False
self.set_canvas(self._poll_canvas())
- def __delete_poll_button_cb(self, button, sha):
+ def _delete_poll_button_cb(self, button, sha):
"""
A DELETE button was clicked.
"""
@@ -464,11 +465,12 @@ class PollBuilder(activity.Activity):
self._poll = Poll(activity=self)
self.current_vote = None
- for poll in self._polls.copy():
+ for poll in self._polls:
if poll.sha == sha:
self._polls.remove(poll)
- self.set_canvas(self._select_canvas())
+ #self.set_canvas(self._select_canvas())
+ self.set_canvas(SelectCanvas(self))
'''
def _load_image(self, pixbuf):
@@ -662,7 +664,8 @@ class PollBuilder(activity.Activity):
Show Choose a Poll canvas
"""
- self.set_canvas(self._select_canvas())
+ #self.set_canvas(self._select_canvas())
+ self.set_canvas(SelectCanvas(self))
def __button_new_clicked(self, button):
"""
@@ -825,7 +828,8 @@ class PollBuilder(activity.Activity):
self.set_root(self._poll_canvas())
elif lesson_return == 'select':
- self.set_root(self._select_canvas())
+ #self.set_root(self._select_canvas())
+ self.set_canvas(SelectCanvas(self))
elif lesson_return == 'build':
self.set_root(self._build_canvas())