Commit 2be7edba by Piotr Mitros

Sync between machines

parent c8734f18
...@@ -3,20 +3,60 @@ ...@@ -3,20 +3,60 @@
import pkg_resources import pkg_resources
from xblock.core import XBlock from xblock.core import XBlock
from xblock.fields import Scope, Integer, String from xblock.fields import Scope, Integer, String, BlockScope, List
from xblock.fragment import Fragment from xblock.fragment import Fragment
class HelpResource(dict):
def __str__(self):
return json.dumps(self)
def __init__(s):
if isinstance(s, str):
self.update(json.loads(s))
elif isinstance(s, dict):
self.update(s)
else:
raise TypeError("Inappropriate type "+str(type(s))+" initializing HelpResource. Should be str or dict")
for e,t in (('title', str), ('url', str), ('upvotes', int), ('downvotes', int)):
if e not in self:
raise TypeError("Insufficient fields initializing HelpResource. "+e+" required.")
if not isinstance(self["e"], t):
raise TypeError("Incorrect field type initializing HelpResource. "+e+" should be "+str(t)+". It is "+type(self[e]))
@property
def title(self):
return self["title"]
@title.setter
def title(self, newtitle):
self["title"] = newtitle
@property
def url(self):
return self["url"]
@url.setter
def url(self, newurl):
self["url"] = newurl
@property
def upvotes(self):
return self["upvotes"]
@upvotes.setter
def upvotes(self, newupvotes):
self["upvotes"] = newupvotes
@property
def downvotes(self):
return self["downvotes"]
@downvotes.setter
def downvotes(self, newdownvotes):
self["downvotes"] = newdownvotes
class RecommenderXBlock(XBlock): class RecommenderXBlock(XBlock):
""" """
This XBlock will play an MP3 file as an HTML5 recommender element. This XBlock will show a set of recommended resources
""" """
# Fields are defined on the class. You can access them in your code as # Fields are defined on the class. You can access them in your code as
# self.<fieldname>. # self.<fieldname>.
src = String( objects = List(
scope = Scope.settings, scope = BlockScope,
help = "URL for MP3 file to play" help = "List of help resources"
) )
def resource_string(self, path): def resource_string(self, path):
...@@ -31,9 +71,10 @@ class RecommenderXBlock(XBlock): ...@@ -31,9 +71,10 @@ class RecommenderXBlock(XBlock):
when viewing courses. when viewing courses.
""" """
html = self.resource_string("static/html/recommender.html") html = self.resource_string("static/html/recommender.html")
print self.src
print html.format print html.format
frag = Fragment(html.format(src = self.src)) frag = Fragment(html.format())
frag.add_css_url("//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css")
frag.add_javascript_url("//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js")
frag.add_css(self.resource_string("static/css/recommender.css")) frag.add_css(self.resource_string("static/css/recommender.css"))
frag.add_javascript(self.resource_string("static/js/src/recommender.js")) frag.add_javascript(self.resource_string("static/js/src/recommender.js"))
frag.initialize_js('RecommenderXBlock') frag.initialize_js('RecommenderXBlock')
...@@ -48,9 +89,11 @@ class RecommenderXBlock(XBlock): ...@@ -48,9 +89,11 @@ class RecommenderXBlock(XBlock):
return [ return [
("RecommenderXBlock", ("RecommenderXBlock",
"""<vertical_demo> """<vertical_demo>
<recommender src="http://localhost/Ikea.mp3"> </recommender> <recommender>
<recommender src="http://localhost/skull.mp3"> </recommender>
<recommender src="http://localhost/monkey.mp3"> </recommender> </recommender>
<recommender>
</recommender>
</vertical_demo> </vertical_demo>
"""), """),
] ]
<div class="recommender_block"> <div class="recommender_block">
<recommender controls preload> Helpful resources
<source src="{src}"> <table>
<embed height="50" width="100" src="{src}"> <tr>
</recommender> <td>
</td>
</tr>
</table>
<span class="ui-icon ui-icon-plusthick"></span>
</div> </div>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment