From 8d6a5c45f31c6b833745265e00901f64cbf619a4 Mon Sep 17 00:00:00 2001
From: Vik Paruchuri <vik@edx.org>
Date: Mon, 7 Jan 2013 16:37:51 -0500
Subject: [PATCH] Try to render without module system

---
 common/lib/xmodule/xmodule/combined_open_ended_module.py           | 16 +++++++++++++---
 common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee |  6 ++++--
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/common/lib/xmodule/xmodule/combined_open_ended_module.py b/common/lib/xmodule/xmodule/combined_open_ended_module.py
index 1761434..29c5265 100644
--- a/common/lib/xmodule/xmodule/combined_open_ended_module.py
+++ b/common/lib/xmodule/xmodule/combined_open_ended_module.py
@@ -22,6 +22,8 @@ from xmodule.modulestore import Location
 import self_assessment_module
 import open_ended_module
 
+from mitxmako.shortcuts import render_to_string
+
 log = logging.getLogger("mitx.courseware")
 
 # Set the default number of max attempts.  Should be 1 for production
@@ -162,7 +164,7 @@ class CombinedOpenEndedModule(XModule):
         log.debug(self.get_instance_state())
         return True
 
-    def get_html(self):
+    def get_context(self):
         task_html=self.get_html_base()
         #set context variables and render template
 
@@ -176,9 +178,17 @@ class CombinedOpenEndedModule(XModule):
             'status' : self.get_status(),
             }
 
+        return context
+
+    def get_html(self):
+        context=self.get_context()
         html = self.system.render_template('combined_open_ended.html', context)
         return html
 
+    def get_html_nonsystem(self):
+        context=self.get_context()
+        html = render_to_string('combined_open_ended.html', context)
+        return html
 
     def get_html_base(self):
         self.update_task_states()
@@ -255,7 +265,7 @@ class CombinedOpenEndedModule(XModule):
 
     def next_problem(self, get):
         self.update_task_states()
-        return {'success' : True, 'html' : self.get_html()}
+        return {'success' : True, 'html' : self.get_html_nonsystem()}
 
     def reset(self, get):
         """
@@ -280,7 +290,7 @@ class CombinedOpenEndedModule(XModule):
             self.task_states[self.current_task_number]=self.current_task.get_instance_state()
         self.current_task_number=0
         self.setup_next_task()
-        return {'success': True}
+        return {'success': True, 'html' : self.get_html_nonsystem()}
 
     def get_instance_state(self):
         """
diff --git a/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee b/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee
index 94cbdd5..a12898e 100644
--- a/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee
+++ b/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee
@@ -4,6 +4,7 @@ class @CombinedOpenEnded
     @reinitialize(element)
 
   reinitialize: (element) ->
+    @wrapper=$(element).find('section.xmodule_CombinedOpenEndedModule')
     @el = $(element).find('section.combined-open-ended')
     @combined_open_ended=$(element).find('section.combined-open-ended')
     @id = @el.data('id')
@@ -153,9 +154,10 @@ class @CombinedOpenEnded
           @hint_wrapper.html('')
           @message_wrapper.html('')
           @child_state = 'initial'
+          @combined_open_ended.after(response.html).remove()
+          @reinitialize(@element)
           @rebind()
           @reset_button.hide()
-          location.reload()
         else
           @errors_area.html(response.error)
     else
@@ -170,7 +172,7 @@ class @CombinedOpenEnded
           @hint_wrapper.html('')
           @message_wrapper.html('')
           @child_state = 'initial'
-          @combined_open_ended.html(response.html)
+          @combined_open_ended.after(response.html).remove()
           @reinitialize(@element)
           @rebind()
           @next_problem_button.hide()
--
libgit2 0.26.0