# HG changeset patch # User Lennard de Rijk # Date 1229542383 0 # Node ID a0c0b48563cb3cec4bac8446772fc335dac88512 # Parent 1ed041c0cdc654831497a0dcd72d35f7c610c37a Changed invitation email and into a notification. Also changed the public template for Notification to allow HTML code. Patch by: Lennard de Rijk diff -r 1ed041c0cdc6 -r a0c0b48563cb app/soc/logic/helper/notifications.py --- a/app/soc/logic/helper/notifications.py Mon Dec 15 01:15:32 2008 +0000 +++ b/app/soc/logic/helper/notifications.py Wed Dec 17 19:33:03 2008 +0000 @@ -22,10 +22,12 @@ ] +import time import os from google.appengine.api import users +from django.template import loader from django.utils.translation import ugettext_lazy from soc.logic import mail_dispatcher @@ -47,15 +49,14 @@ """ # get user logic - user_logic = model_logic.user + user_logic = model_logic.user.logic # get the current user - properties = {'account': users.get_current_user()} - current_user_entity = user_logic.logic.getForFields(properties, unique=True) + current_user_entity = user_logic.getForCurrentAccount() # get the user the request is for properties = {'link_id': entity.link_id } - request_user_entity = user_logic.logic.getForFields(properties, unique=True) + request_user_entity = user_logic.getForFields(properties, unique=True) # create the invitation_url invitation_url = "%(host)s%(index)s" % { @@ -64,24 +65,37 @@ # get the group entity group_entity = entity.scope - + + # create the properties for the message messageProperties = { 'to_name': request_user_entity.name, 'sender_name': current_user_entity.name, 'role': entity.role, 'group': group_entity.name, 'invitation_url': invitation_url, - 'to': request_user_entity.account.email(), - 'sender': current_user_entity.account.email(), - 'subject': DEF_INVITATION_MSG_FMT % { - 'role': entity.role, - 'group': group_entity.name + } + + # render the message + message = loader.render_to_string('soc/notification/messages/invitation.html', dictionary=messageProperties) + + # create the fields for the notification + fields = { + 'from_user' : current_user_entity, + 'subject' : DEF_INVITATION_MSG_FMT % { + 'role' : entity.role, + 'group' : group_entity.name }, - } - - # send out the message using the default invitation template - mail_dispatcher.sendMailFromTemplate('soc/mail/invitation.html', - messageProperties) + 'message' : message, + 'scope' : request_user_entity, + 'link_id' :'%i' % (time.time()), + 'scope_path' : request_user_entity.link_id + } + + # create and put a new notification in the datastore + notification_logic = model_logic.notification.logic + notification_logic.updateOrCreateFromFields(fields, + notification_logic.getKeyFieldsFromDict(fields)) + def sendWelcomeMessage(user_entity): """Sends out a welcome message to a user. diff -r 1ed041c0cdc6 -r a0c0b48563cb app/soc/models/notification.py --- a/app/soc/models/notification.py Mon Dec 15 01:15:32 2008 +0000 +++ b/app/soc/models/notification.py Wed Dec 17 19:33:03 2008 +0000 @@ -38,7 +38,7 @@ from_user = db.ReferenceProperty(reference_class=soc.models.user.User, required=False, collection_name="sent_notifications", - verbose_name=ugettext_lazy('From User')) + verbose_name=ugettext_lazy('From')) subject = db.StringProperty(required=True, verbose_name=ugettext_lazy('Subject')) diff -r 1ed041c0cdc6 -r a0c0b48563cb app/soc/templates/soc/mail/invitation.html --- a/app/soc/templates/soc/mail/invitation.html Mon Dec 15 01:15:32 2008 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -{% extends "soc/mail/base.html" %} -{% comment %} -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -{% endcomment %} - -{% block content %} -You have been invited by {{ sender_name }} to become a {{ role }} for {{ group }}. -Please click here to fill in the necessary information and accept the invitation. -{% endblock %} diff -r 1ed041c0cdc6 -r a0c0b48563cb app/soc/templates/soc/notification/messages/invitation.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/soc/templates/soc/notification/messages/invitation.html Wed Dec 17 19:33:03 2008 +0000 @@ -0,0 +1,18 @@ +{% comment %} +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +{% endcomment %} + +{% block content %} +You have been invited by {{ sender_name }} to become a {{ role }} for {{ group }}. +Please click here to fill in the necessary information and accept the invitation. +{% endblock %} diff -r 1ed041c0cdc6 -r a0c0b48563cb app/soc/templates/soc/notification/public.html --- a/app/soc/templates/soc/notification/public.html Mon Dec 15 01:15:32 2008 +0000 +++ b/app/soc/templates/soc/notification/public.html Wed Dec 17 19:33:03 2008 +0000 @@ -34,7 +34,14 @@ {% readonly_field_as_table_row "To" entity.scope.name %} {% readonly_field_as_table_row "Sent On" entity.created_on %} {% readonly_field_as_table_row entity.fields.subject.label entity.subject %} -{% readonly_multiline_field_as_table_row entity.fields.message.label entity.message %} + + + + {{ entity.fields.message.label }}: + + + {{ entity.message|safe|linebreaks }} +