I have been using TinyMCE for about three weeks now. My ultimate goal would be to to do something along the lines that David Joyner mentions in a previous message (have students create worksheets that have comments/interpretation between the cells).
TinyMCE works very well as far as editing goes, and I didn't test all buttons available in the tool bar. I think it would be a nice edition to Sage. It does not seem to affect how responsively the code is executed, but what I am doing is not very demanding. However, I noticed the following: (I'm using it in Firefox 3.0.5 in Ubuntu 10.2. The Sage version is 3.2.2.) (1) If I click the menu Action-Evaluate All, exceptions are thrown in certain situations. The following is the sequence that will trigger it: - Execute the code in some cells - Create text using TinyMCE and save it. - Do Action-Evaluate All The problem does not appear to happen with worksheets that had been saved in a previous Sage session, and then are opened in a new session. Quitting the worksheet and reopening it also seems to fix the problem, as long as there were no previous exceptions thrown. I'm not including a worksheet reproducing the problem because it seems to be "dynamic", it only occurs as one is working on the worksheet. I am attaching a text file with the output of the sage session. (2) If one creates a link in TinyMCE (highlight text, use the link button), save the changes in the TinyMCE editor and then follow the link, when returning to the page with the worksheet (using the browser's back button), the text that has just been typed disappears. It reappears if the reload button in the browser is used. (So, it seems to be a problem of refreshing the cached page). The same happens if the HTML is directly edited to create the link. In my opinion, the default behavior on clicking a link in a worksheet should be to open it in another tab/window in the browser. The idea is that the links might have reference to documentation, math references, etc, and users will want to continue to do their math in Sage. (3) This is more in the "weirdness" department. I noticed that, sometimes, each time I reopen a worksheet, a new empty cell is created at the bottom. I was not able to reproduce it consistently. Felipe On Tue, Jan 13, 2009 at 10:53 AM, Jason Grout <jason-s...@creativetrax.com> wrote: > > mabshoff wrote: >> >> >> On Jan 8, 3:22 pm, Jason Grout <jason-s...@creativetrax.com> wrote: >>> mabshoff wrote: >>> >>>> I think that the editor is just as important as the @interact in the >>>> notebook. So if we could find some more people to test the patches we >>>> can get them into the next release. As long as they don't break any >>>> existing functionality I would think that even if the editor support >>>> is slightly broken on some platforms it should still go in. The patch >>>> has been around for a while and resolving this would make life easier >>>> for everyone. >>> Can someone official make a list of requirements on this ticket to get >>> into Sage (i.e., a list of platforms people need to try it on, so many >>> people per platform, whatever). I would, but I'm afraid it'd be a bit >>> biased :). >> >> Well, my personal POV: >> >> (a) testing with IE 6, IE 7 Windows >> (b) testing with FF 2.0.x, 3.x on Windows, OSX and Linux >> (c) testing with Safari on 10.4 and 10.5 >> (d) testing with Opera 9.5 on Windows, OSX, Linux >> (e) Chrome on Windows >> >> Obviously this is rather harsh, so if we covered all five major >> browsers somehow this would be enough for me assuming the patches >> themselves get a positive review and everything is working *after* we >> delete the javascript from the ext repo since there is potentially a >> reference to some code in there. > > > > Here are the things that still need to be done to get this in (I believe > I've covered everything). If anyone can do part or all of this, that > would be great! > > * testing with IE 6 on Windows > * testing with FF 2.0.x on Windows, OSX and Linux > * testing with Safari on 10.4 > * testing with Opera 9.5 on OSX, Linux > * review of the patches themselves > * review of mabshoff's changes to the spkgs > * trivial one-line patch to fix the "ghostly text" issue (just make > the placeholder string the empty string in cell.py (search for > "placeholder" in cell.py). > * (maybe can wait for another patch): figure out what is going on > with divs with the same id. My guess is that it is an issue with setting > the innerHTMl of an object, rather than replacing the object itself. > When the page is "Edit"ed and then reloaded, the duplicate nested IDs go > away. This points to the javascript code that inserts text cells as the > problem. > > > In the end having your assurance that you will available to fix > > some of the inevitable issues would also be assuring. > > You have my assurance. > > Jason > > > > > -- "The main things which seem to me important on their own account, and not merely as means to other things, are knowledge, art, instinctive happiness, and relations of friendship or affection." -Bertrand Russell L. Felipe Martins Department of Mathematics Cleveland State University luizfelipe.mart...@gmail.com --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---
2009-01-18 23:59:54-0500 [-] Log opened. 2009-01-18 23:59:54-0500 [-] twistd 8.1.0 (<deleted path>/sage-3.2.2/local/bin/python 2.5.2) starting up 2009-01-18 23:59:54-0500 [-] reactor class: <class 'twisted.internet.selectreactor.SelectReactor'> 2009-01-18 23:59:54-0500 [-] twisted.web2.channel.http.HTTPFactory starting on 8000 2009-01-18 23:59:54-0500 [-] Starting factory <twisted.web2.channel.http.HTTPFactory instance at 0x2ed6998> 2009-01-18 23:59:54-0500 [HTTPChannel,0,127.0.0.1] 2009-01-18 23:59:54-0500 [HTTPChannel,0,127.0.0.1] 2009-01-18 23:59:54-0500 [HTTPChannel,0,127.0.0.1] 2009-01-18 23:59:54-0500 [HTTPChannel,0,127.0.0.1] 2009-01-18 23:59:54-0500 [HTTPChannel,0,127.0.0.1] 2009-01-18 23:59:54-0500 [HTTPChannel,0,127.0.0.1] 2009-01-18 23:59:54-0500 [HTTPChannel,0,127.0.0.1] 2009-01-18 23:59:54-0500 [HTTPChannel,0,127.0.0.1] 2009-01-19 00:00:59-0500 [HTTPChannel,3,127.0.0.1] Exception rendering: 2009-01-19 00:00:59-0500 [HTTPChannel,3,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:00-0500 [HTTPChannel,3,127.0.0.1] Exception rendering: 2009-01-19 00:01:00-0500 [HTTPChannel,3,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:01-0500 [HTTPChannel,2,127.0.0.1] Exception rendering: 2009-01-19 00:01:01-0500 [HTTPChannel,2,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:02-0500 [HTTPChannel,3,127.0.0.1] Exception rendering: 2009-01-19 00:01:02-0500 [HTTPChannel,3,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:03-0500 [HTTPChannel,2,127.0.0.1] Exception rendering: 2009-01-19 00:01:03-0500 [HTTPChannel,2,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:04-0500 [HTTPChannel,3,127.0.0.1] Exception rendering: 2009-01-19 00:01:04-0500 [HTTPChannel,3,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:05-0500 [HTTPChannel,2,127.0.0.1] Exception rendering: 2009-01-19 00:01:05-0500 [HTTPChannel,2,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:06-0500 [HTTPChannel,3,127.0.0.1] Exception rendering: 2009-01-19 00:01:06-0500 [HTTPChannel,3,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:07-0500 [HTTPChannel,2,127.0.0.1] Exception rendering: 2009-01-19 00:01:07-0500 [HTTPChannel,2,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:08-0500 [HTTPChannel,3,127.0.0.1] Exception rendering: 2009-01-19 00:01:08-0500 [HTTPChannel,3,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:09-0500 [HTTPChannel,2,127.0.0.1] Exception rendering: 2009-01-19 00:01:09-0500 [HTTPChannel,2,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:10-0500 [HTTPChannel,3,127.0.0.1] Exception rendering: 2009-01-19 00:01:10-0500 [HTTPChannel,3,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:11-0500 [HTTPChannel,2,127.0.0.1] Exception rendering: 2009-01-19 00:01:11-0500 [HTTPChannel,2,127.0.0.1] Unhandled Error Traceback (most recent call last): File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 614, in gotResult _deferGenerator(g, deferred) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 591, in _deferGenerator deferred.callback(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 243, in callback self._startRunCallbacks(result) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks self.result = callback(self.result, *args, **kw) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/twisted/web2/resource.py", line 230, in <lambda> ).addCallback(lambda res: self.render(request)) File "<deleted path>/sage-3.2.2/local/lib/python2.5/site-packages/sage/server/notebook/twist.py", line 1049, in render new_input = cell.changed_input_text() exceptions.AttributeError: TextCell instance has no attribute 'changed_input_text' 2009-01-19 00:01:12-0500 [HTTPChannel,2,127.0.0.1]