Commit 2be7edba by Piotr Mitros

Sync between machines

parent c8734f18
......@@ -3,20 +3,60 @@
import pkg_resources
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
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):
"""
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
# self.<fieldname>.
src = String(
scope = Scope.settings,
help = "URL for MP3 file to play"
objects = List(
scope = BlockScope,
help = "List of help resources"
)
def resource_string(self, path):
......@@ -31,9 +71,10 @@ class RecommenderXBlock(XBlock):
when viewing courses.
"""
html = self.resource_string("static/html/recommender.html")
print self.src
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_javascript(self.resource_string("static/js/src/recommender.js"))
frag.initialize_js('RecommenderXBlock')
......@@ -48,9 +89,11 @@ class RecommenderXBlock(XBlock):
return [
("RecommenderXBlock",
"""<vertical_demo>
<recommender src="http://localhost/Ikea.mp3"> </recommender>
<recommender src="http://localhost/skull.mp3"> </recommender>
<recommender src="http://localhost/monkey.mp3"> </recommender>
<recommender>
</recommender>
<recommender>
</recommender>
</vertical_demo>
"""),
]
<div class="recommender_block">
<recommender controls preload>
<source src="{src}">
<embed height="50" width="100" src="{src}">
</recommender>
Helpful resources
<table>
<tr>
<td>
</td>
</tr>
</table>
<span class="ui-icon ui-icon-plusthick"></span>
</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