aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/db/mixin.py2
-rw-r--r--mediagoblin/tools/licenses.py10
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