aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/db')
-rw-r--r--mediagoblin/db/mixin.py6
-rw-r--r--mediagoblin/db/mongo/migrations.py7
-rw-r--r--mediagoblin/db/mongo/models.py3
-rw-r--r--mediagoblin/db/sql/models.py7
4 files changed, 19 insertions, 4 deletions
diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py
index 5145289e..b0fecad3 100644
--- a/mediagoblin/db/mixin.py
+++ b/mediagoblin/db/mixin.py
@@ -28,7 +28,7 @@ real objects.
"""
from mediagoblin.auth import lib as auth_lib
-from mediagoblin.tools import common
+from mediagoblin.tools import common, licenses
class UserMixin(object):
@@ -90,3 +90,7 @@ class MediaEntryMixin(object):
"""
if self['fail_error']:
return common.import_component(self['fail_error'])
+
+ def get_license_data(self):
+ """Return license dict for requested license"""
+ return licenses.SUPPORTED_LICENSES[self.license]
diff --git a/mediagoblin/db/mongo/migrations.py b/mediagoblin/db/mongo/migrations.py
index cf4e94ae..f66ade2b 100644
--- a/mediagoblin/db/mongo/migrations.py
+++ b/mediagoblin/db/mongo/migrations.py
@@ -108,3 +108,10 @@ def media_type_image_to_multimedia_type_image(database):
{'media_type': 'image'},
{'$set': {'media_type': 'mediagoblin.media_types.image'}},
multi=True)
+
+@RegisterMigration(8)
+def mediaentry_add_license(database):
+ """
+ Add the 'license' field for entries that don't have it.
+ """
+ add_table_field(database, 'media_entries', 'license', '')
diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py
index 906d2849..56ed7dcf 100644
--- a/mediagoblin/db/mongo/models.py
+++ b/mediagoblin/db/mongo/models.py
@@ -151,6 +151,8 @@ class MediaEntry(Document, MediaEntryMixin):
"unprocessed": uploaded but needs to go through processing for display
"processed": processed and able to be displayed
+ - license: URI for media's license.
+
- queued_media_file: storage interface style filepath describing a file
queued for processing. This is stored in the mg_globals.queue_store
storage system.
@@ -183,6 +185,7 @@ class MediaEntry(Document, MediaEntryMixin):
'plugin_data': dict, # plugins can dump stuff here.
'tags': [dict],
'state': unicode,
+ 'license': unicode,
# For now let's assume there can only be one main file queued
# at a time
diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py
index aa63e34a..53ac3d3f 100644
--- a/mediagoblin/db/sql/models.py
+++ b/mediagoblin/db/sql/models.py
@@ -77,10 +77,11 @@ class MediaEntry(Base, MediaEntryMixin):
title = Column(Unicode, nullable=False)
slug = Column(Unicode, nullable=False)
created = Column(DateTime, nullable=False, default=datetime.datetime.now)
- description = Column(UnicodeText) # ??
- description_html = Column(UnicodeText) # ??
+ description = Column(UnicodeText) # ??
+ description_html = Column(UnicodeText) # ??
media_type = Column(Unicode, nullable=False)
- state = Column(Unicode, nullable=False) # or use sqlalchemy.types.Enum?
+ state = Column(Unicode, nullable=False) # or use sqlalchemy.types.Enum?
+ license = Column(Unicode, nullable=False)
fail_error = Column(Unicode)
fail_metadata = Column(UnicodeText)