Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/activity.py
diff options
context:
space:
mode:
Diffstat (limited to 'activity.py')
-rw-r--r--activity.py133
1 files changed, 70 insertions, 63 deletions
diff --git a/activity.py b/activity.py
index 8df4538..38e37cd 100644
--- a/activity.py
+++ b/activity.py
@@ -1,4 +1,6 @@
-# Copyright 2013 Elena Ramos, Vladimir Espinola
+# -*- coding: utf-8 -*-
+# Copyright 2013 Elena Ramos
+# Copyright 2013 Vladimir Espinola
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -14,13 +16,13 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-""" Elegir Activity: A case study for developing an activity."""
import gtk
import logging
-
+import gobject
+import random
+from datetime import datetime
from gettext import gettext as _
-
from sugar.activity import activity
from sugar.graphics.toolbarbox import ToolbarBox
from sugar.activity.widgets import ActivityButton
@@ -28,28 +30,18 @@ from sugar.activity.widgets import ActivityToolbox
from sugar.activity.widgets import TitleEntry
from sugar.activity.widgets import StopButton
from sugar.activity.widgets import ShareButton
-
-#import gtk
-import gobject
-import random
from ConfigParser import SafeConfigParser
-
from subprocess import Popen
class ElegirActivity(activity.Activity):
- """ElegirActivity class as specified in activity.info"""
-
def __init__(self, handle):
- """Set up the elegir activity."""
+
activity.Activity.__init__(self, handle)
- # we do not have collaboration features
- # make the share option insensitive
self.max_participants = 1
- # toolbar with the new toolbar redesign
toolbar_box = ToolbarBox()
activity_button = ActivityButton(self)
@@ -74,85 +66,100 @@ class ElegirActivity(activity.Activity):
toolbar_box.toolbar.insert(stop_button, -1)
stop_button.show()
- self.set_toolbar_box(toolbar_box)# hereda de la clase principal
+ self.set_toolbar_box(toolbar_box)
toolbar_box.show()
- vbox = gtk.VBox()
+ image = gtk.Image()
+ vbox = gtk.VBox()
hbox = gtk.HBox()
self.set_canvas(vbox)
-
- self.puntaje=0
- self.numero=random.randint(1,69)# pregunta seleccionada al azar
- self.anterior=self.numero
- self.parser = SafeConfigParser()
- self.parser.read('config.ini')
- self.total=0
- Popen(['espeak', '-v', 'es', self.parser.get('pregunta'+str(self.numero), 'enunciado')])
-
- image = gtk.Image()
- image.set_from_file(self.parser.get('pregunta'+str(self.numero), 'imagen'))
- button_1 = gtk.Button(self.parser.get('pregunta'+str(self.numero), 'correcta'))
- button_2 = gtk.Button(self.parser.get('pregunta'+str (self.numero), 'incorrecta2'))
- button_3 = gtk.Button(self.parser.get('pregunta'+str (self.numero), 'incorrecta1'))
- button_0 = gtk.Button('click para saber tu puntaje')
+ button_0 = gtk.Button()
+ button_1 = gtk.Button()
+ button_2 = gtk.Button()
+ button_3 = gtk.Button()
- button_1.connect('clicked',self.__cambiar_imagen_cb, button_2,button_3,button_0,image)
- button_2.connect('clicked',self.__cambiar_imagen_cb, button_3,button_1,button_0,image)
- button_3.connect('clicked',self.__cambiar_imagen_cb, button_2,button_1,button_0,image)
- button_0.connect('clicked',self.__decir_puntaje_cb)
-
vbox.add(button_0)
vbox.add(image)
vbox.add(hbox)
hbox.add(button_1)
hbox.add(button_2)
hbox.add(button_3)
-
-
vbox.show_all()
- '''
- image.show()
- hbox.show()
- button_1.show()
- button_2.show()
- button_3.show()
- button_0.show()
- '''
-
+ try:
+ self.puntaje=self.metadata["puntaje"]
+ self.total=self.metadata["total"]
+ self.numero=self.metadata["numero"]
+ self.anterior=self.metadata["anterior"]
+ button_0.set_label(str(self.puntaje) + '/' +str( self.total))
+ except KeyError:
+ self.puntaje=0
+ self.numero=random.randint(1,100)
+ self.anterior=self.numero
+ self.total=0
+ button_0.set_label('click para saber tu puntaje')
+ self.parser = SafeConfigParser()
+ self.parser.read('config.ini')
+
+ Popen(['espeak', '-v', 'es', self.parser.get('pregunta'+str(self.numero), 'enunciado')])
+ pixbuf = gtk.gdk.pixbuf_new_from_file(self.parser.get('pregunta'+str(self.numero), 'imagen'))
+ scaled_pixbuf = pixbuf.scale_simple(400,400,gtk.gdk.INTERP_BILINEAR)
+ image.set_from_pixbuf(scaled_pixbuf)
+ button_1.set_label(self.parser.get('pregunta'+str(self.numero), 'correcta'))
+ button_2.set_label(self.parser.get('pregunta'+str (self.numero), 'incorrecta2'))
+ button_3.set_label(self.parser.get('pregunta'+str (self.numero), 'incorrecta1'))
+
+ button_1.connect('clicked',self.__cambiar_imagen_cb, button_2,button_3,button_0,image)
+ button_2.connect('clicked',self.__cambiar_imagen_cb, button_3,button_1,button_0,image)
+ button_3.connect('clicked',self.__cambiar_imagen_cb, button_2,button_1,button_0,image)
+ button_0.connect('clicked',self.__decir_puntaje_cb)
+
+
def __cambiar_imagen_cb(self,b1,b2=None,b3=None,b0=None,i=None):
-
- if b1.get_label()== self.parser.get('pregunta'+ str(self.anterior), 'correcta'):
- text ='Seleccionaste la respuesta correcta, tienes un punto mas '
+ if b1.get_label()== self.parser.get('pregunta'+ str(self.anterior), 'correcta'):
+ text =self.parser.get('pregunta'+ str(self.anterior), 'correcta')+', es correcta, tienes un punto mas '
p=1
else:
- text ='La palabra seleccionada, no es la correcta'
+ text ='La palabra seleccionada es , incorrecta'
p=0
- self.puntaje=self.puntaje +p
+ self.puntaje=int(self.puntaje) +p
Popen(['espeak', '-v', 'es', text])
- self.numero=random.randint(1,69)# pregunta seleccionada al azar
+ self.numero=random.randint(1,100)
if self.numero % 2 ==0:
- i.set_from_file(self.parser.get('pregunta'+str(self.numero), 'imagen'))
+ pixbuf = gtk.gdk.pixbuf_new_from_file(self.parser.get('pregunta'+str(self.numero), 'imagen'))
+ scaled_pixbuf = pixbuf.scale_simple(400,400,gtk.gdk.INTERP_BILINEAR)
+ i.set_from_pixbuf(scaled_pixbuf)
b3.set_label(self.parser.get('pregunta'+str (self.numero), 'correcta'))
b1.set_label(self.parser.get('pregunta'+str (self.numero), 'incorrecta1'))
b2.set_label(self.parser.get('pregunta'+str(self.numero), 'incorrecta2'))
- print '2:'+str(self.numero)
+
else:
- i.set_from_file(self.parser.get('pregunta'+str(self.numero), 'imagen'))
+ pixbuf = gtk.gdk.pixbuf_new_from_file(self.parser.get('pregunta'+str(self.numero), 'imagen'))
+ scaled_pixbuf = pixbuf.scale_simple(400,400,gtk.gdk.INTERP_BILINEAR)
+ i.set_from_pixbuf(scaled_pixbuf)
b3.set_label(self.parser.get('pregunta'+str (self.numero), 'incorrecta1'))
b1.set_label(self.parser.get('pregunta'+str (self.numero), 'incorrecta2'))
b2.set_label(self.parser.get('pregunta'+str(self.numero), 'correcta'))
- print '1:'+str(self.numero)
+
self.anterior=self.numero
- self.total= self.total+1
+ self.total= int(self.total)+1
b0.set_label(str(self.puntaje) + '/' +str( self.total))
-
-
def __decir_puntaje_cb(self,b):
- text= 'tu puntaje es '+ str (self.puntaje) + ' de '+ str(self.total)
+ text= 'tu puntaje es '+ str (self.puntaje) + ' de, '+ str(self.total)
Popen(['espeak', '-v', 'es', text])
-
+
+ def read_file(self, tmp_file):
+ self.puntaje=self.metadata["puntaje"]
+ self.total=self.metadata["total"]
+ self.numero=self.metadata["numero"]
+ self.anterior=self.metada["anterior"]
+
+ def write_file(self, tmp_file):
+ self.metadata["numero"]=self.numero
+ self.metadata["anterior"]=self.anterior
+ self.metadata["total"]=self.total
+ self.metadata["puntaje"]=self.puntaje