diff options
-rw-r--r-- | mediagoblin/db/mixin.py | 2 | ||||
-rw-r--r-- | mediagoblin/tools/licenses.py | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py index 7b4bafce..a8436c70 100644 --- a/mediagoblin/db/mixin.py +++ b/mediagoblin/db/mixin.py @@ -139,7 +139,7 @@ class MediaEntryMixin(object): def get_license_data(self): """Return license dict for requested license""" - return licenses.SUPPORTED_LICENSES[self.license or ""] + return licenses.get_license_by_url(self.license or "") def exif_display_iter(self): from mediagoblin.tools.exif import USEFUL_TAGS diff --git a/mediagoblin/tools/licenses.py b/mediagoblin/tools/licenses.py index cda3c1f6..a964980e 100644 --- a/mediagoblin/tools/licenses.py +++ b/mediagoblin/tools/licenses.py @@ -50,6 +50,16 @@ SORTED_LICENSES = [ SUPPORTED_LICENSES = dict(((l.uri, l) for l in SORTED_LICENSES)) +def get_license_by_url(url): + """Look up a license by its url and return the License object""" + try: + return SUPPORTED_LICENSES[url] + except KeyError: + # in case of an unknown License, just display the url given + # rather than exploding in the user's face. + return License(url, url, url) + + def licenses_as_choices(): """List of (uri, abbreviation) tuples for HTML choice field population |