def store_media(): """Store media object info in datastore. Also updates the user-info record to keep count of media objects. This function is run as a transaction. """ user_info = UserInfo.get_by_key_name('user:%s' % user_email) if user_info is None: error_messages.append('User record has been deleted. ' 'Try uploading again') return media = MediaObject( parent=user_info, owner=user_info, blob=blob_info.key(), creation=blob_info.creation, content_type=blob_info.content_type, filename=blob_info.filename, size=int(blob_info.size), lacks_document=True) user_info.media_objects += 1 db.put(user_info) db.put(media) if bool(is_doc) and is_doc != "0": tag_list = [] if tags is not None: tag_list = [x for x in re.split('\s*,\s*', tags) if x] doc = Document( parent=user_info, owner=user_info, pages=[media.key()], title=title, description=description, no_tags=(len(tag_list)==0), tags=tag_list) db.put(doc) media.document = doc.key() media.lacks_document = False db.put(media)