diff options
Diffstat (limited to 'mediagoblin/db')
-rw-r--r-- | mediagoblin/db/migrations.py | 16 | ||||
-rw-r--r-- | mediagoblin/db/models.py | 3 |
2 files changed, 18 insertions, 1 deletions
diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index f1f625b7..b87988fe 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -14,6 +14,8 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. +from mediagoblin.util import cleaned_markdown_conversion + from mongokit import DocumentMigration @@ -33,5 +35,19 @@ class MediaEntryMigration(DocumentMigration): self.collection.update( self.target, self.update, multi=True, safe=True) + def allmigration02_add_description_html(self): + """ + Now that we can have rich descriptions via Markdown, we should + update all existing entries to record the rich description versions. + """ + self.target = {'description_html': {'$exists': False}} + + if not self.status: + for doc in self.collection.find(self.target): + self.update = { + '$set': { + 'description_html': cleaned_markdown_conversion( + doc['description'])}} + MIGRATE_CLASSES = ['MediaEntry'] diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 78bec979..b3de7793 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -75,7 +75,8 @@ class MediaEntry(Document): 'title': unicode, 'slug': unicode, 'created': datetime.datetime, - 'description': unicode, + 'description': unicode, # May contain markdown/up + 'description_html': unicode, # May contain plaintext, or HTML 'media_type': unicode, 'media_data': dict, # extra data relevant to this media_type 'plugin_data': dict, # plugins can dump stuff here. |