diff options
Diffstat (limited to 'mediagoblin/db')
-rw-r--r-- | mediagoblin/db/migrations.py | 41 | ||||
-rw-r--r-- | mediagoblin/db/models.py | 14 |
2 files changed, 23 insertions, 32 deletions
diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 28bb62fc..edaf5630 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -15,7 +15,18 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. from mediagoblin.db.util import RegisterMigration -from mediagoblin.util import cleaned_markdown_conversion +from mediagoblin.tools.text import cleaned_markdown_conversion + + +def add_table_field(db, table_name, field_name, default_value): + """ + Add a new field to the table/collection named table_name. + The field will have the name field_name and the value default_value + """ + db[table_name].update( + {field_name: {'$exists': False}}, + {'$set': {field_name: default_value}}, + multi=True) # Please see mediagoblin/tests/test_migrations.py for some examples of @@ -70,11 +81,7 @@ def mediaentry_add_queued_task_id(database): """ Add the 'queued_task_id' field for entries that don't have it. """ - collection = database['media_entries'] - collection.update( - {'queued_task_id': {'$exists': False}}, - {'$set': {'queued_task_id': None}}, - multi=True) + add_table_field(database, 'media_entries', 'queued_task_id', None) @RegisterMigration(5) @@ -82,16 +89,8 @@ def mediaentry_add_fail_error_and_metadata(database): """ Add 'fail_error' and 'fail_metadata' fields to media entries """ - collection = database['media_entries'] - collection.update( - {'fail_error': {'$exists': False}}, - {'$set': {'fail_error': None}}, - multi=True) - - collection.update( - {'fail_metadata': {'$exists': False}}, - {'$set': {'fail_metadata': {}}}, - multi=True) + add_table_field(database, 'media_entries', 'fail_error', None) + add_table_field(database, 'media_entries', 'fail_metadata', {}) @RegisterMigration(6) @@ -99,11 +98,5 @@ def user_add_forgot_password_token_and_expires(database): """ Add token and expiration fields to help recover forgotten passwords """ - database['users'].update( - {'fp_verification_key': {'$exists': False}}, - {'$set': {'fp_verification_key': None}}, - multi=True) - database['users'].update( - {'fp_token_expire': {'$exists': False}}, - {'$set': {'fp_token_expire': None}}, - multi=True) + add_table_field(database, 'users', 'fp_verification_key', None) + add_table_field(database, 'users', 'fp_token_expire', None) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 42db3f83..c010cb89 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -19,14 +19,12 @@ import uuid from mongokit import Document -from mediagoblin import util from mediagoblin.auth import lib as auth_lib from mediagoblin import mg_globals from mediagoblin.db import migrations from mediagoblin.db.util import ASCENDING, DESCENDING, ObjectId -from mediagoblin.util import Pagination -from mediagoblin.util import DISPLAY_IMAGE_FETCHING_ORDER - +from mediagoblin.tools.pagination import Pagination +from mediagoblin.tools import url, common ################### # Custom validators @@ -222,7 +220,7 @@ class MediaEntry(Document): 'media_entry': self['_id']}).sort('created', DESCENDING) def get_display_media(self, media_map, - fetch_order=DISPLAY_IMAGE_FETCHING_ORDER): + fetch_order=common.DISPLAY_IMAGE_FETCHING_ORDER): """ Find the best media for display. @@ -236,7 +234,7 @@ class MediaEntry(Document): """ media_sizes = media_map.keys() - for media_size in DISPLAY_IMAGE_FETCHING_ORDER: + for media_size in common.DISPLAY_IMAGE_FETCHING_ORDER: if media_size in media_sizes: return media_map[media_size] @@ -244,7 +242,7 @@ class MediaEntry(Document): pass def generate_slug(self): - self['slug'] = util.slugify(self['title']) + self['slug'] = url.slugify(self['title']) duplicate = mg_globals.database.media_entries.find_one( {'slug': self['slug']}) @@ -306,7 +304,7 @@ class MediaEntry(Document): Get the exception that's appropriate for this error """ if self['fail_error']: - return util.import_component(self['fail_error']) + return common.import_component(self['fail_error']) class MediaComment(Document): |