From 7e3ad5c2d68514be0f75cf466f6627117697d0e1 Mon Sep 17 00:00:00 2001 From: Jillian Date: Fri, 25 Oct 2024 12:33:35 +1030 Subject: [PATCH] Fix minor asset storage admin issue [FC-0062] (#247) * fix: wrap call to storage path in NotImplementedError Admin page calls contents.os_path(), and if the storage backend doesn't support `path`, we can't even load the admin page for that asset. * chore: bump version to 0.16.2 --- openedx_learning/__init__.py | 2 +- openedx_learning/apps/authoring/contents/models.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/openedx_learning/__init__.py b/openedx_learning/__init__.py index d15f8e48..e4d85ebf 100644 --- a/openedx_learning/__init__.py +++ b/openedx_learning/__init__.py @@ -2,4 +2,4 @@ Open edX Learning ("Learning Core"). """ -__version__ = "0.16.1" +__version__ = "0.16.2" diff --git a/openedx_learning/apps/authoring/contents/models.py b/openedx_learning/apps/authoring/contents/models.py index 214c2d27..f641629c 100644 --- a/openedx_learning/apps/authoring/contents/models.py +++ b/openedx_learning/apps/authoring/contents/models.py @@ -6,6 +6,7 @@ from __future__ import annotations from functools import cache, cached_property +from logging import getLogger from django.conf import settings from django.core.exceptions import ImproperlyConfigured, ValidationError @@ -19,6 +20,8 @@ from ....lib.managers import WithRelationsManager from ..publishing.models import LearningPackage +logger = getLogger() + __all__ = [ "MediaType", "Content", @@ -316,8 +319,11 @@ def os_path(self): This will return ``None`` if there is no backing file (has_file=False). """ - if self.has_file: - return get_storage().path(self.path) + try: + if self.has_file: + return get_storage().path(self.path) + except NotImplementedError: + logger.warning("Storage backend does not support path()") return None def read_file(self) -> File: