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
6c546fbf
Commit
6c546fbf
authored
May 13, 2014
by
Calen Pennington
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix merge conflicts
parent
240d91da
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
56 additions
and
353 deletions
+56
-353
cms/djangoapps/contentstore/management/commands/tests/test_import.py
+13
-54
cms/djangoapps/contentstore/tests/test_import.py
+2
-10
common/lib/xmodule/xmodule/modulestore/tests/test_mongo.py
+1
-11
common/lib/xmodule/xmodule/modulestore/xml_importer.py
+0
-37
lms/djangoapps/bulk_email/tests/test_course_optout.py
+0
-24
lms/djangoapps/bulk_email/tests/test_email.py
+2
-18
lms/djangoapps/bulk_email/tests/test_err_handling.py
+2
-6
lms/djangoapps/class_dashboard/tests/test_dashboard_data.py
+0
-14
lms/djangoapps/courseware/courses.py
+3
-13
lms/djangoapps/django_comment_client/base/views.py
+2
-24
lms/djangoapps/instructor/tests/test_email.py
+2
-10
lms/djangoapps/instructor/tests/test_legacy_anon_csv.py
+1
-5
lms/djangoapps/instructor/tests/test_legacy_download_csv.py
+1
-5
lms/djangoapps/instructor/tests/test_legacy_email.py
+1
-5
lms/djangoapps/instructor/tests/test_legacy_enrollment.py
+7
-35
lms/djangoapps/instructor/tests/test_legacy_forum_admin.py
+7
-35
lms/djangoapps/instructor/tests/test_legacy_gradebook.py
+1
-5
lms/djangoapps/instructor/tests/test_legacy_raw_download_csv.py
+1
-5
lms/djangoapps/instructor/tests/test_legacy_reset.py
+1
-5
lms/djangoapps/instructor/views/api.py
+1
-5
lms/djangoapps/instructor/views/instructor_dashboard.py
+7
-19
lms/djangoapps/instructor/views/legacy.py
+1
-8
No files found.
cms/djangoapps/contentstore/management/commands/tests/test_import.py
View file @
6c546fbf
...
@@ -23,26 +23,21 @@ class TestImport(ModuleStoreTestCase):
...
@@ -23,26 +23,21 @@ class TestImport(ModuleStoreTestCase):
Unit tests for importing a course from command line
Unit tests for importing a course from command line
"""
"""
<<<<<<<
HEAD
BASE_COURSE_KEY
=
SlashSeparatedCourseKey
(
u'edX'
,
u'test_import_course'
,
u'2013_Spring'
)
COURSE_KEY
=
SlashSeparatedCourseKey
(
u'edX'
,
u'test_import_course'
,
u'2013_Spring'
)
DIFF_KEY
=
SlashSeparatedCourseKey
(
u'edX'
,
u'test_import_course'
,
u'2014_Spring'
)
DIFF_KEY
=
SlashSeparatedCourseKey
(
u'edX'
,
u'test_import_course'
,
u'2014_Spring'
)
=======
TRUNCATED_KEY
=
SlashSeparatedCourseKey
(
u'edX'
,
u'test_import'
,
u'2014_Spring'
)
BASE_COURSE_ID
=
[
'EDx'
,
'0.00x'
,
'2013_Spring'
,
]
DIFF_RUN
=
[
'EDx'
,
'0.00x'
,
'2014_Spring'
,
]
TRUNCATED_COURSE
=
[
'EDx'
,
'0.00'
,
'2014_Spring'
,
]
def
create_course_xml
(
self
,
content_dir
,
course_id
):
def
create_course_xml
(
self
,
content_dir
,
course_id
):
directory
=
tempfile
.
mkdtemp
(
dir
=
content_dir
)
directory
=
tempfile
.
mkdtemp
(
dir
=
content_dir
)
os
.
makedirs
(
os
.
path
.
join
(
directory
,
"course"
))
os
.
makedirs
(
os
.
path
.
join
(
directory
,
"course"
))
with
open
(
os
.
path
.
join
(
directory
,
"course.xml"
),
"w+"
)
as
f
:
with
open
(
os
.
path
.
join
(
directory
,
"course.xml"
),
"w+"
)
as
f
:
f
.
write
(
'<course url_name="{0
[2]}" org="{0[0]
}" '
f
.
write
(
'<course url_name="{0
.run}" org="{0.org
}" '
'course="{0
[1]
}"/>'
.
format
(
course_id
))
'course="{0
.course
}"/>'
.
format
(
course_id
))
with
open
(
os
.
path
.
join
(
directory
,
"course"
,
"{0
[2]
}.xml"
.
format
(
course_id
)),
"w+"
)
as
f
:
with
open
(
os
.
path
.
join
(
directory
,
"course"
,
"{0
.run
}.xml"
.
format
(
course_id
)),
"w+"
)
as
f
:
f
.
write
(
'<course></course>'
)
f
.
write
(
'<course></course>'
)
return
directory
return
directory
>>>>>>>
edx
/
master
def
setUp
(
self
):
def
setUp
(
self
):
"""
"""
...
@@ -53,49 +48,22 @@ class TestImport(ModuleStoreTestCase):
...
@@ -53,49 +48,22 @@ class TestImport(ModuleStoreTestCase):
self
.
addCleanup
(
shutil
.
rmtree
,
self
.
content_dir
)
self
.
addCleanup
(
shutil
.
rmtree
,
self
.
content_dir
)
# Create good course xml
# Create good course xml
<<<<<<<
HEAD
self
.
good_dir
=
self
.
create_course_xml
(
self
.
content_dir
,
self
.
BASE_COURSE_KEY
)
self
.
good_dir
=
tempfile
.
mkdtemp
(
dir
=
self
.
content_dir
)
os
.
makedirs
(
os
.
path
.
join
(
self
.
good_dir
,
"course"
))
with
open
(
os
.
path
.
join
(
self
.
good_dir
,
"course.xml"
),
"w+"
)
as
f
:
f
.
write
(
'<course url_name="{0.run}" org="{0.org}" '
'course="{0.course}"/>'
.
format
(
self
.
COURSE_KEY
))
with
open
(
os
.
path
.
join
(
self
.
good_dir
,
"course"
,
"{0.run}.xml"
.
format
(
self
.
COURSE_KEY
)),
"w+"
)
as
f
:
f
.
write
(
'<course></course>'
)
# Create run changed course xml
# Create run changed course xml
self
.
dupe_dir
=
tempfile
.
mkdtemp
(
dir
=
self
.
content_dir
)
self
.
dupe_dir
=
self
.
create_course_xml
(
self
.
content_dir
,
self
.
DIFF_KEY
)
os
.
makedirs
(
os
.
path
.
join
(
self
.
dupe_dir
,
"course"
))
with
open
(
os
.
path
.
join
(
self
.
dupe_dir
,
"course.xml"
),
"w+"
)
as
f
:
f
.
write
(
'<course url_name="{0.run}" org="{0.org}" '
'course="{0.course}"/>'
.
format
(
self
.
DIFF_KEY
))
with
open
(
os
.
path
.
join
(
self
.
dupe_dir
,
"course"
,
"{0.run}.xml"
.
format
(
self
.
DIFF_KEY
)),
"w+"
)
as
f
:
f
.
write
(
'<course></course>'
)
=======
self
.
good_dir
=
self
.
create_course_xml
(
self
.
content_dir
,
self
.
BASE_COURSE_ID
)
# Create run changed course xml
self
.
dupe_dir
=
self
.
create_course_xml
(
self
.
content_dir
,
self
.
DIFF_RUN
)
# Create course XML where TRUNCATED_COURSE.org == BASE_COURSE_ID.org
# Create course XML where TRUNCATED_COURSE.org == BASE_COURSE_ID.org
# and BASE_COURSE_ID.startswith(TRUNCATED_COURSE.course)
# and BASE_COURSE_ID.startswith(TRUNCATED_COURSE.course)
self
.
course_dir
=
self
.
create_course_xml
(
self
.
content_dir
,
self
.
TRUNCATED_COURSE
)
self
.
course_dir
=
self
.
create_course_xml
(
self
.
content_dir
,
self
.
TRUNCATED_KEY
)
>>>>>>>
edx
/
master
def
test_forum_seed
(
self
):
def
test_forum_seed
(
self
):
"""
"""
Tests that forum roles were created with import.
Tests that forum roles were created with import.
"""
"""
<<<<<<<
HEAD
self
.
assertFalse
(
are_permissions_roles_seeded
(
self
.
BASE_COURSE_KEY
))
self
.
assertFalse
(
are_permissions_roles_seeded
(
self
.
COURSE_KEY
))
call_command
(
'import'
,
self
.
content_dir
,
self
.
good_dir
)
self
.
assertTrue
(
are_permissions_roles_seeded
(
self
.
COURSE_KEY
))
=======
self
.
assertFalse
(
are_permissions_roles_seeded
(
'/'
.
join
(
self
.
BASE_COURSE_ID
)))
call_command
(
'import'
,
self
.
content_dir
,
self
.
good_dir
)
call_command
(
'import'
,
self
.
content_dir
,
self
.
good_dir
)
self
.
assertTrue
(
are_permissions_roles_seeded
(
'/'
.
join
(
self
.
BASE_COURSE_ID
)))
self
.
assertTrue
(
are_permissions_roles_seeded
(
self
.
BASE_COURSE_KEY
))
>>>>>>>
edx
/
master
def
test_duplicate_with_url
(
self
):
def
test_duplicate_with_url
(
self
):
"""
"""
...
@@ -106,19 +74,11 @@ class TestImport(ModuleStoreTestCase):
...
@@ -106,19 +74,11 @@ class TestImport(ModuleStoreTestCase):
# Load up base course and verify it is available
# Load up base course and verify it is available
call_command
(
'import'
,
self
.
content_dir
,
self
.
good_dir
)
call_command
(
'import'
,
self
.
content_dir
,
self
.
good_dir
)
store
=
modulestore
()
store
=
modulestore
()
<<<<<<<
HEAD
self
.
assertIsNotNone
(
store
.
get_course
(
self
.
BASE_COURSE_KEY
))
self
.
assertIsNotNone
(
store
.
get_course
(
self
.
COURSE_KEY
))
# Now load up duped course and verify it doesn't load
# Now load up duped course and verify it doesn't load
call_command
(
'import'
,
self
.
content_dir
,
self
.
dupe_dir
)
call_command
(
'import'
,
self
.
content_dir
,
self
.
dupe_dir
)
self
.
assertIsNone
(
store
.
get_course
(
self
.
DIFF_KEY
))
self
.
assertIsNone
(
store
.
get_course
(
self
.
DIFF_KEY
))
self
.
assertTrue
(
are_permissions_roles_seeded
(
self
.
COURSE_KEY
))
=======
self
.
assertIsNotNone
(
store
.
get_course
(
'/'
.
join
(
self
.
BASE_COURSE_ID
)))
# Now load up duped course and verify it doesn't load
call_command
(
'import'
,
self
.
content_dir
,
self
.
dupe_dir
)
self
.
assertIsNone
(
store
.
get_course
(
'/'
.
join
(
self
.
DIFF_RUN
)))
def
test_truncated_course_with_url
(
self
):
def
test_truncated_course_with_url
(
self
):
"""
"""
...
@@ -130,9 +90,8 @@ class TestImport(ModuleStoreTestCase):
...
@@ -130,9 +90,8 @@ class TestImport(ModuleStoreTestCase):
# Load up base course and verify it is available
# Load up base course and verify it is available
call_command
(
'import'
,
self
.
content_dir
,
self
.
good_dir
)
call_command
(
'import'
,
self
.
content_dir
,
self
.
good_dir
)
store
=
modulestore
()
store
=
modulestore
()
self
.
assertIsNotNone
(
store
.
get_course
(
'/'
.
join
(
self
.
BASE_COURSE_ID
)
))
self
.
assertIsNotNone
(
store
.
get_course
(
self
.
BASE_COURSE_KEY
))
# Now load up the course with a similar course_id and verify it loads
# Now load up the course with a similar course_id and verify it loads
call_command
(
'import'
,
self
.
content_dir
,
self
.
course_dir
)
call_command
(
'import'
,
self
.
content_dir
,
self
.
course_dir
)
self
.
assertIsNotNone
(
store
.
get_course
(
'/'
.
join
(
self
.
TRUNCATED_COURSE
)))
self
.
assertIsNotNone
(
store
.
get_course
(
self
.
TRUNCATED_KEY
))
>>>>>>>
edx
/
master
cms/djangoapps/contentstore/tests/test_import.py
View file @
6c546fbf
...
@@ -70,11 +70,6 @@ class ContentStoreImportTest(ModuleStoreTestCase):
...
@@ -70,11 +70,6 @@ class ContentStoreImportTest(ModuleStoreTestCase):
'''
'''
content_store
=
contentstore
()
content_store
=
contentstore
()
module_store
=
modulestore
(
'direct'
)
module_store
=
modulestore
(
'direct'
)
<<<<<<<
HEAD
import_from_xml
(
module_store
,
'common/test/data/'
,
[
'test_import_course'
],
static_content_store
=
content_store
,
do_import_static
=
False
,
verbose
=
True
)
course_id
=
SlashSeparatedCourseKey
(
'edX'
,
'test_import_course'
,
'2012_Fall'
)
course
=
module_store
.
get_course
(
course_id
)
=======
import_from_xml
(
import_from_xml
(
module_store
,
module_store
,
'common/test/data/'
,
'common/test/data/'
,
...
@@ -83,11 +78,8 @@ class ContentStoreImportTest(ModuleStoreTestCase):
...
@@ -83,11 +78,8 @@ class ContentStoreImportTest(ModuleStoreTestCase):
do_import_static
=
False
,
do_import_static
=
False
,
verbose
=
True
,
verbose
=
True
,
)
)
course_location
=
CourseDescriptor
.
id_to_location
(
course_id
=
SlashSeparatedCourseKey
(
'edX'
,
'test_import_course'
,
'2012_Fall'
)
'edX/test_import_course/2012_Fall'
course
=
module_store
.
get_course
(
course_id
)
)
course
=
module_store
.
get_item
(
course_location
)
>>>>>>>
edx
/
master
self
.
assertIsNotNone
(
course
)
self
.
assertIsNotNone
(
course
)
return
module_store
,
content_store
,
course
return
module_store
,
content_store
,
course
...
...
common/lib/xmodule/xmodule/modulestore/tests/test_mongo.py
View file @
6c546fbf
# pylint: disable=E0611
# pylint: disable=E0611
from
nose.tools
import
assert_equals
,
assert_raises
,
\
from
nose.tools
import
assert_equals
,
assert_raises
,
\
<<<<<<<
HEAD
assert_not_equals
,
assert_false
,
assert_true
,
assert_greater
,
assert_is_instance
assert_not_equals
,
assert_false
,
assert_true
,
assert_greater
,
assert_is_instance
=======
assert_not_equals
,
assert_false
,
assert_true
from
itertools
import
ifilter
from
itertools
import
ifilter
>>>>>>>
edx
/
master
# pylint: enable=E0611
# pylint: enable=E0611
from
path
import
path
from
path
import
path
import
pymongo
import
pymongo
...
@@ -26,11 +22,8 @@ from xmodule.tests import DATA_DIR
...
@@ -26,11 +22,8 @@ from xmodule.tests import DATA_DIR
from
xmodule.modulestore
import
Location
,
MONGO_MODULESTORE_TYPE
from
xmodule.modulestore
import
Location
,
MONGO_MODULESTORE_TYPE
from
xmodule.modulestore.mongo
import
MongoModuleStore
,
MongoKeyValueStore
from
xmodule.modulestore.mongo
import
MongoModuleStore
,
MongoKeyValueStore
from
xmodule.modulestore.draft
import
DraftModuleStore
from
xmodule.modulestore.draft
import
DraftModuleStore
<<<<<<<
HEAD
from
xmodule.modulestore.locations
import
SlashSeparatedCourseKey
,
AssetLocation
from
xmodule.modulestore.locations
import
SlashSeparatedCourseKey
,
AssetLocation
=======
from
xmodule.modulestore.xml_exporter
import
export_to_xml
from
xmodule.modulestore.xml_exporter
import
export_to_xml
>>>>>>>
edx
/
master
from
xmodule.modulestore.xml_importer
import
import_from_xml
,
perform_xlint
from
xmodule.modulestore.xml_importer
import
import_from_xml
,
perform_xlint
from
xmodule.contentstore.mongo
import
MongoContentStore
from
xmodule.contentstore.mongo
import
MongoContentStore
...
@@ -363,7 +356,6 @@ class TestMongoModuleStore(unittest.TestCase):
...
@@ -363,7 +356,6 @@ class TestMongoModuleStore(unittest.TestCase):
}
}
)
)
<<<<<<<
HEAD
def
check_xblock_fields
():
def
check_xblock_fields
():
def
check_children
(
xblock
):
def
check_children
(
xblock
):
for
child
in
xblock
.
children
:
for
child
in
xblock
.
children
:
...
@@ -403,7 +395,7 @@ class TestMongoModuleStore(unittest.TestCase):
...
@@ -403,7 +395,7 @@ class TestMongoModuleStore(unittest.TestCase):
setup_test
()
setup_test
()
check_xblock_fields
()
check_xblock_fields
()
check_mongo_fields
()
check_mongo_fields
()
=======
def
test_export_course_image
(
self
):
def
test_export_course_image
(
self
):
"""
"""
Test to make sure that we have a course image in the contentstore,
Test to make sure that we have a course image in the contentstore,
...
@@ -454,8 +446,6 @@ class TestMongoModuleStore(unittest.TestCase):
...
@@ -454,8 +446,6 @@ class TestMongoModuleStore(unittest.TestCase):
shutil
.
rmtree
(
root_dir
)
shutil
.
rmtree
(
root_dir
)
>>>>>>>
edx
/
master
class
TestMongoKeyValueStore
(
object
):
class
TestMongoKeyValueStore
(
object
):
"""
"""
Tests for MongoKeyValueStore.
Tests for MongoKeyValueStore.
...
...
common/lib/xmodule/xmodule/modulestore/xml_importer.py
View file @
6c546fbf
...
@@ -188,43 +188,6 @@ def import_from_xml(
...
@@ -188,43 +188,6 @@ def import_from_xml(
for
module
in
xml_module_store
.
modules
[
course_key
]
.
itervalues
():
for
module
in
xml_module_store
.
modules
[
course_key
]
.
itervalues
():
if
module
.
scope_ids
.
block_type
==
'course'
:
if
module
.
scope_ids
.
block_type
==
'course'
:
course_data_path
=
path
(
data_dir
)
/
module
.
data_dir
course_data_path
=
path
(
data_dir
)
/
module
.
data_dir
<<<<<<<
HEAD
=======
course_location
=
module
.
location
course_org_lower
=
course_location
.
org
.
lower
()
course_number_lower
=
course_location
.
course
.
lower
()
# Check to see if a course with the same
# pseudo_course_id, but different run exists in
# the passed store to avoid broken courses
courses
=
store
.
get_courses
()
bad_run
=
False
if
target_location_namespace
is
None
:
for
course
in
courses
:
if
course
.
location
.
org
.
lower
()
==
course_org_lower
and
\
course
.
location
.
course
.
lower
()
==
course_number_lower
:
log
.
debug
(
'Import is overwriting existing course'
)
# Importing over existing course, check
# that runs match or fail
if
course
.
location
.
name
!=
module
.
location
.
name
:
log
.
error
(
'A course with ID
%
s exists, and this '
'course has the same organization and '
'course number, but a different term that '
'is fully identified as
%
s.'
,
course
.
location
.
course_id
,
module
.
location
.
course_id
)
bad_run
=
True
break
if
bad_run
:
# Skip this course, but keep trying to import courses
continue
log
.
debug
(
'======> IMPORTING course to location {loc}'
.
format
(
loc
=
course_location
))
>>>>>>>
edx
/
master
log
.
debug
(
u'======> IMPORTING course {course_key}'
.
format
(
log
.
debug
(
u'======> IMPORTING course {course_key}'
.
format
(
course_key
=
course_key
,
course_key
=
course_key
,
...
...
lms/djangoapps/bulk_email/tests/test_course_optout.py
View file @
6c546fbf
...
@@ -53,29 +53,13 @@ class TestOptoutCourseEmails(ModuleStoreTestCase):
...
@@ -53,29 +53,13 @@ class TestOptoutCourseEmails(ModuleStoreTestCase):
def
navigate_to_email_view
(
self
):
def
navigate_to_email_view
(
self
):
"""Navigate to the instructor dash's email view"""
"""Navigate to the instructor dash's email view"""
# Pull up email view on instructor dashboard
# Pull up email view on instructor dashboard
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
})
# Response loads the whole instructor dashboard, so no need to explicitly
# Response loads the whole instructor dashboard, so no need to explicitly
# navigate to a particular email section
# navigate to a particular email section
>>>>>>>
edx
/
master
response
=
self
.
client
.
get
(
url
)
response
=
self
.
client
.
get
(
url
)
email_section
=
'<div class="vert-left send-email" id="section-send-email">'
email_section
=
'<div class="vert-left send-email" id="section-send-email">'
# If this fails, it is likely because ENABLE_INSTRUCTOR_EMAIL is set to False
# If this fails, it is likely because ENABLE_INSTRUCTOR_EMAIL is set to False
<<<<<<<
HEAD
self
.
assertTrue
(
email_link
in
response
.
content
)
# Select the Email view of the instructor dash
session
=
self
.
client
.
session
session
[
u'idash_mode:{0}'
.
format
(
self
.
course
.
location
.
course_key
.
to_deprecated_string
())]
=
'Email'
session
.
save
()
response
=
self
.
client
.
get
(
url
)
selected_email_link
=
'<a href="#" onclick="goto(
\'
Email
\'
)" class="selectedmode">Email</a>'
self
.
assertTrue
(
selected_email_link
in
response
.
content
)
=======
self
.
assertTrue
(
email_section
in
response
.
content
)
self
.
assertTrue
(
email_section
in
response
.
content
)
>>>>>>>
edx
/
master
@patch.dict
(
settings
.
FEATURES
,
{
'ENABLE_INSTRUCTOR_EMAIL'
:
True
,
'REQUIRE_COURSE_EMAIL_AUTH'
:
False
})
@patch.dict
(
settings
.
FEATURES
,
{
'ENABLE_INSTRUCTOR_EMAIL'
:
True
,
'REQUIRE_COURSE_EMAIL_AUTH'
:
False
})
def
test_optout_course
(
self
):
def
test_optout_course
(
self
):
...
@@ -93,10 +77,6 @@ class TestOptoutCourseEmails(ModuleStoreTestCase):
...
@@ -93,10 +77,6 @@ class TestOptoutCourseEmails(ModuleStoreTestCase):
self
.
client
.
login
(
username
=
self
.
instructor
.
username
,
password
=
"test"
)
self
.
client
.
login
(
username
=
self
.
instructor
.
username
,
password
=
"test"
)
self
.
navigate_to_email_view
()
self
.
navigate_to_email_view
()
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
=======
>>>>>>>
edx
/
master
test_email
=
{
test_email
=
{
'action'
:
'Send email'
,
'action'
:
'Send email'
,
'send_to'
:
'all'
,
'send_to'
:
'all'
,
...
@@ -125,10 +105,6 @@ class TestOptoutCourseEmails(ModuleStoreTestCase):
...
@@ -125,10 +105,6 @@ class TestOptoutCourseEmails(ModuleStoreTestCase):
self
.
client
.
login
(
username
=
self
.
instructor
.
username
,
password
=
"test"
)
self
.
client
.
login
(
username
=
self
.
instructor
.
username
,
password
=
"test"
)
self
.
navigate_to_email_view
()
self
.
navigate_to_email_view
()
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
=======
>>>>>>>
edx
/
master
test_email
=
{
test_email
=
{
'action'
:
'Send email'
,
'action'
:
'Send email'
,
'send_to'
:
'all'
,
'send_to'
:
'all'
,
...
...
lms/djangoapps/bulk_email/tests/test_email.py
View file @
6c546fbf
...
@@ -71,34 +71,18 @@ class TestEmailSendFromDashboard(ModuleStoreTestCase):
...
@@ -71,34 +71,18 @@ class TestEmailSendFromDashboard(ModuleStoreTestCase):
self
.
client
.
login
(
username
=
self
.
instructor
.
username
,
password
=
"test"
)
self
.
client
.
login
(
username
=
self
.
instructor
.
username
,
password
=
"test"
)
# Pull up email view on instructor dashboard
# Pull up email view on instructor dashboard
<<<<<<<
HEAD
self
.
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
self
.
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
=======
self
.
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
})
# Response loads the whole instructor dashboard, so no need to explicitly
# Response loads the whole instructor dashboard, so no need to explicitly
# navigate to a particular email section
# navigate to a particular email section
>>>>>>>
edx
/
master
response
=
self
.
client
.
get
(
self
.
url
)
response
=
self
.
client
.
get
(
self
.
url
)
email_section
=
'<div class="vert-left send-email" id="section-send-email">'
email_section
=
'<div class="vert-left send-email" id="section-send-email">'
# If this fails, it is likely because ENABLE_INSTRUCTOR_EMAIL is set to False
# If this fails, it is likely because ENABLE_INSTRUCTOR_EMAIL is set to False
<<<<<<<
HEAD
self
.
assertTrue
(
email_link
in
response
.
content
)
# Select the Email view of the instructor dash
session
=
self
.
client
.
session
session
[
u'idash_mode:{0}'
.
format
(
self
.
course
.
location
.
course_key
.
to_deprecated_string
())]
=
'Email'
session
.
save
()
response
=
self
.
client
.
get
(
self
.
url
)
selected_email_link
=
'<a href="#" onclick="goto(
\'
Email
\'
)" class="selectedmode">Email</a>'
self
.
assertTrue
(
selected_email_link
in
response
.
content
)
=======
self
.
assertTrue
(
email_section
in
response
.
content
)
self
.
assertTrue
(
email_section
in
response
.
content
)
self
.
send_mail_url
=
reverse
(
'send_email'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
})
self
.
send_mail_url
=
reverse
(
'send_email'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()
})
self
.
success_content
=
{
self
.
success_content
=
{
'course_id'
:
self
.
course
.
id
,
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()
,
'success'
:
True
,
'success'
:
True
,
}
}
>>>>>>>
edx
/
master
def
tearDown
(
self
):
def
tearDown
(
self
):
"""
"""
...
...
lms/djangoapps/bulk_email/tests/test_err_handling.py
View file @
6c546fbf
...
@@ -55,16 +55,12 @@ class TestEmailErrors(ModuleStoreTestCase):
...
@@ -55,16 +55,12 @@ class TestEmailErrors(ModuleStoreTestCase):
# load initial content (since we don't run migrations as part of tests):
# load initial content (since we don't run migrations as part of tests):
call_command
(
"loaddata"
,
"course_email_template.json"
)
call_command
(
"loaddata"
,
"course_email_template.json"
)
<<<<<<<
HEAD
self
.
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
self
.
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
=======
self
.
send_mail_url
=
reverse
(
'send_email'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
self
.
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
})
self
.
send_mail_url
=
reverse
(
'send_email'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
})
self
.
success_content
=
{
self
.
success_content
=
{
'course_id'
:
self
.
course
.
id
,
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()
,
'success'
:
True
,
'success'
:
True
,
}
}
>>>>>>>
edx
/
master
def
tearDown
(
self
):
def
tearDown
(
self
):
patch
.
stopall
()
patch
.
stopall
()
...
...
lms/djangoapps/class_dashboard/tests/test_dashboard_data.py
View file @
6c546fbf
...
@@ -252,20 +252,6 @@ class TestGetProblemGradeDistribution(ModuleStoreTestCase):
...
@@ -252,20 +252,6 @@ class TestGetProblemGradeDistribution(ModuleStoreTestCase):
b_section_has_problem
=
get_array_section_has_problem
(
self
.
course
.
id
)
b_section_has_problem
=
get_array_section_has_problem
(
self
.
course
.
id
)
self
.
assertEquals
(
b_section_has_problem
[
0
],
True
)
self
.
assertEquals
(
b_section_has_problem
[
0
],
True
)
<<<<<<<
HEAD
:
lms
/
djangoapps
/
class_dashboard
/
tests
/
test_dashboard_data
.
py
def
test_dashboard
(
self
):
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
response
=
self
.
client
.
post
(
url
,
{
'idash_mode'
:
'Metrics'
}
)
self
.
assertContains
(
response
,
'<h2>Course Statistics At A Glance</h2>'
)
=======
>>>>>>>
edx
/
master
:
lms
/
djangoapps
/
class_dashboard
/
tests
/
test_dashboard_data
.
py
def
test_has_instructor_access_for_class
(
self
):
def
test_has_instructor_access_for_class
(
self
):
"""
"""
Test for instructor access
Test for instructor access
...
...
lms/djangoapps/courseware/courses.py
View file @
6c546fbf
...
@@ -103,18 +103,9 @@ def get_opt_course_with_access(user, action, course_key):
...
@@ -103,18 +103,9 @@ def get_opt_course_with_access(user, action, course_key):
def
course_image_url
(
course
):
def
course_image_url
(
course
):
<<<<<<<
HEAD
""" Determine whether this is an XML or Studio-backed course, and return the appropriate course_image URL """
if
course
.
static_asset_path
or
modulestore
()
.
get_modulestore_type
(
course
.
id
)
==
XML_MODULESTORE_TYPE
:
return
'/static/'
+
(
course
.
static_asset_path
or
getattr
(
course
,
'data_dir'
,
''
))
+
"/images/course_image.jpg"
else
:
loc
=
StaticContent
.
compute_location
(
course
.
location
.
course_key
,
course
.
course_image
)
_path
=
loc
.
to_deprecated_string
()
return
_path
=======
"""Try to look up the image url for the course. If it's not found,
"""Try to look up the image url for the course. If it's not found,
log an error and return the dead link"""
log an error and return the dead link"""
if
course
.
static_asset_path
or
modulestore
()
.
get_modulestore_type
(
course
.
location
.
course_
id
)
==
XML_MODULESTORE_TYPE
:
if
course
.
static_asset_path
or
modulestore
()
.
get_modulestore_type
(
course
.
id
)
==
XML_MODULESTORE_TYPE
:
# If we are a static course with the course_image attribute
# If we are a static course with the course_image attribute
# set different than the default, return that path so that
# set different than the default, return that path so that
# courses can use custom course image paths, otherwise just
# courses can use custom course image paths, otherwise just
...
@@ -125,10 +116,9 @@ def course_image_url(course):
...
@@ -125,10 +116,9 @@ def course_image_url(course):
else
:
else
:
url
+=
'/images/course_image.jpg'
url
+=
'/images/course_image.jpg'
else
:
else
:
loc
=
StaticContent
.
compute_location
(
course
.
location
.
org
,
course
.
location
.
course
,
course
.
course_image
)
loc
=
StaticContent
.
compute_location
(
course
.
id
,
course
.
course_image
)
url
=
StaticContent
.
get_url_path_from_location
(
loc
)
url
=
loc
.
to_deprecated_string
(
)
return
url
return
url
>>>>>>>
edx
/
master
def
find_file
(
filesystem
,
dirs
,
filename
):
def
find_file
(
filesystem
,
dirs
,
filename
):
...
...
lms/djangoapps/django_comment_client/base/views.py
View file @
6c546fbf
...
@@ -86,26 +86,15 @@ def create_thread(request, course_id, commentable_id):
...
@@ -86,26 +86,15 @@ def create_thread(request, course_id, commentable_id):
if
'body'
not
in
post
or
not
post
[
'body'
]
.
strip
():
if
'body'
not
in
post
or
not
post
[
'body'
]
.
strip
():
return
JsonError
(
_
(
"Body can't be empty"
))
return
JsonError
(
_
(
"Body can't be empty"
))
<<<<<<<
HEAD
thread
=
cc
.
Thread
(
**
extract
(
post
,
[
'body'
,
'title'
]))
thread
.
update_attributes
(
**
{
'anonymous'
:
anonymous
,
'anonymous_to_peers'
:
anonymous_to_peers
,
'commentable_id'
:
commentable_id
,
'course_id'
:
course_id
.
to_deprecated_string
(),
'user_id'
:
request
.
user
.
id
,
})
=======
thread
=
cc
.
Thread
(
thread
=
cc
.
Thread
(
anonymous
=
anonymous
,
anonymous
=
anonymous
,
anonymous_to_peers
=
anonymous_to_peers
,
anonymous_to_peers
=
anonymous_to_peers
,
commentable_id
=
commentable_id
,
commentable_id
=
commentable_id
,
course_id
=
course_id
,
course_id
=
course_id
.
to_deprecated_string
()
,
user_id
=
request
.
user
.
id
,
user_id
=
request
.
user
.
id
,
body
=
post
[
"body"
],
body
=
post
[
"body"
],
title
=
post
[
"title"
]
title
=
post
[
"title"
]
)
)
>>>>>>>
edx
/
master
user
=
cc
.
User
.
from_django_user
(
request
.
user
)
user
=
cc
.
User
.
from_django_user
(
request
.
user
)
...
@@ -190,26 +179,15 @@ def _create_comment(request, course_key, thread_id=None, parent_id=None):
...
@@ -190,26 +179,15 @@ def _create_comment(request, course_key, thread_id=None, parent_id=None):
else
:
else
:
anonymous_to_peers
=
False
anonymous_to_peers
=
False
<<<<<<<
HEAD
comment
.
update_attributes
(
**
{
'anonymous'
:
anonymous
,
'anonymous_to_peers'
:
anonymous_to_peers
,
'user_id'
:
request
.
user
.
id
,
'course_id'
:
course_key
.
to_deprecated_string
(),
'thread_id'
:
thread_id
,
'parent_id'
:
parent_id
,
})
=======
comment
=
cc
.
Comment
(
comment
=
cc
.
Comment
(
anonymous
=
anonymous
,
anonymous
=
anonymous
,
anonymous_to_peers
=
anonymous_to_peers
,
anonymous_to_peers
=
anonymous_to_peers
,
user_id
=
request
.
user
.
id
,
user_id
=
request
.
user
.
id
,
course_id
=
course_id
,
course_id
=
course_id
.
to_deprecated_string
()
,
thread_id
=
thread_id
,
thread_id
=
thread_id
,
parent_id
=
parent_id
,
parent_id
=
parent_id
,
body
=
post
[
"body"
]
body
=
post
[
"body"
]
)
)
>>>>>>>
edx
/
master
comment
.
save
()
comment
.
save
()
if
post
.
get
(
'auto_subscribe'
,
'false'
)
.
lower
()
==
'true'
:
if
post
.
get
(
'auto_subscribe'
,
'false'
)
.
lower
()
==
'true'
:
user
=
cc
.
User
.
from_django_user
(
request
.
user
)
user
=
cc
.
User
.
from_django_user
(
request
.
user
)
...
...
lms/djangoapps/instructor/tests/test_email.py
View file @
6c546fbf
...
@@ -35,11 +35,7 @@ class TestNewInstructorDashboardEmailViewMongoBacked(ModuleStoreTestCase):
...
@@ -35,11 +35,7 @@ class TestNewInstructorDashboardEmailViewMongoBacked(ModuleStoreTestCase):
self
.
client
.
login
(
username
=
instructor
.
username
,
password
=
"test"
)
self
.
client
.
login
(
username
=
instructor
.
username
,
password
=
"test"
)
# URL for instructor dash
# URL for instructor dash
<<<<<<<
HEAD
self
.
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
self
.
url
=
reverse
(
'instructor_dashboard_2'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
=======
self
.
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
})
>>>>>>>
edx
/
master
# URL for email view
# URL for email view
self
.
email_link
=
'<a href="" data-section="send_email">Email</a>'
self
.
email_link
=
'<a href="" data-section="send_email">Email</a>'
...
@@ -127,11 +123,7 @@ class TestNewInstructorDashboardEmailViewXMLBacked(ModuleStoreTestCase):
...
@@ -127,11 +123,7 @@ class TestNewInstructorDashboardEmailViewXMLBacked(ModuleStoreTestCase):
self
.
client
.
login
(
username
=
instructor
.
username
,
password
=
"test"
)
self
.
client
.
login
(
username
=
instructor
.
username
,
password
=
"test"
)
# URL for instructor dash
# URL for instructor dash
<<<<<<<
HEAD
self
.
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course_key
.
to_deprecated_string
()})
self
.
url
=
reverse
(
'instructor_dashboard_2'
,
kwargs
=
{
'course_id'
:
self
.
course_key
.
to_deprecated_string
()})
=======
self
.
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course_name
})
>>>>>>>
edx
/
master
# URL for email view
# URL for email view
self
.
email_link
=
'<a href="" data-section="send_email">Email</a>'
self
.
email_link
=
'<a href="" data-section="send_email">Email</a>'
...
...
lms/djangoapps/instructor/tests/test_legacy_anon_csv.py
View file @
6c546fbf
...
@@ -53,11 +53,7 @@ class TestInstructorDashboardAnonCSV(ModuleStoreTestCase, LoginEnrollmentTestCas
...
@@ -53,11 +53,7 @@ class TestInstructorDashboardAnonCSV(ModuleStoreTestCase, LoginEnrollmentTestCas
def
test_download_anon_csv
(
self
):
def
test_download_anon_csv
(
self
):
course
=
self
.
toy
course
=
self
.
toy
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
with
patch
(
'instructor.views.legacy.unique_id_for_user'
)
as
mock_unique
:
with
patch
(
'instructor.views.legacy.unique_id_for_user'
)
as
mock_unique
:
mock_unique
.
return_value
=
42
mock_unique
.
return_value
=
42
...
...
lms/djangoapps/instructor/tests/test_legacy_download_csv.py
View file @
6c546fbf
...
@@ -50,11 +50,7 @@ class TestInstructorDashboardGradeDownloadCSV(ModuleStoreTestCase, LoginEnrollme
...
@@ -50,11 +50,7 @@ class TestInstructorDashboardGradeDownloadCSV(ModuleStoreTestCase, LoginEnrollme
def
test_download_grades_csv
(
self
):
def
test_download_grades_csv
(
self
):
course
=
self
.
toy
course
=
self
.
toy
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
msg
=
"url = {0}
\n
"
.
format
(
url
)
msg
=
"url = {0}
\n
"
.
format
(
url
)
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Download CSV of all student grades for this course'
})
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Download CSV of all student grades for this course'
})
msg
+=
"instructor dashboard download csv grades: response = '{0}'
\n
"
.
format
(
response
)
msg
+=
"instructor dashboard download csv grades: response = '{0}'
\n
"
.
format
(
response
)
...
...
lms/djangoapps/instructor/tests/test_legacy_email.py
View file @
6c546fbf
...
@@ -32,11 +32,7 @@ class TestInstructorDashboardEmailView(ModuleStoreTestCase):
...
@@ -32,11 +32,7 @@ class TestInstructorDashboardEmailView(ModuleStoreTestCase):
self
.
client
.
login
(
username
=
instructor
.
username
,
password
=
"test"
)
self
.
client
.
login
(
username
=
instructor
.
username
,
password
=
"test"
)
# URL for instructor dash
# URL for instructor dash
<<<<<<<
HEAD
self
.
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
self
.
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
=======
self
.
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
})
>>>>>>>
edx
/
master
# URL for email view
# URL for email view
self
.
email_link
=
'<a href="#" onclick="goto(
\'
Email
\'
)" class="None">Email</a>'
self
.
email_link
=
'<a href="#" onclick="goto(
\'
Email
\'
)" class="None">Email</a>'
...
...
lms/djangoapps/instructor/tests/test_legacy_enrollment.py
View file @
6c546fbf
...
@@ -52,11 +52,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
...
@@ -52,11 +52,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
course
=
self
.
course
course
=
self
.
course
# Run the Un-enroll students command
# Run the Un-enroll students command
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
response
=
self
.
client
.
post
(
response
=
self
.
client
.
post
(
url
,
url
,
{
{
...
@@ -88,11 +84,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
...
@@ -88,11 +84,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
course
=
self
.
course
course
=
self
.
course
# Run the Enroll students command
# Run the Enroll students command
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Enroll multiple students'
,
'multiple_students'
:
'student1_1@test.com, student1_2@test.com'
,
'auto_enroll'
:
'on'
})
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Enroll multiple students'
,
'multiple_students'
:
'student1_1@test.com, student1_2@test.com'
,
'auto_enroll'
:
'on'
})
# Check the page output
# Check the page output
...
@@ -137,11 +129,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
...
@@ -137,11 +129,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
course
=
self
.
course
course
=
self
.
course
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Enroll multiple students'
,
'multiple_students'
:
'student0@test.com'
,
'auto_enroll'
:
'on'
})
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Enroll multiple students'
,
'multiple_students'
:
'student0@test.com'
,
'auto_enroll'
:
'on'
})
self
.
assertContains
(
response
,
'<td>student0@test.com</td>'
)
self
.
assertContains
(
response
,
'<td>student0@test.com</td>'
)
self
.
assertContains
(
response
,
'<td>already enrolled</td>'
)
self
.
assertContains
(
response
,
'<td>already enrolled</td>'
)
...
@@ -154,11 +142,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
...
@@ -154,11 +142,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
course
=
self
.
course
course
=
self
.
course
# Run the Enroll students command
# Run the Enroll students command
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Enroll multiple students'
,
'multiple_students'
:
'student2_1@test.com, student2_2@test.com'
})
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Enroll multiple students'
,
'multiple_students'
:
'student2_1@test.com, student2_2@test.com'
})
# Check the page output
# Check the page output
...
@@ -215,11 +199,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
...
@@ -215,11 +199,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
# Create activated, but not enrolled, user
# Create activated, but not enrolled, user
UserFactory
.
create
(
username
=
"student3_0"
,
email
=
"student3_0@test.com"
,
first_name
=
'Autoenrolled'
)
UserFactory
.
create
(
username
=
"student3_0"
,
email
=
"student3_0@test.com"
,
first_name
=
'Autoenrolled'
)
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Enroll multiple students'
,
'multiple_students'
:
'student3_0@test.com, student3_1@test.com, student3_2@test.com'
,
'auto_enroll'
:
'on'
,
'email_students'
:
'on'
})
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Enroll multiple students'
,
'multiple_students'
:
'student3_0@test.com, student3_1@test.com, student3_2@test.com'
,
'auto_enroll'
:
'on'
,
'email_students'
:
'on'
})
# Check the page output
# Check the page output
...
@@ -274,11 +254,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
...
@@ -274,11 +254,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
cea
=
CourseEnrollmentAllowed
(
email
=
'student4_0@test.com'
,
course_id
=
course
.
id
)
cea
=
CourseEnrollmentAllowed
(
email
=
'student4_0@test.com'
,
course_id
=
course
.
id
)
cea
.
save
()
cea
.
save
()
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Unenroll multiple students'
,
'multiple_students'
:
'student4_0@test.com, student2@test.com, student3@test.com'
,
'email_students'
:
'on'
})
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Unenroll multiple students'
,
'multiple_students'
:
'student4_0@test.com, student2@test.com, student3@test.com'
,
'email_students'
:
'on'
})
# Check the page output
# Check the page output
...
@@ -325,11 +301,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
...
@@ -325,11 +301,7 @@ class TestInstructorEnrollsStudent(ModuleStoreTestCase, LoginEnrollmentTestCase)
# Create activated, but not enrolled, user
# Create activated, but not enrolled, user
UserFactory
.
create
(
username
=
"student5_0"
,
email
=
"student5_0@test.com"
,
first_name
=
"ShibTest"
,
last_name
=
"Enrolled"
)
UserFactory
.
create
(
username
=
"student5_0"
,
email
=
"student5_0@test.com"
,
first_name
=
"ShibTest"
,
last_name
=
"Enrolled"
)
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Enroll multiple students'
,
'multiple_students'
:
'student5_0@test.com, student5_1@test.com'
,
'auto_enroll'
:
'on'
,
'email_students'
:
'on'
})
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Enroll multiple students'
,
'multiple_students'
:
'student5_0@test.com, student5_1@test.com'
,
'auto_enroll'
:
'on'
,
'email_students'
:
'on'
})
# Check the page output
# Check the page output
...
...
lms/djangoapps/instructor/tests/test_legacy_forum_admin.py
View file @
6c546fbf
...
@@ -68,11 +68,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
...
@@ -68,11 +68,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
def
test_add_forum_admin_users_for_unknown_user
(
self
):
def
test_add_forum_admin_users_for_unknown_user
(
self
):
course
=
self
.
toy
course
=
self
.
toy
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
username
=
'unknown'
username
=
'unknown'
for
action
in
[
'Add'
,
'Remove'
]:
for
action
in
[
'Add'
,
'Remove'
]:
for
rolename
in
FORUM_ROLES
:
for
rolename
in
FORUM_ROLES
:
...
@@ -81,11 +77,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
...
@@ -81,11 +77,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
def
test_add_forum_admin_users_for_missing_roles
(
self
):
def
test_add_forum_admin_users_for_missing_roles
(
self
):
course
=
self
.
toy
course
=
self
.
toy
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
username
=
'u1'
username
=
'u1'
for
action
in
[
'Add'
,
'Remove'
]:
for
action
in
[
'Add'
,
'Remove'
]:
for
rolename
in
FORUM_ROLES
:
for
rolename
in
FORUM_ROLES
:
...
@@ -95,11 +87,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
...
@@ -95,11 +87,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
def
test_remove_forum_admin_users_for_missing_users
(
self
):
def
test_remove_forum_admin_users_for_missing_users
(
self
):
course
=
self
.
toy
course
=
self
.
toy
self
.
initialize_roles
(
course
.
id
)
self
.
initialize_roles
(
course
.
id
)
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
username
=
'u1'
username
=
'u1'
action
=
'Remove'
action
=
'Remove'
for
rolename
in
FORUM_ROLES
:
for
rolename
in
FORUM_ROLES
:
...
@@ -109,11 +97,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
...
@@ -109,11 +97,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
def
test_add_and_remove_forum_admin_users
(
self
):
def
test_add_and_remove_forum_admin_users
(
self
):
course
=
self
.
toy
course
=
self
.
toy
self
.
initialize_roles
(
course
.
id
)
self
.
initialize_roles
(
course
.
id
)
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
username
=
'u2'
username
=
'u2'
for
rolename
in
FORUM_ROLES
:
for
rolename
in
FORUM_ROLES
:
response
=
self
.
client
.
post
(
url
,
{
'action'
:
action_name
(
'Add'
,
rolename
),
FORUM_ADMIN_USER
[
rolename
]:
username
})
response
=
self
.
client
.
post
(
url
,
{
'action'
:
action_name
(
'Add'
,
rolename
),
FORUM_ADMIN_USER
[
rolename
]:
username
})
...
@@ -126,11 +110,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
...
@@ -126,11 +110,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
def
test_add_and_read_forum_admin_users
(
self
):
def
test_add_and_read_forum_admin_users
(
self
):
course
=
self
.
toy
course
=
self
.
toy
self
.
initialize_roles
(
course
.
id
)
self
.
initialize_roles
(
course
.
id
)
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
username
=
'u2'
username
=
'u2'
for
rolename
in
FORUM_ROLES
:
for
rolename
in
FORUM_ROLES
:
# perform an add, and follow with a second identical add:
# perform an add, and follow with a second identical add:
...
@@ -142,11 +122,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
...
@@ -142,11 +122,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
def
test_add_nonstaff_forum_admin_users
(
self
):
def
test_add_nonstaff_forum_admin_users
(
self
):
course
=
self
.
toy
course
=
self
.
toy
self
.
initialize_roles
(
course
.
id
)
self
.
initialize_roles
(
course
.
id
)
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
username
=
'u1'
username
=
'u1'
rolename
=
FORUM_ROLE_ADMINISTRATOR
rolename
=
FORUM_ROLE_ADMINISTRATOR
response
=
self
.
client
.
post
(
url
,
{
'action'
:
action_name
(
'Add'
,
rolename
),
FORUM_ADMIN_USER
[
rolename
]:
username
})
response
=
self
.
client
.
post
(
url
,
{
'action'
:
action_name
(
'Add'
,
rolename
),
FORUM_ADMIN_USER
[
rolename
]:
username
})
...
@@ -155,11 +131,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
...
@@ -155,11 +131,7 @@ class TestInstructorDashboardForumAdmin(ModuleStoreTestCase, LoginEnrollmentTest
def
test_list_forum_admin_users
(
self
):
def
test_list_forum_admin_users
(
self
):
course
=
self
.
toy
course
=
self
.
toy
self
.
initialize_roles
(
course
.
id
)
self
.
initialize_roles
(
course
.
id
)
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course
.
id
})
>>>>>>>
edx
/
master
username
=
'u2'
username
=
'u2'
added_roles
=
[
FORUM_ROLE_STUDENT
]
# u2 is already added as a student to the discussion forums
added_roles
=
[
FORUM_ROLE_STUDENT
]
# u2 is already added as a student to the discussion forums
self
.
assertTrue
(
has_forum_access
(
username
,
course
.
id
,
'Student'
))
self
.
assertTrue
(
has_forum_access
(
username
,
course
.
id
,
'Student'
))
...
...
lms/djangoapps/instructor/tests/test_legacy_gradebook.py
View file @
6c546fbf
...
@@ -68,14 +68,10 @@ class TestGradebook(ModuleStoreTestCase):
...
@@ -68,14 +68,10 @@ class TestGradebook(ModuleStoreTestCase):
module_state_key
=
item
.
location
module_state_key
=
item
.
location
)
)
<<<<<<<
HEAD
self
.
response
=
self
.
client
.
get
(
reverse
(
self
.
response
=
self
.
client
.
get
(
reverse
(
'gradebook'
,
'gradebook
_legacy
'
,
args
=
(
self
.
course
.
id
.
to_deprecated_string
(),)
args
=
(
self
.
course
.
id
.
to_deprecated_string
(),)
))
))
=======
self
.
response
=
self
.
client
.
get
(
reverse
(
'gradebook_legacy'
,
args
=
(
self
.
course
.
id
,)))
>>>>>>>
edx
/
master
def
test_response_code
(
self
):
def
test_response_code
(
self
):
self
.
assertEquals
(
self
.
response
.
status_code
,
200
)
self
.
assertEquals
(
self
.
response
.
status_code
,
200
)
...
...
lms/djangoapps/instructor/tests/test_legacy_raw_download_csv.py
View file @
6c546fbf
...
@@ -45,11 +45,7 @@ class TestRawGradeCSV(TestSubmittingProblems):
...
@@ -45,11 +45,7 @@ class TestRawGradeCSV(TestSubmittingProblems):
resp
=
self
.
submit_question_answer
(
'p2'
,
{
'2_1'
:
'Correct'
})
resp
=
self
.
submit_question_answer
(
'p2'
,
{
'2_1'
:
'Correct'
})
self
.
assertEqual
(
resp
.
status_code
,
200
)
self
.
assertEqual
(
resp
.
status_code
,
200
)
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
})
>>>>>>>
edx
/
master
msg
=
"url = {0}
\n
"
.
format
(
url
)
msg
=
"url = {0}
\n
"
.
format
(
url
)
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Download CSV of all RAW grades'
})
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Download CSV of all RAW grades'
})
msg
+=
"instructor dashboard download raw csv grades: response = '{0}'
\n
"
.
format
(
response
)
msg
+=
"instructor dashboard download raw csv grades: response = '{0}'
\n
"
.
format
(
response
)
...
...
lms/djangoapps/instructor/tests/test_legacy_reset.py
View file @
6c546fbf
...
@@ -61,11 +61,7 @@ class InstructorResetStudentStateTest(ModuleStoreTestCase, LoginEnrollmentTestCa
...
@@ -61,11 +61,7 @@ class InstructorResetStudentStateTest(ModuleStoreTestCase, LoginEnrollmentTestCa
sub_api
.
set_score
(
submission
[
'uuid'
],
1
,
2
)
sub_api
.
set_score
(
submission
[
'uuid'
],
1
,
2
)
# Delete student state using the instructor dash
# Delete student state using the instructor dash
<<<<<<<
HEAD
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
=======
url
=
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
})
>>>>>>>
edx
/
master
response
=
self
.
client
.
post
(
url
,
{
response
=
self
.
client
.
post
(
url
,
{
'action'
:
'Delete student state for module'
,
'action'
:
'Delete student state for module'
,
'unique_student_identifier'
:
self
.
student
.
email
,
'unique_student_identifier'
:
self
.
student
.
email
,
...
...
lms/djangoapps/instructor/views/api.py
View file @
6c546fbf
...
@@ -1082,15 +1082,11 @@ def send_email(request, course_id):
...
@@ -1082,15 +1082,11 @@ def send_email(request, course_id):
# Submit the task, so that the correct InstructorTask object gets created (for monitoring purposes)
# Submit the task, so that the correct InstructorTask object gets created (for monitoring purposes)
instructor_task
.
api
.
submit_bulk_course_email
(
request
,
course_id
,
email
.
id
)
# pylint: disable=E1101
instructor_task
.
api
.
submit_bulk_course_email
(
request
,
course_id
,
email
.
id
)
# pylint: disable=E1101
<<<<<<<
HEAD
response_payload
=
{
'course_id'
:
course_id
.
to_deprecated_string
()}
=======
response_payload
=
{
response_payload
=
{
'course_id'
:
course_id
,
'course_id'
:
course_id
.
to_deprecated_string
()
,
'success'
:
True
,
'success'
:
True
,
}
}
>>>>>>>
edx
/
master
return
JsonResponse
(
response_payload
)
return
JsonResponse
(
response_payload
)
...
...
lms/djangoapps/instructor/views/instructor_dashboard.py
View file @
6c546fbf
...
@@ -83,11 +83,7 @@ def instructor_dashboard_2(request, course_id):
...
@@ -83,11 +83,7 @@ def instructor_dashboard_2(request, course_id):
context
=
{
context
=
{
'course'
:
course
,
'course'
:
course
,
<<<<<<<
HEAD
'old_dashboard_url'
:
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course_id
.
to_deprecated_string
()}),
'old_dashboard_url'
:
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course_key
.
to_deprecated_string
()}),
=======
'old_dashboard_url'
:
reverse
(
'instructor_dashboard_legacy'
,
kwargs
=
{
'course_id'
:
course_id
}),
>>>>>>>
edx
/
master
'studio_url'
:
studio_url
,
'studio_url'
:
studio_url
,
'sections'
:
sections
,
'sections'
:
sections
,
'disable_buttons'
:
disable_buttons
,
'disable_buttons'
:
disable_buttons
,
...
@@ -169,21 +165,13 @@ def _section_student_admin(course_key, access):
...
@@ -169,21 +165,13 @@ def _section_student_admin(course_key, access):
'section_key'
:
'student_admin'
,
'section_key'
:
'student_admin'
,
'section_display_name'
:
_
(
'Student Admin'
),
'section_display_name'
:
_
(
'Student Admin'
),
'access'
:
access
,
'access'
:
access
,
<<<<<<<
HEAD
'get_student_progress_url_url'
:
reverse
(
'get_student_progress_url'
,
kwargs
=
{
'course_id'
:
course_key
.
to_deprecated_string
()}),
'enrollment_url'
:
reverse
(
'students_update_enrollment'
,
kwargs
=
{
'course_id'
:
course_key
.
to_deprecated_string
()}),
'reset_student_attempts_url'
:
reverse
(
'reset_student_attempts'
,
kwargs
=
{
'course_id'
:
course_key
.
to_deprecated_string
()}),
'rescore_problem_url'
:
reverse
(
'rescore_problem'
,
kwargs
=
{
'course_id'
:
course_key
.
to_deprecated_string
()}),
'list_instructor_tasks_url'
:
reverse
(
'list_instructor_tasks'
,
kwargs
=
{
'course_id'
:
course_key
.
to_deprecated_string
()}),
=======
'is_small_course'
:
is_small_course
,
'is_small_course'
:
is_small_course
,
'get_student_progress_url_url'
:
reverse
(
'get_student_progress_url'
,
kwargs
=
{
'course_id'
:
course_id
}),
'get_student_progress_url_url'
:
reverse
(
'get_student_progress_url'
,
kwargs
=
{
'course_id'
:
course_id
.
to_deprecated_string
()}),
'enrollment_url'
:
reverse
(
'students_update_enrollment'
,
kwargs
=
{
'course_id'
:
course_id
}),
'enrollment_url'
:
reverse
(
'students_update_enrollment'
,
kwargs
=
{
'course_id'
:
course_id
.
to_deprecated_string
()}),
'reset_student_attempts_url'
:
reverse
(
'reset_student_attempts'
,
kwargs
=
{
'course_id'
:
course_id
}),
'reset_student_attempts_url'
:
reverse
(
'reset_student_attempts'
,
kwargs
=
{
'course_id'
:
course_id
.
to_deprecated_string
()}),
'rescore_problem_url'
:
reverse
(
'rescore_problem'
,
kwargs
=
{
'course_id'
:
course_id
}),
'rescore_problem_url'
:
reverse
(
'rescore_problem'
,
kwargs
=
{
'course_id'
:
course_id
.
to_deprecated_string
()}),
'list_instructor_tasks_url'
:
reverse
(
'list_instructor_tasks'
,
kwargs
=
{
'course_id'
:
course_id
}),
'list_instructor_tasks_url'
:
reverse
(
'list_instructor_tasks'
,
kwargs
=
{
'course_id'
:
course_id
.
to_deprecated_string
()}),
'spoc_gradebook_url'
:
reverse
(
'spoc_gradebook'
,
kwargs
=
{
'course_id'
:
course_id
}),
'spoc_gradebook_url'
:
reverse
(
'spoc_gradebook'
,
kwargs
=
{
'course_id'
:
course_id
.
to_deprecated_string
()}),
>>>>>>>
edx
/
master
}
}
return
section_data
return
section_data
...
...
lms/djangoapps/instructor/views/legacy.py
View file @
6c546fbf
...
@@ -1038,14 +1038,7 @@ def instructor_dashboard(request, course_id):
...
@@ -1038,14 +1038,7 @@ def instructor_dashboard(request, course_id):
'metrics_results'
:
metrics_results
,
'metrics_results'
:
metrics_results
,
}
}
<<<<<<<
HEAD
context
[
'standard_dashboard_url'
]
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course_id
.
to_deprecated_string
()})
if
settings
.
FEATURES
.
get
(
'ENABLE_INSTRUCTOR_BETA_DASHBOARD'
):
context
[
'beta_dashboard_url'
]
=
reverse
(
'instructor_dashboard_2'
,
kwargs
=
{
'course_id'
:
course_key
.
to_deprecated_string
()}
)
=======
context
[
'standard_dashboard_url'
]
=
reverse
(
'instructor_dashboard'
,
kwargs
=
{
'course_id'
:
course_id
})
>>>>>>>
edx
/
master
return
render_to_response
(
'courseware/instructor_dashboard.html'
,
context
)
return
render_to_response
(
'courseware/instructor_dashboard.html'
,
context
)
...
...
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