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
b3cc9a11
Commit
b3cc9a11
authored
May 13, 2013
by
Steve Strassmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pep8 cleanups
parent
554d342f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
27 deletions
+40
-27
cms/djangoapps/contentstore/views/assets.py
+18
-16
cms/djangoapps/contentstore/views/course.py
+22
-11
No files found.
cms/djangoapps/contentstore/views/assets.py
View file @
b3cc9a11
...
...
@@ -59,12 +59,12 @@ def asset_index(request, org, course, name):
asset_display
=
[]
for
asset
in
assets
:
id
=
asset
[
'_id'
]
asset_
id
=
asset
[
'_id'
]
display_info
=
{}
display_info
[
'displayname'
]
=
asset
[
'displayname'
]
display_info
[
'uploadDate'
]
=
get_default_time_display
(
asset
[
'uploadDate'
]
.
timetuple
())
asset_location
=
StaticContent
.
compute_location
(
id
[
'org'
],
id
[
'course'
],
id
[
'name'
])
asset_location
=
StaticContent
.
compute_location
(
asset_id
[
'org'
],
asset_id
[
'course'
],
asset_
id
[
'name'
])
display_info
[
'url'
]
=
StaticContent
.
get_url_path_from_location
(
asset_location
)
# note, due to the schema change we may not have a 'thumbnail_location' in the result set
...
...
@@ -149,9 +149,9 @@ def import_course(request, org, course, name):
location
=
get_location_and_verify_access
(
request
,
org
,
course
,
name
)
if
request
.
method
==
'POST'
:
filename
=
request
.
FILES
[
'course-data'
]
.
name
filename
s
=
request
.
FILES
[
'course-data'
]
.
name
if
not
filename
.
endswith
(
'.tar.gz'
):
if
not
filename
s
.
endswith
(
'.tar.gz'
):
return
HttpResponse
(
json
.
dumps
({
'ErrMsg'
:
'We only support uploading a .tar.gz file.'
}))
data_root
=
path
(
settings
.
GITHUB_REPO_ROOT
)
...
...
@@ -161,7 +161,7 @@ def import_course(request, org, course, name):
if
not
course_dir
.
isdir
():
os
.
mkdir
(
course_dir
)
temp_filepath
=
course_dir
/
filename
temp_filepath
=
course_dir
/
filename
s
logging
.
debug
(
'importing course to {0}'
.
format
(
temp_filepath
))
...
...
@@ -171,13 +171,13 @@ def import_course(request, org, course, name):
temp_file
.
write
(
chunk
)
temp_file
.
close
()
t
f
=
tarfile
.
open
(
temp_filepath
)
t
f
.
extractall
(
course_dir
+
'/'
)
t
ar_file
=
tarfile
.
open
(
temp_filepath
)
t
ar_file
.
extractall
(
course_dir
+
'/'
)
# find the 'course.xml' file
for
r
,
d
,
f
in
os
.
walk
(
course_dir
):
for
files
in
f
:
for
dirpath
,
dirnames
,
filenames
in
os
.
walk
(
course_dir
):
for
files
in
f
ilenames
:
if
files
==
'course.xml'
:
break
if
files
==
'course.xml'
:
...
...
@@ -186,12 +186,14 @@ def import_course(request, org, course, name):
if
files
!=
'course.xml'
:
return
HttpResponse
(
json
.
dumps
({
'ErrMsg'
:
'Could not find the course.xml file in the package.'
}))
logging
.
debug
(
'found course.xml at {0}'
.
format
(
r
))
logging
.
debug
(
'found course.xml at {0}'
.
format
(
dirpath
))
if
r
!=
course_dir
:
for
fname
in
os
.
listdir
(
r
):
shutil
.
move
(
r
/
fname
,
course_dir
)
if
dirpath
!=
course_dir
:
for
fname
in
os
.
listdir
(
dirpath
):
shutil
.
move
(
dirpath
/
fname
,
course_dir
)
# var module_store is unused
# pylint: disable=W0612
module_store
,
course_items
=
import_from_xml
(
modulestore
(
'direct'
),
settings
.
GITHUB_REPO_ROOT
,
[
course_subdir
],
load_error_modules
=
False
,
static_content_store
=
contentstore
(),
...
...
@@ -234,9 +236,9 @@ def generate_export_course(request, org, course, name):
#filename = root_dir / name + '.tar.gz'
logging
.
debug
(
'tar file being generated at {0}'
.
format
(
export_file
.
name
))
t
f
=
tarfile
.
open
(
name
=
export_file
.
name
,
mode
=
'w:gz'
)
t
f
.
add
(
root_dir
/
name
,
arcname
=
name
)
t
f
.
close
()
t
ar_file
=
tarfile
.
open
(
name
=
export_file
.
name
,
mode
=
'w:gz'
)
t
ar_file
.
add
(
root_dir
/
name
,
arcname
=
name
)
t
ar_file
.
close
()
# remove temp dir
shutil
.
rmtree
(
root_dir
/
name
)
...
...
cms/djangoapps/contentstore/views/course.py
View file @
b3cc9a11
"""
Views related to operations on course objects
"""
import
json
import
time
...
...
@@ -10,16 +13,17 @@ from django.core.urlresolvers import reverse
from
mitxmako.shortcuts
import
render_to_response
from
xmodule.modulestore.django
import
modulestore
from
xmodule.modulestore.exceptions
import
ItemNotFoundError
,
\
InvalidLocationError
from
xmodule.modulestore.exceptions
\
import
ItemNotFoundError
,
InvalidLocationError
from
xmodule.modulestore
import
Location
from
contentstore.course_info_model
import
get_course_updates
,
\
update_course_updates
,
delete_course_update
from
contentstore.utils
import
get_lms_link_for_item
,
\
add_open_ended_panel_tab
,
remove_open_ended_panel_tab
from
models.settings.course_details
import
CourseDetails
,
\
CourseSettingsEncoder
from
contentstore.course_info_model
\
import
get_course_updates
,
update_course_updates
,
delete_course_update
from
contentstore.utils
\
import
get_lms_link_for_item
,
add_open_ended_panel_tab
,
\
remove_open_ended_panel_tab
from
models.settings.course_details
\
import
CourseDetails
,
CourseSettingsEncoder
from
models.settings.course_grading
import
CourseGradingModel
from
models.settings.course_metadata
import
CourseMetadata
from
auth.authz
import
create_all_course_groups
...
...
@@ -30,7 +34,13 @@ from .requests import get_request_method
from
.tabs
import
initialize_course_tabs
from
.component
import
OPEN_ENDED_COMPONENT_TYPES
,
ADVANCED_COMPONENT_POLICY_KEY
# TODO: should explicitly enumerate exports with __all__
__all__
=
[
'course_index'
,
'create_new_course'
,
'course_info'
,
'course_info_updates'
,
'get_course_settings'
,
'course_config_graders_page'
,
'course_config_advanced_page'
,
'course_settings_updates'
,
'course_grader_updates'
,
'course_advanced_updates'
]
@login_required
...
...
@@ -87,8 +97,9 @@ def create_new_course(request):
try
:
dest_location
=
Location
(
'i4x'
,
org
,
number
,
'course'
,
Location
.
clean
(
display_name
))
except
InvalidLocationError
as
e
:
return
HttpResponse
(
json
.
dumps
({
'ErrMsg'
:
"Unable to create course '"
+
display_name
+
"'.
\n\n
"
+
e
.
message
}))
except
InvalidLocationError
as
error
:
return
HttpResponse
(
json
.
dumps
({
'ErrMsg'
:
"Unable to create course '"
+
display_name
+
"'.
\n\n
"
+
error
.
message
}))
# see if the course already exists
existing_course
=
None
...
...
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