Commit 76252ae6 by swdanielli
parents d714edfa 21dce2e1
......@@ -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 recommendations, 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 recommendations 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
......
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