Commit 1b4f569c by chrisndodge

Merge pull request #894 from MITx/fix/cdodge/cas-bugs

Fix/cdodge/cas bugs
parents 91fe7da4 13e23cbb
...@@ -212,8 +212,6 @@ def edit_subsection(request, location): ...@@ -212,8 +212,6 @@ def edit_subsection(request, location):
policy_metadata = dict((key,value) for key, value in item.metadata.iteritems() policy_metadata = dict((key,value) for key, value in item.metadata.iteritems()
if key not in ['display_name', 'start', 'due', 'format'] and key not in item.system_metadata_fields) if key not in ['display_name', 'start', 'due', 'format'] and key not in item.system_metadata_fields)
logging.debug(policy_metadata)
return render_to_response('edit_subsection.html', return render_to_response('edit_subsection.html',
{'subsection': item, {'subsection': item,
'context_course': course, 'context_course': course,
...@@ -487,20 +485,13 @@ def _xmodule_recurse(item, action): ...@@ -487,20 +485,13 @@ def _xmodule_recurse(item, action):
_xmodule_recurse(child, action) _xmodule_recurse(child, action)
action(item) action(item)
def _delete_item(item, recurse=False):
if recurse:
children = item.get_children()
for child in children:
_delete_item(child, recurse)
modulestore().delete_item(item.location);
@login_required @login_required
@expect_json @expect_json
def delete_item(request): def delete_item(request):
item_location = request.POST['id'] item_location = request.POST['id']
item_loc = Location(item_location)
# check permissions for this user within this course # check permissions for this user within this course
if not has_access(request.user, item_location): if not has_access(request.user, item_location):
...@@ -508,16 +499,28 @@ def delete_item(request): ...@@ -508,16 +499,28 @@ def delete_item(request):
# optional parameter to delete all children (default False) # optional parameter to delete all children (default False)
delete_children = request.POST.get('delete_children', False) delete_children = request.POST.get('delete_children', False)
delete_all_versions = request.POST.get('delete_all_versions', False)
item = modulestore().get_item(item_location) item = modulestore().get_item(item_location)
store = _modulestore(item_loc)
# @TODO: this probably leaves draft items dangling. # @TODO: this probably leaves draft items dangling. My preferance would be for the semantic to be
# if item.location.revision=None, then delete both draft and published version
# if caller wants to only delete the draft than the caller should put item.location.revision='draft'
if delete_children: if delete_children:
_xmodule_recurse(item, lambda i: _modulestore(i.location).delete_item(i.location)) _xmodule_recurse(item, lambda i: store.delete_item(i.location))
else: else:
_modulestore(item.location).delete_item(item.location) store.delete_item(item.location)
# cdodge: this is a bit of a hack until I can talk with Cale about the
# semantics of delete_item whereby the store is draft aware. Right now calling
# delete_item on a vertical tries to delete the draft version leaving the
# requested delete to never occur
if item.location.revision is None and item.location.category=='vertical' and delete_all_versions:
modulestore('direct').delete_item(item.location)
return HttpResponse() return HttpResponse()
...@@ -854,9 +857,9 @@ def asset_index(request, org, course, name): ...@@ -854,9 +857,9 @@ def asset_index(request, org, course, name):
display_info['url'] = StaticContent.get_url_path_from_location(asset_location) 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 # note, due to the schema change we may not have a 'thumbnail_location' in the result set
thumbnail_location = Location(asset.get('thumbnail_location', None)) _thumbnail_location = asset.get('thumbnail_location', None)
thumbnail_location = Location(_thumbnail_location) if _thumbnail_location is not None else None
display_info['thumb_url'] = StaticContent.get_url_path_from_location(thumbnail_location) display_info['thumb_url'] = StaticContent.get_url_path_from_location(thumbnail_location) if thumbnail_location is not None else None
asset_display.append(display_info) asset_display.append(display_info)
...@@ -892,9 +895,6 @@ def create_new_course(request): ...@@ -892,9 +895,6 @@ def create_new_course(request):
if existing_course is not None: if existing_course is not None:
return HttpResponse(json.dumps({'ErrMsg': 'There is already a course defined with this name.'})) return HttpResponse(json.dumps({'ErrMsg': 'There is already a course defined with this name.'}))
logging.debug(dest_location)
logging.debug(template)
new_course = modulestore('direct').clone_item(template, dest_location) new_course = modulestore('direct').clone_item(template, dest_location)
if display_name is not None: if display_name is not None:
......
...@@ -288,7 +288,7 @@ function _deleteItem($el) { ...@@ -288,7 +288,7 @@ function _deleteItem($el) {
var id = $el.data('id'); var id = $el.data('id');
$.post('/delete_item', $.post('/delete_item',
{'id': id, 'delete_children' : true}, {'id': id, 'delete_children' : true, 'delete_all_versions' : true},
function(data) { function(data) {
$el.remove(); $el.remove();
}); });
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<h1>Asset Library</h1> <h1>Asset Library</h1>
<div class="page-actions"> <div class="page-actions">
<a href="#" class="upload-button">Upload New File</a> <a href="#" class="upload-button">Upload New File</a>
<input type="text" class="asset-search-input search wip-box" placeholder="search assets" /> <input type="text" class="asset-search-input search wip-box" placeholder="search assets" style="display:none"/>
</div> </div>
<article class="asset-library"> <article class="asset-library">
<table> <table>
...@@ -26,7 +26,11 @@ ...@@ -26,7 +26,11 @@
% for asset in assets: % for asset in assets:
<tr> <tr>
<td class="thumb-col"> <td class="thumb-col">
<div class="thumb"><img src="${asset['thumb_url']}"></div> <div class="thumb">
% if asset['thumb_url'] is not None:
<img src="${asset['thumb_url']}">
% endif
</div>
</td> </td>
<td class="name-col"> <td class="name-col">
<a href="${asset['url']}" class="filename">${asset['displayname']}</a> <a href="${asset['url']}" class="filename">${asset['displayname']}</a>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment