Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
RecommenderXBlock
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
RecommenderXBlock
Commits
2be7edba
Commit
2be7edba
authored
May 22, 2014
by
Piotr Mitros
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Sync between machines
parent
c8734f18
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
61 additions
and
15 deletions
+61
-15
recommender/recommender.py
+53
-10
recommender/static/html/recommender.html
+8
-5
No files found.
recommender/recommender.py
View file @
2be7edba
...
@@ -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>
"""
),
"""
),
]
]
recommender/static/html/recommender.html
View file @
2be7edba
<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>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment