
We were refering to model._id in most of the code base as this is what Mongo uses. However, each use of _id required a) fixup of queries: e.g. what we did in our find() and find_one() functions moving all '_id' to 'id'. It also required using AliasFields to make the ._id attribute available. This all means lots of superfluous fixing and transitioning in a SQL world. It will also not work in the long run. Much newer code already refers to the objects by model.id (e.g. in the oauth plugin), which will break with Mongo. So let's be honest, rip out the _id mongoism and live with .id as the one canonical way to address objects. This commit modifies all users and providers of model._id to use model.id instead. This patch works with or without Mongo removed first, but will break Mongo usage (even more than before) I have not bothered to fixup db.mongo.* and db.sql.convert (which converts from Mongo to SQL) Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
58 lines
2.2 KiB
Python
58 lines
2.2 KiB
Python
# GNU MediaGoblin -- federated, autonomous media hosting
|
|
# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Affero General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Affero General Public License for more details.
|
|
#
|
|
# 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.tools.mail import send_email
|
|
from mediagoblin.tools.template import render_template
|
|
from mediagoblin.tools.translate import pass_to_ugettext as _
|
|
from mediagoblin import mg_globals
|
|
|
|
|
|
def send_comment_email(user, comment, media, request):
|
|
"""
|
|
Sends comment email to user when a comment is made on their media.
|
|
|
|
Args:
|
|
- user: the user object to whom the email is sent
|
|
- comment: the comment object referencing user's media
|
|
- media: the media object the comment is about
|
|
- request: the request
|
|
"""
|
|
|
|
comment_url = request.urlgen(
|
|
'mediagoblin.user_pages.media_home.view_comment',
|
|
comment=comment.id,
|
|
user=media.get_uploader.username,
|
|
media=media.slug_or_id,
|
|
qualified=True) + '#comment'
|
|
|
|
comment_author = comment.get_author.username
|
|
|
|
rendered_email = render_template(
|
|
request, 'mediagoblin/user_pages/comment_email.txt',
|
|
{'username': user.username,
|
|
'comment_author': comment_author,
|
|
'comment_content': comment.content,
|
|
'comment_url': comment_url})
|
|
|
|
send_email(
|
|
mg_globals.app_config['email_sender_address'],
|
|
[user.email],
|
|
'{instance_title} - {comment_author} '.format(
|
|
comment_author=comment_author,
|
|
instance_title=mg_globals.app_config['html_title']) \
|
|
+ _('commented on your post'),
|
|
rendered_email)
|