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
524db5e3
Commit
524db5e3
authored
Mar 11, 2013
by
Brian Talbot
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into fix/btalbot/studio-sasscleanup
parents
7a9fdb90
7806acc7
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
35 additions
and
48 deletions
+35
-48
.ruby-version
+1
-2
cms/djangoapps/contentstore/features/advanced-settings.py
+10
-13
cms/djangoapps/contentstore/features/common.py
+1
-1
cms/static/js/views/settings/advanced_view.js
+2
-2
common/lib/capa/capa/inputtypes.py
+6
-0
common/lib/capa/capa/templates/choicegroup.html
+9
-2
common/lib/capa/capa/tests/test_inputtypes.py
+2
-0
common/lib/xmodule/xmodule/course_module.py
+2
-2
lms/djangoapps/django_comment_client/utils.py
+2
-26
lms/static/images/university/delft/delft-cover.jpg
+0
-0
No files found.
.ruby-version
View file @
524db5e3
1.8.7-p371
\ No newline at end of file
1.9.3-p374
cms/djangoapps/contentstore/features/advanced-settings.py
View file @
524db5e3
...
...
@@ -39,7 +39,7 @@ def reload_the_page(step):
def
edit_the_name_of_a_policy_key
(
step
):
policy_key_css
=
'input.policy-key'
e
=
css_find
(
policy_key_css
)
.
first
e
.
fill
(
'
new'
)
e
.
type
(
'_
new'
)
@step
(
u'I press the "([^"]*)" notification button$'
)
...
...
@@ -97,7 +97,12 @@ def i_see_only_display_name(step):
@step
(
'there are no advanced policy settings$'
)
def
no_policy_settings
(
step
):
assert_policy_entries
([],
[])
keys_css
=
'input.policy-key'
val_css
=
'textarea.json'
k
=
world
.
browser
.
is_element_not_present_by_css
(
keys_css
,
5
)
v
=
world
.
browser
.
is_element_not_present_by_css
(
val_css
,
5
)
assert_true
(
k
)
assert_true
(
v
)
@step
(
'they are alphabetized$'
)
...
...
@@ -121,7 +126,7 @@ def the_policy_key_name_is_unchanged(step):
def
the_policy_key_name_is_changed
(
step
):
policy_key_css
=
'input.policy-key'
val
=
css_find
(
policy_key_css
)
.
first
.
value
assert_equal
(
val
,
'new'
)
assert_equal
(
val
,
'
display_name_
new'
)
@step
(
u'the policy key value is unchanged$'
)
...
...
@@ -170,8 +175,8 @@ def delete_entry(index):
def
assert_policy_entries
(
expected_keys
,
expected_values
):
assert_entries
(
'.key input'
,
expected_keys
)
assert_entries
(
'.json'
,
expected_values
)
assert_entries
(
'.key input
.policy-key
'
,
expected_keys
)
assert_entries
(
'
textarea
.json'
,
expected_values
)
def
assert_entries
(
css
,
expected_values
):
...
...
@@ -184,14 +189,6 @@ def assert_entries(css, expected_values):
def
click_save
():
css
=
"a.save-button"
# def is_shown(driver):
# visible = css_find(css).first.visible
# if visible:
# # Even when waiting for visible, this fails sporadically. Adding in a small wait.
# time.sleep(float(1))
# return visible
# wait_for(is_shown)
css_click_at
(
css
)
...
...
cms/djangoapps/contentstore/features/common.py
View file @
524db5e3
...
...
@@ -126,7 +126,7 @@ def css_find(css):
def
is_visible
(
driver
):
return
EC
.
visibility_of_element_located
((
By
.
CSS_SELECTOR
,
css
,))
assert_true
(
world
.
browser
.
is_element_present_by_css
(
css
,
5
)
)
world
.
browser
.
is_element_present_by_css
(
css
,
5
)
wait_for
(
is_visible
)
return
world
.
browser
.
find_by_css
(
css
)
...
...
cms/static/js/views/settings/advanced_view.js
View file @
524db5e3
...
...
@@ -229,7 +229,7 @@ CMS.Views.Settings.Advanced = CMS.Views.ValidatingView.extend({
var
error
=
{};
error
[
oldKey
]
=
'You have already defined "'
+
newKey
+
'" in the manual policy definitions.'
;
error
[
newKey
]
=
"You tried to enter a duplicate of this key."
;
this
.
model
.
trigger
(
"
error
"
,
this
.
model
,
error
);
this
.
model
.
trigger
(
"
invalid
"
,
this
.
model
,
error
);
return
false
;
}
...
...
@@ -245,7 +245,7 @@ CMS.Views.Settings.Advanced = CMS.Views.ValidatingView.extend({
// swap to the key which the map knows about
validation
[
oldKey
]
=
validation
[
newKey
];
}
this
.
model
.
trigger
(
"
error
"
,
this
.
model
,
validation
);
this
.
model
.
trigger
(
"
invalid
"
,
this
.
model
,
validation
);
// abandon update
return
;
}
...
...
common/lib/capa/capa/inputtypes.py
View file @
524db5e3
...
...
@@ -366,6 +366,12 @@ class ChoiceGroup(InputTypeBase):
self
.
choices
=
self
.
extract_choices
(
self
.
xml
)
@classmethod
def
get_attributes
(
cls
):
return
[
Attribute
(
"show_correctness"
,
"always"
),
Attribute
(
"submitted_message"
,
"Answer received."
)]
def
_extra_context
(
self
):
return
{
'input_type'
:
self
.
html_input_type
,
'choices'
:
self
.
choices
,
...
...
common/lib/capa/capa/templates/choicegroup.html
View file @
524db5e3
<form
class=
"choicegroup capa_inputtype"
id=
"inputtype_${id}"
>
<div
class=
"indicator_container"
>
% if input_type == 'checkbox' or not value:
% if status == 'unsubmitted':
% if status == 'unsubmitted'
or show_correctness == 'never'
:
<span
class=
"unanswered"
style=
"display:inline-block;"
id=
"status_${id}"
></span>
% elif status == 'correct':
<span
class=
"correct"
id=
"status_${id}"
></span>
...
...
@@ -21,11 +21,15 @@
<%
if
status =
=
'
correct
'
:
correctness =
'correct'
if
status =
=
'
incorrect
'
:
el
if
status =
=
'
incorrect
'
:
correctness =
'incorrect'
else:
correctness =
None
%
>
% if correctness and not show_correctness=='never':
class="choicegroup_${correctness}"
% endif
% endif
>
<input
type=
"${input_type}"
name=
"input_${id}${name_array_suffix}"
id=
"input_${id}_${choice_id}"
value=
"${choice_id}"
%
if
choice_id
in
value:
...
...
@@ -37,4 +41,7 @@
<span
id=
"answer_${id}"
></span>
</fieldset>
% if show_correctness == "never" and (value or status not in ['unsubmitted']):
<div
class=
"capa_alert"
>
${submitted_message}
</div>
%endif
</form>
common/lib/capa/capa/tests/test_inputtypes.py
View file @
524db5e3
...
...
@@ -102,6 +102,8 @@ class ChoiceGroupTest(unittest.TestCase):
'choices'
:
[(
'foil1'
,
'<text>This is foil One.</text>'
),
(
'foil2'
,
'<text>This is foil Two.</text>'
),
(
'foil3'
,
'This is foil Three.'
),
],
'show_correctness'
:
'always'
,
'submitted_message'
:
'Answer received.'
,
'name_array_suffix'
:
expected_suffix
,
# what is this for??
}
...
...
common/lib/xmodule/xmodule/course_module.py
View file @
524db5e3
...
...
@@ -246,7 +246,7 @@ class CourseDescriptor(SequenceDescriptor):
policy
=
json
.
loads
(
cls
.
read_grading_policy
(
paths
,
system
))
except
ValueError
:
system
.
error_tracker
(
"Unable to decode grading policy as json"
)
policy
=
None
policy
=
{}
# cdodge: import the grading policy information that is on disk and put into the
# descriptor 'definition' bucket as a dictionary so that it is persisted in the DB
...
...
@@ -398,7 +398,7 @@ class CourseDescriptor(SequenceDescriptor):
return
self
.
metadata
.
get
(
"cohort_config"
,
{})
.
get
(
"auto_cohort_groups"
,
[])
@property
def
top_level_discussion_topic_ids
(
self
):
"""
...
...
lms/djangoapps/django_comment_client/utils.py
View file @
524db5e3
...
...
@@ -18,7 +18,6 @@ import pystache_custom as pystache
from
xmodule.modulestore
import
Location
from
xmodule.modulestore.django
import
modulestore
from
xmodule.modulestore.search
import
path_to_location
log
=
logging
.
getLogger
(
__name__
)
...
...
@@ -166,7 +165,6 @@ def initialize_discussion_info(course):
# get all discussion models within this course_id
all_modules
=
modulestore
()
.
get_items
([
'i4x'
,
course
.
location
.
org
,
course
.
location
.
course
,
'discussion'
,
None
],
course_id
=
course_id
)
path_to_locations
=
{}
for
module
in
all_modules
:
skip_module
=
False
for
key
in
(
'id'
,
'discussion_category'
,
'for'
):
...
...
@@ -174,14 +172,6 @@ def initialize_discussion_info(course):
log
.
warning
(
"Required key '
%
s' not in discussion
%
s, leaving out of category map"
%
(
key
,
module
.
location
))
skip_module
=
True
# cdodge: pre-compute the path_to_location. Note this can throw an exception for any
# dangling discussion modules
try
:
path_to_locations
[
module
.
location
]
=
path_to_location
(
modulestore
(),
course
.
id
,
module
.
location
)
except
NoPathToItem
:
log
.
warning
(
"Could not compute path_to_location for {0}. Perhaps this is an orphaned discussion module?!? Skipping..."
.
format
(
module
.
location
))
skip_module
=
True
if
skip_module
:
continue
...
...
@@ -246,7 +236,6 @@ def initialize_discussion_info(course):
_DISCUSSIONINFO
[
course
.
id
][
'id_map'
]
=
discussion_id_map
_DISCUSSIONINFO
[
course
.
id
][
'category_map'
]
=
category_map
_DISCUSSIONINFO
[
course
.
id
][
'timestamp'
]
=
datetime
.
now
()
_DISCUSSIONINFO
[
course
.
id
][
'path_to_location'
]
=
path_to_locations
class
JsonResponse
(
HttpResponse
):
...
...
@@ -403,21 +392,8 @@ def get_courseware_context(content, course):
location
=
id_map
[
id
][
"location"
]
.
url
()
title
=
id_map
[
id
][
"title"
]
# cdodge: did we pre-compute, if so, then let's use that rather than recomputing
if
'path_to_location'
in
_DISCUSSIONINFO
[
course
.
id
]
and
location
in
_DISCUSSIONINFO
[
course
.
id
][
'path_to_location'
]:
(
course_id
,
chapter
,
section
,
position
)
=
_DISCUSSIONINFO
[
course
.
id
][
'path_to_location'
][
location
]
else
:
try
:
(
course_id
,
chapter
,
section
,
position
)
=
path_to_location
(
modulestore
(),
course
.
id
,
location
)
except
NoPathToItem
:
# Object is not in the graph any longer, let's just get path to the base of the course
# so that we can at least return something to the caller
(
course_id
,
chapter
,
section
,
position
)
=
path_to_location
(
modulestore
(),
course
.
id
,
course
.
location
)
url
=
reverse
(
'courseware_position'
,
kwargs
=
{
"course_id"
:
course_id
,
"chapter"
:
chapter
,
"section"
:
section
,
"position"
:
position
})
url
=
reverse
(
'jump_to'
,
kwargs
=
{
"course_id"
:
course
.
location
.
course_id
,
"location"
:
location
})
content_info
=
{
"courseware_url"
:
url
,
"courseware_title"
:
title
}
return
content_info
...
...
lms/static/images/university/delft/delft-cover.jpg
View replaced file @
7a9fdb90
View file @
524db5e3
170 KB
|
W:
|
H:
193 KB
|
W:
|
H:
2-up
Swipe
Onion skin
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