Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
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
edx-platform
Commits
26eaf898
Commit
26eaf898
authored
Feb 25, 2013
by
Julian Arni
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow progress without leaderboard and vice-versa
parent
da2d0ed6
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
58 additions
and
47 deletions
+58
-47
common/lib/xmodule/xmodule/foldit_module.py
+51
-7
lms/templates/foldit.html
+7
-40
No files found.
common/lib/xmodule/xmodule/foldit_module.py
View file @
26eaf898
...
@@ -11,14 +11,27 @@ from xmodule.xml_module import XmlDescriptor
...
@@ -11,14 +11,27 @@ from xmodule.xml_module import XmlDescriptor
log
=
logging
.
getLogger
(
__name__
)
log
=
logging
.
getLogger
(
__name__
)
class
FolditModule
(
XModule
):
class
FolditModule
(
XModule
):
css
=
{
'scss'
:
[
resource_string
(
__name__
,
'css/foldit/leadeboard.scss'
)]}
def
__init__
(
self
,
system
,
location
,
definition
,
descriptor
,
def
__init__
(
self
,
system
,
location
,
definition
,
descriptor
,
instance_state
=
None
,
shared_state
=
None
,
**
kwargs
):
instance_state
=
None
,
shared_state
=
None
,
**
kwargs
):
XModule
.
__init__
(
self
,
system
,
location
,
definition
,
descriptor
,
XModule
.
__init__
(
self
,
system
,
location
,
definition
,
descriptor
,
instance_state
,
shared_state
,
**
kwargs
)
instance_state
,
shared_state
,
**
kwargs
)
# ooh look--I'm lazy, so hardcoding the 7.00x required level.
"""
# If we need it generalized, can pull from the xml later
self
.
required_level
=
4
Example:
self
.
required_sublevel
=
5
<foldit show_basic_score="true"
required_level="4"
required_sublevel="3"
show_leaderboard="false"/>
"""
req_level
=
self
.
metadata
.
get
(
"required_level"
)
req_sublevel
=
self
.
metadata
.
get
(
"required_sublevel"
)
# default to what Spring_7012x uses
self
.
required_level
=
req_level
if
req_level
else
4
self
.
required_sublevel
=
req_sublevel
if
req_sublevel
else
5
def
parse_due_date
():
def
parse_due_date
():
"""
"""
...
@@ -83,16 +96,47 @@ class FolditModule(XModule):
...
@@ -83,16 +96,47 @@ class FolditModule(XModule):
self
.
required_level
,
self
.
required_level
,
self
.
required_sublevel
)
self
.
required_sublevel
)
showbasic
=
(
self
.
metadata
.
get
(
"show_basic_score"
)
==
"true"
)
showleader
=
(
self
.
metadata
.
get
(
"show_leaderboard"
)
==
"true"
)
context
=
{
context
=
{
'due'
:
self
.
due_str
,
'due'
:
self
.
due_str
,
'success'
:
self
.
is_complete
(),
'success'
:
self
.
is_complete
(),
'goal_level'
:
goal_level
,
'goal_level'
:
goal_level
,
'completed'
:
self
.
completed_puzzles
(),
'completed'
:
self
.
completed_puzzles
(),
'top_scores'
:
self
.
puzzle_leaders
(),
'top_scores'
:
self
.
puzzle_leaders
(),
'show_basic'
:
showbasic
,
'show_leader'
:
showleader
,
'folditbasic'
:
self
.
get_basicpuzzles_html
(),
'folditchallenge'
:
self
.
get_challenge_html
()
}
}
return
self
.
system
.
render_template
(
'foldit.html'
,
context
)
return
self
.
system
.
render_template
(
'foldit.html'
,
context
)
def
get_basicpuzzles_html
(
self
):
"""
Render html for the basic puzzle section.
"""
goal_level
=
'{0}-{1}'
.
format
(
self
.
required_level
,
self
.
required_sublevel
)
context
=
{
'due'
:
self
.
due_str
,
'success'
:
self
.
is_complete
(),
'goal_level'
:
goal_level
,
'completed'
:
self
.
completed_puzzles
(),
}
return
self
.
system
.
render_template
(
'folditbasic.html'
,
context
)
def
get_challenge_html
(
self
):
"""
Render html for challenge (i.e., the leaderboard)
"""
context
=
{
'top_scores'
:
self
.
puzzle_leaders
()}
return
self
.
system
.
render_template
(
'folditchallenge.html'
,
context
)
def
get_score
(
self
):
def
get_score
(
self
):
"""
"""
...
@@ -109,7 +153,7 @@ class FolditModule(XModule):
...
@@ -109,7 +153,7 @@ class FolditModule(XModule):
class
FolditDescriptor
(
XmlDescriptor
,
EditingDescriptor
):
class
FolditDescriptor
(
XmlDescriptor
,
EditingDescriptor
):
"""
"""
Module for adding
open ended response question
s to courses
Module for adding
Foldit problem
s to courses
"""
"""
mako_template
=
"widgets/html-edit.html"
mako_template
=
"widgets/html-edit.html"
module_class
=
FolditModule
module_class
=
FolditModule
...
@@ -129,6 +173,6 @@ class FolditDescriptor(XmlDescriptor, EditingDescriptor):
...
@@ -129,6 +173,6 @@ class FolditDescriptor(XmlDescriptor, EditingDescriptor):
@classmethod
@classmethod
def
definition_from_xml
(
cls
,
xml_object
,
system
):
def
definition_from_xml
(
cls
,
xml_object
,
system
):
"""
"""
For now, don't need anything from the xml
Get the xml_object's attributes.
"""
"""
return
{}
return
{
'metadata'
:
xml_object
.
attrib
}
lms/templates/foldit.html
View file @
26eaf898
<section
class=
"foldit"
>
<section
class=
"foldit"
>
<p><strong>
Due:
</strong>
${due}
<p>
<strong>
Status:
</strong>
% if success:
You have successfully gotten to level ${goal_level}.
% else:
You have not yet gotten to level ${goal_level}.
% endif
</p>
<h3>
Completed puzzles
</h3>
<table>
<tr>
<th>
Level
</th>
<th>
Submitted
</th>
</tr>
% for puzzle in completed:
<tr>
<td>
${'{0}-{1}'.format(puzzle['set'], puzzle['subset'])}
</td>
<td>
${puzzle['created'].strftime('%Y-%m-%d %H:%M')}
</td>
</tr>
% endfor
</table>
</br>
<h3>
Puzzle Leaderboard
</h3>
% if show_basic:
${folditbasic}
% endif
<table>
% if show_leader:
<tr>
${folditchallenge}
<th>
User
</th>
% endif
<th>
Score
</th>
</tr>
% for pair in top_scores:
<tr>
<td>
${pair[0]}
</td>
<td>
${pair[1]}
</td>
</tr>
% endfor
</table>
</section>
</section>
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