Skip to content

Commit

Permalink
add ru translation
Browse files Browse the repository at this point in the history
  • Loading branch information
bashu committed Jul 8, 2013
1 parent 919805e commit 99cdcaa
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 37 deletions.
Binary file added mailer/locale/ru/LC_MESSAGES/django.mo
Binary file not shown.
43 changes: 43 additions & 0 deletions mailer/locale/ru/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-07-08 12:32+0700\n"
"PO-Revision-Date: 2013-07-08 12:35+0700\n"
"Last-Translator: Basil Shubin <basil.shubin@gmail.com>\n"
"Language-Team: <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 1.5.4\n"

#: models.py:102
msgid "message"
msgstr "сообщение"

#: models.py:103
msgid "messages"
msgstr "сообщения"

#: models.py:203
msgid "don't send entry"
msgstr "отложенное сообщение"

#: models.py:204
msgid "don't send entries"
msgstr "отложенные сообщения"

#: models.py:249
msgid "message log"
msgstr "журнальная запись"

#: models.py:250
msgid "message logs"
msgstr "журнал сообщений"
83 changes: 46 additions & 37 deletions mailer/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
datetime_now = datetime.now

from django.core.mail import EmailMessage
from django.utils.translation import ugettext_lazy as _
from django.db import models


Expand All @@ -22,42 +23,42 @@


class MessageManager(models.Manager):

def high_priority(self):
"""
the high priority messages in the queue
"""

return self.filter(priority="1")

def medium_priority(self):
"""
the medium priority messages in the queue
"""

return self.filter(priority="2")

def low_priority(self):
"""
the low priority messages in the queue
"""

return self.filter(priority="3")

def non_deferred(self):
"""
the messages in the queue not deferred
"""

return self.filter(priority__lt="4")

def deferred(self):
"""
the deferred messages in the queue
"""

return self.filter(priority="4")

def retry_deferred(self, new_priority=2):
count = 0
for message in self.deferred():
Expand Down Expand Up @@ -87,46 +88,50 @@ def db_to_email(data):


class Message(models.Model):

# The actual data - a pickled EmailMessage
message_data = models.TextField()
when_added = models.DateTimeField(default=datetime_now)
priority = models.CharField(max_length=1, choices=PRIORITIES, default="2")
# @@@ campaign?
# @@@ content_type?

objects = MessageManager()


class Meta:
verbose_name = _("message")
verbose_name_plural = _("messages")

def defer(self):
self.priority = "4"
self.save()

def retry(self, new_priority=2):
if self.priority == "4":
self.priority = new_priority
self.save()
return True
else:
return False

def _get_email(self):
return db_to_email(self.message_data)

def _set_email(self, val):
self.message_data = email_to_db(val)

email = property(_get_email, _set_email, doc=
"""EmailMessage object. If this is mutated, you will need to
set the attribute again to cause the underlying serialised data to be updated.""")

@property
def to_addresses(self):
email = self.email
if email is not None:
return email.to
else:
return []

@property
def subject(self):
email = self.email
Expand All @@ -153,29 +158,29 @@ def make_message(subject="", body="", from_email=None, to=None, bcc=None,
"""
Creates a simple message for the email parameters supplied.
The 'to' and 'bcc' lists are filtered using DontSendEntry.
If needed, the 'email' attribute can be set to any instance of EmailMessage
if e-mails with attachments etc. need to be supported.
Call 'save()' on the result when it is ready to be sent, and not before.
"""
to = filter_recipient_list(to)
bcc = filter_recipient_list(bcc)
core_msg = EmailMessage(subject=subject, body=body, from_email=from_email,
to=to, bcc=bcc, attachments=attachments, headers=headers)

db_msg = Message(priority=priority)
db_msg.email = core_msg
return db_msg


class DontSendEntryManager(models.Manager):

def has_address(self, address):
"""
is the given address on the don't send list?
"""

queryset = self.filter(to_address__iexact=address)
try:
# Django 1.2
Expand All @@ -186,17 +191,17 @@ def has_address(self, address):


class DontSendEntry(models.Model):

to_address = models.EmailField()
when_added = models.DateTimeField()
# @@@ who added?
# @@@ comment field?

objects = DontSendEntryManager()

class Meta:
verbose_name = "don't send entry"
verbose_name_plural = "don't send entries"
verbose_name = _("don't send entry")
verbose_name_plural = _("don't send entries")


RESULT_CODES = (
Expand All @@ -208,13 +213,13 @@ class Meta:


class MessageLogManager(models.Manager):

def log(self, message, result_code, log_message=""):
"""
create a log entry for an attempt to send the given message and
record the given result and (optionally) a log message
"""

return self.create(
message_data = message.message_data,
when_added = message.when_added,
Expand All @@ -226,32 +231,36 @@ def log(self, message, result_code, log_message=""):


class MessageLog(models.Model):

# fields from Message
message_data = models.TextField()
when_added = models.DateTimeField()
priority = models.CharField(max_length=1, choices=PRIORITIES)
# @@@ campaign?

# additional logging fields
when_attempted = models.DateTimeField(default=datetime_now)
result = models.CharField(max_length=1, choices=RESULT_CODES)
log_message = models.TextField()

objects = MessageLogManager()


class Meta:
verbose_name = _("message log")
verbose_name_plural = _("message logs")

@property
def email(self):
return db_to_email(self.message_data)

@property
def to_addresses(self):
email = self.email
if email is not None:
return email.to
else:
return []

@property
def subject(self):
email = self.email
Expand Down

0 comments on commit 99cdcaa

Please sign in to comment.