Use requirejs.
[mkwsxb-moved-to-github.git] / mkwsxb / mkwsxb.py
index 9fed202..13822ea 100644 (file)
@@ -1,6 +1,7 @@
 """Embed widgets from MKWS, the MasterKey Widget Set"""
 
 import pkg_resources
+import random
 
 from xblock.core import XBlock
 from xblock.fields import Integer, Scope, String, Any, Boolean, Dict
@@ -15,6 +16,10 @@ class MKWSXB(XBlock):
       default="water",
       scope=Scope.content
     )
+    display_name = String(
+      default="MKWS Widget",
+      scope=Scope.settings
+    )
 
     def resource_string(self, path):
         """Helper for accessing resources."""
@@ -24,11 +29,12 @@ class MKWSXB(XBlock):
     def student_view(self, context=None):
         """The primary view of the MKWS XBlock, shown to students when viewing courses."""
         html = self.resource_string("static/html/mkwsxb.html")
-        frag = Fragment(html.format(query=self.query))
-        frag.add_javascript_url("//mkws.indexdata.com/mkws-complete.js")
-        frag.add_javascript_url("//example.indexdata.com/mkws-widget-ru.js")
-        frag.add_css(self.resource_string("static/css/mkws-widget-ru.css"))
+        frag = Fragment(html.format(query=self.query, team=random.randint(0, 100000)))
+        # mkwsxb.js uses require.js as it cannot guarantee mkws-complete.js has loaded 
+        # in studio without it
+        frag.add_javascript_url("/static/js/vendor/require.js");
         frag.add_javascript(self.resource_string("static/js/src/mkwsxb.js"))
+        frag.add_css(self.resource_string("static/css/mkws-widget-ru.css"))
         frag.initialize_js('MKWSXB')
         return frag;