[damned-lies] Send mail to coordinator in her language (Fixes #596943)
- From: Claude Paroz <claudep src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [damned-lies] Send mail to coordinator in her language (Fixes #596943)
- Date: Fri, 30 Oct 2009 22:31:17 +0000 (UTC)
commit b39ec02652e2ffc056ed920d9a1ecbabfdf27ba2
Author: Claude Paroz <claude 2xlibre net>
Date: Fri Oct 30 23:30:36 2009 +0100
Send mail to coordinator in her language (Fixes #596943)
people/views.py | 8 ++++----
teams/models.py | 12 ++++++++++--
teams/tests.py | 6 ++++++
3 files changed, 20 insertions(+), 6 deletions(-)
---
diff --git a/people/views.py b/people/views.py
index ca76f8a..2e90479 100644
--- a/people/views.py
+++ b/people/views.py
@@ -21,7 +21,7 @@
from django.core import urlresolvers
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response, get_object_or_404
-from django.utils.translation import ugettext as _, get_date_formats
+from django.utils.translation import ugettext_lazy, ugettext as _, get_date_formats
from django.template import RequestContext
from django.db import transaction, IntegrityError
from django.contrib.auth.decorators import login_required
@@ -85,9 +85,9 @@ def person_team_join(request):
try:
new_role.save()
request.user.message_set.create(message=_("You have successfully joined the team '%s'.") % team.get_description())
- team.send_mail_to_coordinator(subject=_("A new person joined your team"),
- message=_("%(name)s has just joined your translation team on %(site)s") %
- {'name': person.name, 'site': Site.objects.get_current()})
+ team.send_mail_to_coordinator(subject=ugettext_lazy("A new person joined your team"),
+ message=ugettext_lazy("%(name)s has just joined your translation team on %(site)s"),
+ messagekw = {'name': person.name, 'site': Site.objects.get_current()})
except IntegrityError:
transaction.rollback()
request.user.message_set.create(message=_("You are already member of this team."))
diff --git a/teams/models.py b/teams/models.py
index 98edd17..0dcd0fc 100644
--- a/teams/models.py
+++ b/teams/models.py
@@ -21,6 +21,7 @@
from django.db import models
from django.core import mail
+from django.utils import translation
from django.utils.translation import ugettext_lazy, ugettext as _
from django.conf import settings
from django.contrib.sites.models import Site
@@ -184,14 +185,21 @@ class Team(models.Model):
members = list(self.members.all())
return members
- def send_mail_to_coordinator(self, subject, message):
- message += "\n--\n" + _(u"This is an automated message sent from %s.") % Site.objects.get_current()
+ def send_mail_to_coordinator(self, subject, message, messagekw={}):
+ """ Send a message to the coordinator, in her language if available
+ and if subject and message are lazy strings """
+ prev_lang = translation.get_language()
+ translation.activate(self.language_set.all()[0].locale)
+
+ message = u"%s\n--\n" % (message % messagekw,)
+ message += _(u"This is an automated message sent from %s.") % Site.objects.get_current()
mail.send_mail(
subject,
message,
settings.DEFAULT_FROM_EMAIL,
[self.get_coordinator().email]
)
+ translation.activate(prev_lang)
class FakeTeam(object):
"""
diff --git a/teams/tests.py b/teams/tests.py
index 1fc4d66..597dacb 100644
--- a/teams/tests.py
+++ b/teams/tests.py
@@ -6,6 +6,7 @@ from django.core import mail
from django.contrib.auth import login
from people.models import Person
from teams.models import Team, Role
+from languages.models import Language
class TeamTest(TestCase):
@@ -35,6 +36,9 @@ class TeamTest(TestCase):
self.t = Team(name='fr', description='French')
self.t.save()
+ self.l = Language(name='French', locale='fr', team=self.t)
+ self.l.save()
+
self.role = Role(team=self.t, person=self.pt)
self.role.save()
@@ -124,6 +128,8 @@ class TeamTest(TestCase):
# Test coordinator receives email
self.assertEquals(len(mail.outbox), 1)
self.assertEquals(mail.outbox[0].recipients()[0], self.pcoo.email)
+ # Mail should be sent in the target team's language (i.e. French here)
+ self.assertTrue(u"rejoindre" in mail.outbox[0].body)
def test_edit_team(self):
""" Test team edit form """
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]