Allow .id instead of ._id for the Mongo backend
To allow easier migration to the SQLAlchemy style .id give the User and MediaEntry mongo classes an alias attribute of .id that maps to ['_id']. Use it in the upload process, because this was one of the last positions with a ['_id'] instead of ._id (due to a bug in mongokit).
This commit is contained in:
parent
9891351256
commit
58f96a13e4
@ -25,6 +25,17 @@ from mediagoblin.tools.pagination import Pagination
|
|||||||
from mediagoblin.tools import url
|
from mediagoblin.tools import url
|
||||||
from mediagoblin.db.mixin import UserMixin, MediaEntryMixin, MediaCommentMixin
|
from mediagoblin.db.mixin import UserMixin, MediaEntryMixin, MediaCommentMixin
|
||||||
|
|
||||||
|
|
||||||
|
class MongoPK(object):
|
||||||
|
"""An alias for the _id primary key"""
|
||||||
|
def __get__(self, instance, cls):
|
||||||
|
return instance['_id']
|
||||||
|
def __set__(self, instance, val):
|
||||||
|
instance['_id'] = val
|
||||||
|
def __delete__(self, instance):
|
||||||
|
del instance['_id']
|
||||||
|
|
||||||
|
|
||||||
###################
|
###################
|
||||||
# Custom validators
|
# Custom validators
|
||||||
###################
|
###################
|
||||||
@ -87,6 +98,8 @@ class User(Document, UserMixin):
|
|||||||
'status': u'needs_email_verification',
|
'status': u'needs_email_verification',
|
||||||
'is_admin': False}
|
'is_admin': False}
|
||||||
|
|
||||||
|
id = MongoPK()
|
||||||
|
|
||||||
|
|
||||||
class MediaEntry(Document, MediaEntryMixin):
|
class MediaEntry(Document, MediaEntryMixin):
|
||||||
"""
|
"""
|
||||||
@ -205,6 +218,8 @@ class MediaEntry(Document, MediaEntryMixin):
|
|||||||
'created': datetime.datetime.utcnow,
|
'created': datetime.datetime.utcnow,
|
||||||
'state': u'unprocessed'}
|
'state': u'unprocessed'}
|
||||||
|
|
||||||
|
id = MongoPK()
|
||||||
|
|
||||||
def get_comments(self, ascending=False):
|
def get_comments(self, ascending=False):
|
||||||
if ascending:
|
if ascending:
|
||||||
order = ASCENDING
|
order = ASCENDING
|
||||||
|
@ -59,7 +59,7 @@ def submit_start(request):
|
|||||||
|
|
||||||
# create entry and save in database
|
# create entry and save in database
|
||||||
entry = request.db.MediaEntry()
|
entry = request.db.MediaEntry()
|
||||||
entry['_id'] = ObjectId()
|
entry.id = ObjectId()
|
||||||
entry.media_type = unicode(media_type)
|
entry.media_type = unicode(media_type)
|
||||||
entry.title = (
|
entry.title = (
|
||||||
unicode(request.POST['title'])
|
unicode(request.POST['title'])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user