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
999343d6
Commit
999343d6
authored
Sep 03, 2012
by
David Ormsbee
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #618 from MITx/feature/victor/hide-progress-tab
Feature/victor/hide progress tab
parents
bce4e0f1
f926925c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
41 additions
and
15 deletions
+41
-15
common/lib/xmodule/xmodule/course_module.py
+16
-9
common/lib/xmodule/xmodule/tests/test_import.py
+4
-0
common/lib/xmodule/xmodule/xml_module.py
+17
-3
common/test/data/toy/policies/2012_Fall.json
+2
-1
lms/templates/courseware/course_navigation.html
+2
-2
No files found.
common/lib/xmodule/xmodule/course_module.py
View file @
999343d6
...
...
@@ -61,7 +61,7 @@ class CourseDescriptor(SequenceDescriptor):
def
__init__
(
self
,
system
,
definition
=
None
,
**
kwargs
):
super
(
CourseDescriptor
,
self
)
.
__init__
(
system
,
definition
,
**
kwargs
)
self
.
textbooks
=
self
.
definition
[
'data'
][
'textbooks'
]
self
.
wiki_slug
=
self
.
definition
[
'data'
][
'wiki_slug'
]
or
self
.
location
.
course
msg
=
None
...
...
@@ -101,19 +101,19 @@ class CourseDescriptor(SequenceDescriptor):
for
textbook
in
xml_object
.
findall
(
"textbook"
):
textbooks
.
append
(
cls
.
Textbook
.
from_xml_object
(
textbook
))
xml_object
.
remove
(
textbook
)
#Load the wiki tag if it exists
wiki_slug
=
None
wiki_tag
=
xml_object
.
find
(
"wiki"
)
if
wiki_tag
is
not
None
:
wiki_slug
=
wiki_tag
.
attrib
.
get
(
"slug"
,
default
=
None
)
xml_object
.
remove
(
wiki_tag
)
definition
=
super
(
CourseDescriptor
,
cls
)
.
definition_from_xml
(
xml_object
,
system
)
definition
.
setdefault
(
'data'
,
{})[
'textbooks'
]
=
textbooks
definition
[
'data'
][
'wiki_slug'
]
=
wiki_slug
return
definition
def
has_started
(
self
):
...
...
@@ -219,7 +219,7 @@ class CourseDescriptor(SequenceDescriptor):
# there are courses that change the number for different runs. This allows
# courses to share the same css_class across runs even if they have
# different numbers.
#
#
# TODO get rid of this as soon as possible or potentially build in a robust
# way to add in course-specific styling. There needs to be a discussion
# about the right way to do this, but arjun will address this ASAP. Also
...
...
@@ -234,14 +234,21 @@ class CourseDescriptor(SequenceDescriptor):
@property
def
discussion_link
(
self
):
"""TODO: This is a quick kludge to allow CS50 (and other courses) to
specify their own discussion forums as external links by specifying a
"""TODO: This is a quick kludge to allow CS50 (and other courses) to
specify their own discussion forums as external links by specifying a
"discussion_link" in their policy JSON file. This should later get
folded in with Syllabus, Course Info, and additional Custom tabs in a
folded in with Syllabus, Course Info, and additional Custom tabs in a
more sensible framework later."""
return
self
.
metadata
.
get
(
'discussion_link'
,
None
)
@property
def
hide_progress_tab
(
self
):
"""TODO: same as above, intended to let internal CS50 hide the progress tab
until we get grade integration set up."""
# Explicit comparison to True because we always want to return a bool.
return
self
.
metadata
.
get
(
'hide_progress_tab'
)
==
True
@property
def
title
(
self
):
return
self
.
display_name
...
...
common/lib/xmodule/xmodule/tests/test_import.py
View file @
999343d6
...
...
@@ -236,6 +236,10 @@ class ImportTestCase(unittest.TestCase):
# Also check that the grading policy loaded
self
.
assertEqual
(
two_toys
.
grade_cutoffs
[
'C'
],
0.5999
)
# Also check that keys from policy are run through the
# appropriate attribute maps -- 'graded' should be True, not 'true'
self
.
assertEqual
(
toy
.
metadata
[
'graded'
],
True
)
def
test_definition_loading
(
self
):
"""When two courses share the same org and course name and
...
...
common/lib/xmodule/xmodule/xml_module.py
View file @
999343d6
...
...
@@ -96,10 +96,14 @@ class XmlDescriptor(XModuleDescriptor):
# A dictionary mapping xml attribute names AttrMaps that describe how
# to import and export them
# Allow json to specify either the string "true", or the bool True. The string is preferred.
to_bool
=
lambda
val
:
val
==
'true'
or
val
==
True
from_bool
=
lambda
val
:
str
(
val
)
.
lower
()
bool_map
=
AttrMap
(
to_bool
,
from_bool
)
xml_attribute_map
=
{
# type conversion: want True/False in python, "true"/"false" in xml
'graded'
:
AttrMap
(
lambda
val
:
val
==
'true'
,
lambda
val
:
str
(
val
)
.
lower
())
,
'graded'
:
bool_map
,
'hide_progress_tab'
:
bool_map
,
}
...
...
@@ -232,6 +236,16 @@ class XmlDescriptor(XModuleDescriptor):
@classmethod
def
apply_policy
(
cls
,
metadata
,
policy
):
"""
Add the keys in policy to metadata, after processing them
through the attrmap. Updates the metadata dict in place.
"""
for
attr
in
policy
:
attr_map
=
cls
.
xml_attribute_map
.
get
(
attr
,
AttrMap
())
metadata
[
attr
]
=
attr_map
.
from_xml
(
policy
[
attr
])
@classmethod
def
from_xml
(
cls
,
xml_data
,
system
,
org
=
None
,
course
=
None
):
"""
Creates an instance of this descriptor from the supplied xml_data.
...
...
@@ -279,7 +293,7 @@ class XmlDescriptor(XModuleDescriptor):
# Set/override any metadata specified by policy
k
=
policy_key
(
location
)
if
k
in
system
.
policy
:
metadata
.
update
(
system
.
policy
[
k
])
cls
.
apply_policy
(
metadata
,
system
.
policy
[
k
])
return
cls
(
system
,
...
...
common/test/data/toy/policies/2012_Fall.json
View file @
999343d6
...
...
@@ -2,7 +2,8 @@
"course/2012_Fall"
:
{
"graceperiod"
:
"2 days 5 hours 59 minutes 59 seconds"
,
"start"
:
"2015-07-17T12:00"
,
"display_name"
:
"Toy Course"
"display_name"
:
"Toy Course"
,
"graded"
:
"true"
},
"chapter/Overview"
:
{
"display_name"
:
"Overview"
...
...
lms/templates/courseware/course_navigation.html
View file @
999343d6
...
...
@@ -37,7 +37,7 @@ def url_class(url):
% elif settings.MITX_FEATURES.get('ENABLE_DISCUSSION_SERVICE'):
<li
class=
"discussion"
><a
href=
"${reverse('django_comment_client.forum.views.forum_form_discussion', args=[course.id])}"
class=
"${url_class('discussion')}"
>
Discussion
</a></li>
##
<li
class=
"news"
><a
href=
"${reverse('news', args=[course.id])}"
class=
"${url_class('news')}"
>
News
</a></li>
% endif
% endif
## This is Askbot, which we should be retiring soon...
% if settings.MITX_FEATURES.get('ENABLE_DISCUSSION'):
...
...
@@ -48,7 +48,7 @@ def url_class(url):
% if settings.WIKI_ENABLED:
<li
class=
"wiki"
><a
href=
"${reverse('course_wiki', args=[course.id])}"
class=
"${url_class('wiki')}"
>
Wiki
</a></li>
% endif
% if user.is_authenticated():
% if user.is_authenticated()
and not course.hide_progress_tab
:
<li
class=
"profile"
><a
href=
"${reverse('progress', args=[course.id])}"
class=
"${url_class('progress')}"
>
Progress
</a></li>
% endif
% if staff_access:
...
...
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