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
1317e97d
Commit
1317e97d
authored
May 29, 2013
by
Giulio Gratta
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master' into feature/giulio/reset-master-stanford
parents
f53c4b44
42a55faf
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
72 additions
and
24 deletions
+72
-24
common/djangoapps/student/views.py
+2
-2
common/lib/capa/capa/tests/test_input_templates.py
+0
-0
common/lib/xmodule/xmodule/templates/videoalpha/default.yaml
+7
-3
common/lib/xmodule/xmodule/tests/test_logic.py
+33
-1
common/lib/xmodule/xmodule/videoalpha_module.py
+7
-5
lms/djangoapps/courseware/features/registration.feature
+4
-4
lms/djangoapps/courseware/features/registration.py
+11
-4
lms/urls.py
+7
-4
requirements/edx/github.txt
+1
-1
No files found.
common/djangoapps/student/views.py
View file @
1317e97d
...
@@ -527,12 +527,12 @@ def _do_create_account(post_vars):
...
@@ -527,12 +527,12 @@ def _do_create_account(post_vars):
js
=
{
'success'
:
False
}
js
=
{
'success'
:
False
}
# Figure out the cause of the integrity error
# Figure out the cause of the integrity error
if
len
(
User
.
objects
.
filter
(
username
=
post_vars
[
'username'
]))
>
0
:
if
len
(
User
.
objects
.
filter
(
username
=
post_vars
[
'username'
]))
>
0
:
js
[
'value'
]
=
"An account with th
is username
already exists."
js
[
'value'
]
=
"An account with th
e Public Username '"
+
post_vars
[
'username'
]
+
"'
already exists."
js
[
'field'
]
=
'username'
js
[
'field'
]
=
'username'
return
HttpResponse
(
json
.
dumps
(
js
))
return
HttpResponse
(
json
.
dumps
(
js
))
if
len
(
User
.
objects
.
filter
(
email
=
post_vars
[
'email'
]))
>
0
:
if
len
(
User
.
objects
.
filter
(
email
=
post_vars
[
'email'
]))
>
0
:
js
[
'value'
]
=
"An account with th
is e-mail
already exists."
js
[
'value'
]
=
"An account with th
e Email '"
+
post_vars
[
'email'
]
+
"'
already exists."
js
[
'field'
]
=
'email'
js
[
'field'
]
=
'email'
return
HttpResponse
(
json
.
dumps
(
js
))
return
HttpResponse
(
json
.
dumps
(
js
))
...
...
common/lib/capa/capa/tests/test_input_templates.py
View file @
1317e97d
This diff is collapsed.
Click to expand it.
common/lib/xmodule/xmodule/templates/videoalpha/default.yaml
View file @
1317e97d
---
---
metadata
:
metadata
:
display_name
:
default
display_name
:
Video Alpha 1
data_dir
:
a_made_up_name
version
:
1
data
:
|
data
:
|
<videoalpha youtube="0.75:JMD_ifUUfsU,1.0:OEoXaMPEzfM,1.25:AKqURZnYqpk,1.50:DYpADpL7jAY"/>
<videoalpha show_captions="true" sub="name_of_file" youtube="0.75:JMD_ifUUfsU,1.0:OEoXaMPEzfM,1.25:AKqURZnYqpk,1.50:DYpADpL7jAY" >
<source src="https://s3.amazonaws.com/edx-course-videos/edx-intro/edX-FA12-cware-1_100.mp4"/>
<source src="https://s3.amazonaws.com/edx-course-videos/edx-intro/edX-FA12-cware-1_100.webm"/>
<source src="https://s3.amazonaws.com/edx-course-videos/edx-intro/edX-FA12-cware-1_100.ogv"/>
</videoalpha>
children
:
[]
children
:
[]
common/lib/xmodule/xmodule/tests/test_logic.py
View file @
1317e97d
...
@@ -4,10 +4,12 @@
...
@@ -4,10 +4,12 @@
import
json
import
json
import
unittest
import
unittest
from
lxml
import
etree
from
xmodule.poll_module
import
PollDescriptor
from
xmodule.poll_module
import
PollDescriptor
from
xmodule.conditional_module
import
ConditionalDescriptor
from
xmodule.conditional_module
import
ConditionalDescriptor
from
xmodule.word_cloud_module
import
WordCloudDescriptor
from
xmodule.word_cloud_module
import
WordCloudDescriptor
from
xmodule.videoalpha_module
import
VideoAlphaDescriptor
class
PostData
:
class
PostData
:
"""Class which emulate postdata."""
"""Class which emulate postdata."""
...
@@ -117,3 +119,33 @@ class WordCloudModuleTest(LogicTest):
...
@@ -117,3 +119,33 @@ class WordCloudModuleTest(LogicTest):
)
)
self
.
assertEqual
(
100.0
,
sum
(
i
[
'percent'
]
for
i
in
response
[
'top_words'
])
)
self
.
assertEqual
(
100.0
,
sum
(
i
[
'percent'
]
for
i
in
response
[
'top_words'
])
)
class
VideoAlphaModuleTest
(
LogicTest
):
descriptor_class
=
VideoAlphaDescriptor
raw_model_data
=
{
'data'
:
'<videoalpha />'
}
def
test_get_timeframe_no_parameters
(
self
):
xmltree
=
etree
.
fromstring
(
'<videoalpha>test</videoalpha>'
)
output
=
self
.
xmodule
.
_get_timeframe
(
xmltree
)
self
.
assertEqual
(
output
,
(
''
,
''
))
def
test_get_timeframe_with_one_parameter
(
self
):
xmltree
=
etree
.
fromstring
(
'<videoalpha start_time="00:04:07">test</videoalpha>'
)
output
=
self
.
xmodule
.
_get_timeframe
(
xmltree
)
self
.
assertEqual
(
output
,
(
247
,
''
))
def
test_get_timeframe_with_two_parameters
(
self
):
xmltree
=
etree
.
fromstring
(
'''<videoalpha
start_time="00:04:07"
end_time="13:04:39"
>test</videoalpha>'''
)
output
=
self
.
xmodule
.
_get_timeframe
(
xmltree
)
self
.
assertEqual
(
output
,
(
247
,
47079
))
common/lib/xmodule/xmodule/videoalpha_module.py
View file @
1317e97d
...
@@ -93,7 +93,7 @@ class VideoAlphaModule(VideoAlphaFields, XModule):
...
@@ -93,7 +93,7 @@ class VideoAlphaModule(VideoAlphaFields, XModule):
return
result
return
result
def
_get_timeframe
(
self
,
xmltree
):
def
_get_timeframe
(
self
,
xmltree
):
""" Converts '
from' and 'to
' parameters in video tag to seconds.
""" Converts '
start_time' and 'end_time
' parameters in video tag to seconds.
If there are no parameters, returns empty string. """
If there are no parameters, returns empty string. """
def
parse_time
(
s
):
def
parse_time
(
s
):
...
@@ -103,11 +103,13 @@ class VideoAlphaModule(VideoAlphaFields, XModule):
...
@@ -103,11 +103,13 @@ class VideoAlphaModule(VideoAlphaFields, XModule):
return
''
return
''
else
:
else
:
x
=
time
.
strptime
(
s
,
'
%
H:
%
M:
%
S'
)
x
=
time
.
strptime
(
s
,
'
%
H:
%
M:
%
S'
)
return
datetime
.
timedelta
(
hours
=
x
.
tm_hour
,
return
datetime
.
timedelta
(
minutes
=
x
.
tm_min
,
hours
=
x
.
tm_hour
,
seconds
=
x
.
tm_sec
)
.
total_seconds
()
minutes
=
x
.
tm_min
,
seconds
=
x
.
tm_sec
)
.
total_seconds
()
return
parse_time
(
xmltree
.
get
(
'
from'
)),
parse_time
(
xmltree
.
get
(
'to
'
))
return
parse_time
(
xmltree
.
get
(
'
start_time'
)),
parse_time
(
xmltree
.
get
(
'end_time
'
))
def
handle_ajax
(
self
,
dispatch
,
get
):
def
handle_ajax
(
self
,
dispatch
,
get
):
"""Handle ajax calls to this video.
"""Handle ajax calls to this video.
...
...
lms/djangoapps/courseware/features/registration.feature
View file @
1317e97d
...
@@ -13,8 +13,8 @@ Feature: Register for a course
...
@@ -13,8 +13,8 @@ Feature: Register for a course
Scenario
:
I
can unregister for a course
Scenario
:
I
can unregister for a course
Given
I am registered for the course
"6.002x"
Given
I am registered for the course
"6.002x"
And
I visit the dashboard
And
I visit the dashboard
When
I click the link with the text
"Unregister"
Then
I should see the course numbered
"6.002x"
in my dashboard
And
I press the
"Unregister"
button in the Unenroll dialog
When
I unregister for the course numbered
"6.002x"
Then
All dialogs should be closed
Then
I should be on the dashboard page
And
I should be on the dashboard page
And
I should see
"Looks like you haven't registered for any courses yet."
somewhere in the page
And
I should see
"Looks like you haven't registered for any courses yet."
somewhere in the page
And
I should NOT see the course numbered
"6.002x"
in my dashboard
lms/djangoapps/courseware/features/registration.py
View file @
1317e97d
...
@@ -25,8 +25,15 @@ def i_should_see_that_course_in_my_dashboard(step, course):
...
@@ -25,8 +25,15 @@ def i_should_see_that_course_in_my_dashboard(step, course):
assert
world
.
is_css_present
(
course_link_css
)
assert
world
.
is_css_present
(
course_link_css
)
@step
(
u'I press the "([^"]*)" button in the Unenroll dialog'
)
@step
(
u'I should NOT see the course numbered "([^"]*)" in my dashboard$'
)
def
i_press_the_button_in_the_unenroll_dialog
(
step
,
value
):
def
i_should_not_see_that_course_in_my_dashboard
(
step
,
course
):
button_css
=
'section#unenroll-modal input[value="
%
s"]'
%
value
course_link_css
=
'section.my-courses a[href*="
%
s"]'
%
course
assert
not
world
.
is_css_present
(
course_link_css
)
@step
(
u'I unregister for the course numbered "([^"]*)"'
)
def
i_unregister_for_that_course
(
step
,
course
):
unregister_css
=
'section.info a[href*="#unenroll-modal"][data-course-number*="
%
s"]'
%
course
world
.
css_click
(
unregister_css
)
button_css
=
'section#unenroll-modal input[value="Unregister"]'
world
.
css_click
(
button_css
)
world
.
css_click
(
button_css
)
assert
world
.
is_css_present
(
'section.container.dashboard'
)
lms/urls.py
View file @
1317e97d
...
@@ -22,10 +22,6 @@ urlpatterns = ('', # nopep8
...
@@ -22,10 +22,6 @@ urlpatterns = ('', # nopep8
url
(
r'^admin_dashboard$'
,
'dashboard.views.dashboard'
),
url
(
r'^admin_dashboard$'
,
'dashboard.views.dashboard'
),
# Adding to allow debugging issues when prod is mysteriously different from staging
# (specifically missing get parameters in certain cases)
url
(
r'^debug_request$'
,
'util.views.debug_request'
),
url
(
r'^change_email$'
,
'student.views.change_email_request'
,
name
=
"change_email"
),
url
(
r'^change_email$'
,
'student.views.change_email_request'
,
name
=
"change_email"
),
url
(
r'^email_confirm/(?P<key>[^/]*)$'
,
'student.views.confirm_email_change'
),
url
(
r'^email_confirm/(?P<key>[^/]*)$'
,
'student.views.confirm_email_change'
),
url
(
r'^change_name$'
,
'student.views.change_name_request'
,
name
=
"change_name"
),
url
(
r'^change_name$'
,
'student.views.change_name_request'
,
name
=
"change_name"
),
...
@@ -334,6 +330,13 @@ if settings.DEBUG or settings.MITX_FEATURES.get('ENABLE_DJANGO_ADMIN_SITE'):
...
@@ -334,6 +330,13 @@ if settings.DEBUG or settings.MITX_FEATURES.get('ENABLE_DJANGO_ADMIN_SITE'):
## Jasmine and admin
## Jasmine and admin
urlpatterns
+=
(
url
(
r'^admin/'
,
include
(
admin
.
site
.
urls
)),)
urlpatterns
+=
(
url
(
r'^admin/'
,
include
(
admin
.
site
.
urls
)),)
if
settings
.
DEBUG
:
# Originally added to allow debugging issues when prod is
# mysteriously different from staging (specifically missing get
# parameters in certain cases), but removing from prod because
# it's a security risk.
urlpatterns
+=
(
url
(
r'^debug_request$'
,
'util.views.debug_request'
),)
if
settings
.
MITX_FEATURES
.
get
(
'AUTH_USE_OPENID'
):
if
settings
.
MITX_FEATURES
.
get
(
'AUTH_USE_OPENID'
):
urlpatterns
+=
(
urlpatterns
+=
(
url
(
r'^openid/login/$'
,
'django_openid_auth.views.login_begin'
,
name
=
'openid-login'
),
url
(
r'^openid/login/$'
,
'django_openid_auth.views.login_begin'
,
name
=
'openid-login'
),
...
...
requirements/edx/github.txt
View file @
1317e97d
...
@@ -9,4 +9,4 @@
...
@@ -9,4 +9,4 @@
# Our libraries:
# Our libraries:
-e git+https://github.com/edx/XBlock.git@2144a25d#egg=XBlock
-e git+https://github.com/edx/XBlock.git@2144a25d#egg=XBlock
-e git+https://github.com/edx/codejail.git@
72cf791
#egg=codejail
-e git+https://github.com/edx/codejail.git@
874361f
#egg=codejail
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