48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
# lint-amnesty, pylint: disable=missing-module-docstring
|
|
|
|
from xmodule.contentstore.content import StaticContent
|
|
|
|
from .django import contentstore
|
|
|
|
|
|
def empty_asset_trashcan(course_locs):
|
|
'''
|
|
This method will hard delete all assets (optionally within a course_id) from the trashcan
|
|
'''
|
|
store = contentstore('trashcan')
|
|
|
|
for course_loc in course_locs:
|
|
# first delete all of the thumbnails
|
|
thumbs = store.get_all_content_thumbnails_for_course(course_loc)
|
|
for thumb in thumbs:
|
|
print(f"Deleting {thumb}...")
|
|
store.delete(thumb['asset_key'])
|
|
|
|
# then delete all of the assets
|
|
assets, __ = store.get_all_content_for_course(course_loc)
|
|
for asset in assets:
|
|
print(f"Deleting {asset}...")
|
|
store.delete(asset['asset_key'])
|
|
|
|
|
|
def restore_asset_from_trashcan(location):
|
|
'''
|
|
This method will restore an asset which got soft deleted and put back in the original course
|
|
'''
|
|
trash = contentstore('trashcan')
|
|
store = contentstore()
|
|
|
|
loc = StaticContent.get_location_from_path(location)
|
|
content = trash.find(loc)
|
|
|
|
# ok, save the content into the courseware
|
|
store.save(content)
|
|
|
|
# see if there is a thumbnail as well, if so move that as well
|
|
if content.thumbnail_location is not None:
|
|
try:
|
|
thumbnail_content = trash.find(content.thumbnail_location)
|
|
store.save(thumbnail_content)
|
|
except Exception: # lint-amnesty, pylint: disable=broad-except
|
|
pass # OK if this is left dangling
|