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
76252ae6
Commit
76252ae6
authored
Dec 12, 2014
by
swdanielli
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/pmitros/RecommenderXBlock
parents
d714edfa
21dce2e1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
28 deletions
+18
-28
recommender/recommender.py
+18
-28
No files found.
recommender/recommender.py
View file @
76252ae6
...
...
@@ -27,7 +27,7 @@ except ImportError:
from
mako.lookup
import
TemplateLookup
from
xblock.core
import
XBlock
from
xblock.fields
import
Scope
,
List
,
Dict
,
Boolean
from
xblock.fields
import
Scope
,
List
,
Dict
,
Boolean
,
String
from
xblock.fragment
import
Fragment
from
xblock.reference.plugins
import
Filesystem
...
...
@@ -69,11 +69,11 @@ class RecommenderXBlock(XBlock):
scope
=
Scope
.
user_info
)
#
recommender_version = String(
#
help="The version of this RecommenderXBlock",
#
default="recommender.v1.0",
#
scope=Scope.content
#
)
recommender_version
=
String
(
help
=
"The version of this RecommenderXBlock"
,
default
=
"recommender.v1.0"
,
scope
=
Scope
.
content
)
intro_enabled
=
Boolean
(
help
=
"Take users on a little tour the first time they see the XBlock?"
,
default
=
True
,
scope
=
Scope
.
content
...
...
@@ -82,7 +82,7 @@ class RecommenderXBlock(XBlock):
default_recommendations
=
Dict
(
help
=
"Dict of default help resources"
,
default
=
{},
scope
=
Scope
.
content
)
# A dict of default recommenations, it is a JSON object across all users,
# A dict of default recommen
d
ations, it is a JSON object across all users,
# all runs of a course, for this xblock.
# Usage: default_recommendations[index] = {
# "id": (String) id of a resource,
...
...
@@ -94,12 +94,11 @@ class RecommenderXBlock(XBlock):
# "description" : (String) the url of a resource's screenshot,
# "descriptionText" : (String) a paragraph of
# description/summary of a resource }
# we use url as key (index) of resources
# we use url as key (index) of resourcs
recommendations
=
Dict
(
help
=
"Dict of help resources"
,
default
=
{},
scope
=
Scope
.
user_state_summary
help
=
"Dict of help resources"
,
default
=
{},
scope
=
Scope
.
user_state_summary
)
# A dict of recommenations provided by students, it is a JSON object
# A dict of recommen
d
ations provided by students, it is a JSON object
# aggregated across many users of a single block.
# Usage: the same as default_recommendations
...
...
@@ -221,18 +220,6 @@ class RecommenderXBlock(XBlock):
data
=
pkg_resources
.
resource_string
(
__name__
,
path
)
return
data
.
decode
(
"utf8"
)
def
md5_check_sum
(
self
,
data
):
"""
Generate the MD5 hash of file
Args:
data: the content of the file (e.g., open(filePath, 'rb').read())
Returns:
The MD5 hash
"""
md5
=
hashlib
.
md5
()
md5
.
update
(
data
)
return
md5
.
hexdigest
()
def
get_onetime_url
(
self
,
filename
):
"""
Return one time url for uploaded screenshot
...
...
@@ -414,7 +401,7 @@ class RecommenderXBlock(XBlock):
try
:
content
=
request
.
POST
[
'file'
]
.
file
.
read
()
file_id
=
self
.
md5_check_sum
(
content
)
file_id
=
hashlib
.
md5
(
content
)
.
hexdigest
(
)
file_name
=
(
file_id
+
'.'
+
file_type
)
fhwrite
=
self
.
fs
.
open
(
file_name
,
"wb"
)
...
...
@@ -512,6 +499,7 @@ class RecommenderXBlock(XBlock):
result
=
{}
result
[
'id'
]
=
resource_id
result
[
'old_id'
]
=
resource_id
for
field
in
self
.
resource_content_fields
:
result
[
'old_'
+
field
]
=
self
.
recommendations
[
resource_id
][
field
]
if
data
[
field
]
==
""
:
...
...
@@ -652,6 +640,7 @@ class RecommenderXBlock(XBlock):
result
=
{}
result
[
'id'
]
=
resource_id
if
resource_id
in
self
.
endorsed_recommendation_ids
:
result
[
'status'
]
=
'undo endorsement'
endorsed_index
=
self
.
endorsed_recommendation_ids
.
index
(
resource_id
)
...
...
@@ -795,10 +784,11 @@ class RecommenderXBlock(XBlock):
The primary view of the RecommenderXBlock, shown to students
when viewing courses.
"""
if
not
self
.
recommendations
:
self
.
recommendations
=
self
.
default_recommendations
if
not
self
.
recommendations
:
self
.
recommendations
=
{}
self
.
recommendations
=
(
self
.
recommendations
or
self
.
default_recommendations
or
{}
)
# Transition between two versions. In the previous version, there is
# no endorsed_recommendation_reasons. Thus, we add empty reasons to
...
...
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