Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalther Neuper <neuper@neuper.(none)>2010-01-20 17:59:21 (GMT)
committer Walther Neuper <neuper@neuper.(none)>2010-01-20 17:59:21 (GMT)
commit2d83d10fb1538db4a516eec261f4b6e8420a2647 (patch)
tree1ec0064736b2f9f6feb0786cf7c0e8f73cd5f3f3
parent0b266b8b6430922ed0544ee56b2450397d460c2f (diff)
write generated calcs to file and to journal
-rw-r--r--.gitignore1
-rwxr-xr-xReckonPrimer.activity/ReckonPrimerActivity.py16
-rwxr-xr-xReckonPrimer.activity/display.py71
-rwxr-xr-xReckonPrimer.activity/exercises/exaddsimp.py1
-rwxr-xr-xReckonPrimer.activity/exercises/exercise.py10
-rwxr-xr-xReckonPrimer.activity/session.py6
6 files changed, 95 insertions, 10 deletions
diff --git a/.gitignore b/.gitignore
index 2f836aa..370cdf6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
*~
*.pyc
+ReckonPrimer.activity/data/protocol.txt
diff --git a/ReckonPrimer.activity/ReckonPrimerActivity.py b/ReckonPrimer.activity/ReckonPrimerActivity.py
index 570490a..1975bb0 100755
--- a/ReckonPrimer.activity/ReckonPrimerActivity.py
+++ b/ReckonPrimer.activity/ReckonPrimerActivity.py
@@ -47,15 +47,17 @@ class ReckonPrimerActivity(activity.Activity):
datastore.write( journal_object )
journal_object.destroy()
- self.run_session()
+ #BEGIN LPCHANGE
+ self._session = Session("xo-user-name", self)
+ self.run_session()
-
- def run_session(self):
- session = Session("xo-user-name", self)
- session.run()
-
+ def run_session(self):
+ self._session.run()
-
+ def can_close(self):
+ self._session.close()
+ return True
+#END LPCHANGE
diff --git a/ReckonPrimer.activity/display.py b/ReckonPrimer.activity/display.py
index a5390b4..ac02668 100755
--- a/ReckonPrimer.activity/display.py
+++ b/ReckonPrimer.activity/display.py
@@ -10,6 +10,10 @@ from timer import Timer
from sugar import profile
from sugar.graphics import style
from sugar.activity import activity
+#BEGIN LPCHANGE
+from sugar.datastore import datastore
+import os
+#END LPCHANGE
class Display:
"""
@@ -248,6 +252,10 @@ class Display:
def offer_setting(self,ex):
""" Prepare display for update of settings. """
self._ex = ex #WN.LV either drop this or self.current_exercise
+ #BEGIN LPCHANGE
+ self.protocol_settings_string()
+ #END LPCHANGE
+
self._sett = self._ex.get_setting() #WN.LV make _sett local
self.current_exercise = ex #WN.LV either drop this or self._ex
@@ -278,6 +286,7 @@ class Display:
prepares for calculations from 1 setting.
for instance, a calculation might be on 1 ore more lines.
"""
+ #self._mode = "learner"
print("in display.init_calc")
# make empty lines such that all calcs are entered at bottom
for i in range(1,21):
@@ -298,11 +307,13 @@ class Display:
end_iterator = self.log_buffer.get_end_iter()
mark = self.log_buffer.create_mark(None, end_iterator, True)
self.log_view.scroll_mark_onscreen(mark)
+
+#BEGIN LPCHANGE
def protocol_generated_calcs(self, calculations, change):
print("DEBUG: in display.protocol_generated_calcs")
end_iterator = self.log_buffer.get_end_iter()
- self.log_buffer.insert_with_tags_by_name(end_iterator, "\n---------- " + change + " ----------" , "fixxxme!" )
+ self.log_buffer.insert_with_tags_by_name(end_iterator, "\n---------- " + change + " ----------")
for c in calculations:
end_iterator = self.log_buffer.get_end_iter()
@@ -313,10 +324,64 @@ class Display:
to_format[2] + " " + \
to_format[3] + " " + \
to_format[4]
- self.log_buffer.insert_with_tags_by_name(end_iterator, "\n" + printable_calc, "fixxxme!" )
+ self.log_buffer.insert_with_tags_by_name(end_iterator, "\n" + printable_calc)
- mark = self.log_buffer.create_mark(None, end_iterator, True)
+ end_iterator = self.log_buffer.get_end_iter()
+ mark = self.log_buffer.create_mark(None, end_iterator, False)
+ self.log_view.scroll_mark_onscreen(mark)
+ #self.log_view.scroll_to_iter(end_iterator, 0)
+ #self.log_view.set_justification(gtk.JUSTIFY_CENTER)
+
+
+ def protocol_settings_string(self):
+ """
+ This method writes the settings of the exercise to the protocol.
+ """
+ settings_string = self._ex.get_settings_string()
+ end_iterator = self.log_buffer.get_end_iter()
+ self.log_buffer.insert_with_tags_by_name(end_iterator, "\n---------- SETTINGS ----------")
+ end_iterator = self.log_buffer.get_end_iter()
+ self.log_buffer.insert_with_tags_by_name(end_iterator, "\n" + settings_string)
+ for i in range(1,21):
+ end_iterator = self.log_buffer.get_end_iter()
+ self.log_buffer.insert(end_iterator, "\n")
+
+ mark = self.log_buffer.create_mark(None, end_iterator, False)
self.log_view.scroll_mark_onscreen(mark)
+ #self.log_view.scroll_to_iter(end_iterator, 0)
+ #self.log_view.set_justification(gtk.JUSTIFY_CENTER)
+
+ def write_protocol_to_journal(self):
+ """
+ This method writes the whole protocol to the journal.
+ """
+ #open file
+ logfile = open('data/protocol.txt', 'w')
+ #get string from textbuffer
+ log_string = self.log_buffer.get_text(self.log_buffer.get_start_iter(), self.log_buffer.get_end_iter(), True)
+ #remove empty lines
+ stripped_string = ''
+ for line in log_string.split('\n'):
+ if line.strip():
+ stripped_string += line + '\n'
+ #write to file
+ print stripped_string
+ logfile.write(stripped_string)
+ logfile.write('\n')
+ logfile.close()
+ print '------------------------------------------------------------------'
+ print file('data/protocol.txt').read()
+ #make journal entry
+ journal_object = datastore.create()
+ journal_object.metadata['title'] = 'ReckonPrimer Protocol'
+ journal_object.metadata['mime_type'] = 'text/plain'
+ journal_object.file_path = os.getcwd() + '/data/protocol.txt'
+ #journal_object.file_path = 'data/protocol.txt'
+ datastore.write(journal_object)
+ journal_object.destroy()
+
+
+#END LPCHANGE
def input_digit(self, widget, dig, proterr, protok):
"""callback: input a digit and give feedback.
diff --git a/ReckonPrimer.activity/exercises/exaddsimp.py b/ReckonPrimer.activity/exercises/exaddsimp.py
index 2ec1d88..9219a75 100755
--- a/ReckonPrimer.activity/exercises/exaddsimp.py
+++ b/ReckonPrimer.activity/exercises/exaddsimp.py
@@ -537,5 +537,6 @@ class ExAddSimp(Exercise):
def _display_generated_calcs(self, change):
print("DEBUG: in exaddsubsimp._display_generated_calcs()")
self._display.protocol_generated_calcs(self._generate_calcs(), change)
+
#END LPCHANGE
diff --git a/ReckonPrimer.activity/exercises/exercise.py b/ReckonPrimer.activity/exercises/exercise.py
index 3049a4e..2e5f6b4 100755
--- a/ReckonPrimer.activity/exercises/exercise.py
+++ b/ReckonPrimer.activity/exercises/exercise.py
@@ -96,3 +96,13 @@ class Exercise:
return ([_l0], _ip)
#return ([[' ', '1', '0', ' ', '-', ' ', '7', ' ', '=', ' ', '_', ' ']], [(0, 10, '3', ' 10 - 7 = _ ', ' 10 - 7 = 3 ', [' ', '1', '0', ' ', '-', ' ', '7', ' ', '=', ' ', '3', ' '])])
+#BEGIN LPCHANGE
+
+ def get_settings_string(self):
+ """
+ This method returns the settings of the exercise as string.
+ \return The settings-string.
+ """
+ return str(self._sett)
+
+#END LPCHANGE
diff --git a/ReckonPrimer.activity/session.py b/ReckonPrimer.activity/session.py
index 33e7c3a..83e0d0d 100755
--- a/ReckonPrimer.activity/session.py
+++ b/ReckonPrimer.activity/session.py
@@ -38,6 +38,12 @@ class Session:
self._learner.run()
#self._co.request_exercise()
#self._dis.init_calc() #TODOWN091101 take Exercise as argument
+
+ #BEGIN LPCHANGE
+ def close(self):
+ """ Closes the session"""
+ self._dis.write_protocol_to_journal()
+ #END LPCHANGE
# def notify(self, (msg, data)):
# '''called by the observed objects'''