aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/db')
-rw-r--r--mediagoblin/db/migrations.py19
-rw-r--r--mediagoblin/db/models.py4
-rw-r--r--mediagoblin/db/util.py1
3 files changed, 22 insertions, 2 deletions
diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py
index aacbf079..712f8ab4 100644
--- a/mediagoblin/db/migrations.py
+++ b/mediagoblin/db/migrations.py
@@ -50,5 +50,20 @@ class MediaEntryMigration(DocumentMigration):
'description_html': cleaned_markdown_conversion(
doc['description'])}}
-
-MIGRATE_CLASSES = ['MediaEntry']
+class UserMigration(DocumentMigration):
+ def allmigration01_add_bio_and_url_profile(self):
+ """
+ User can elaborate profile with home page and biography
+ """
+ self.target = {'url': {'$exists': False},
+ 'bio': {'$exists': False}}
+ if not self.status:
+ for doc in self.collection.find(self.target):
+ self.update = {
+ '$set': {'url': '',
+ 'bio': ''}}
+ self.collection.update(
+ self.target, self.update, multi=True, safe=True)
+
+
+MIGRATE_CLASSES = ['MediaEntry', 'User']
diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py
index e034cc29..600b79ff 100644
--- a/mediagoblin/db/models.py
+++ b/mediagoblin/db/models.py
@@ -46,6 +46,8 @@ class User(Document):
'status': unicode,
'verification_key': unicode,
'is_admin': bool,
+ 'url' : unicode,
+ 'bio' : unicode
}
required_fields = ['username', 'created', 'pw_hash', 'email']
@@ -56,6 +58,8 @@ class User(Document):
'status': u'needs_email_verification',
'verification_key': lambda: unicode(uuid.uuid4()),
'is_admin': False}
+
+ migration_handler = migrations.UserMigration
def check_login(self, password):
"""
diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py
index 30615fca..470da531 100644
--- a/mediagoblin/db/util.py
+++ b/mediagoblin/db/util.py
@@ -17,4 +17,5 @@
# Imports that other modules might use
from pymongo import DESCENDING
+from pymongo.errors import InvalidId
from mongokit import ObjectId