Patrick Samson avatar Patrick Samson committed 973850d

Make the app compatible with the new 'Custom Auth Model' feature of Django 1.5

Comments (0)

Files changed (51)

 Django Postman changelog
 ========================
 
+Version 2.1.0, December 2012
+----------------------------
+* Make the app compatible with the new 'Custom Auth Model' feature of Django 1.5
+* Add a setting: POSTMAN_SHOW_USER_AS
+* Remove the dependency to django-pagination in the default template set.
+* Add an optional auto_moderators parameter to the pm_write() API function.
+* Add a template for the autocomplete of multiple recipients in version 1.2.x of django-ajax-selects.
+
 Version 2.0.0, August 2012
 --------------------------
 * Add an API.
 
 Version 1.1.0, January 2012
 ---------------------------
-* Add POSTMAN_DISABLE_USER_EMAILING.
+* Add a setting: POSTMAN_DISABLE_USER_EMAILING.
 * No need for an immediate rejection notification for a User.
 * Add an ordering criteria.
 
 # The short X.Y version.
 version = '2.1'
 # The full version, including alpha/beta/rc tags.
-release = '2.1.0a1'
+release = '2.1.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.

docs/quickstart.rst

 
     * The name of a property of User. For example: 'last_name'
     * The name of a method of User. For example: 'get_full_name'
-    * A function, receiving the User instance as the only parameter. For example: lambda u: u.get_profile().nickname
+    * A function, receiving the User instance as the only parameter. For example: ``lambda u: u.get_profile().nickname``
     * ``None`` : the default text representation of the User (username) is used.
 
     *Defaults to*: None.

postman/__init__.py

-"""A messaging application for Django"""
+"""
+A messaging application for Django
+"""
+from __future__ import unicode_literals
 
 # following PEP 386: N.N[.N]+[{a|b|c|rc}N[.N]+][.postN][.devN]
 VERSION = (2, 1, 0)
-PREREL = ('a', 1)
+PREREL = ()
 POST = 0
 DEV = 0
 
+
 def get_version():
     version = '.'.join(map(str, VERSION))
     if PREREL:
+from __future__ import unicode_literals
+
 from django import forms
 from django.contrib import admin
 from django.db import transaction
 
 from postman.models import Message, PendingMessage
 
+
 class MessageAdminForm(forms.ModelForm):
     class Meta:
         model = Message
         self.initial_status = obj.moderation_status
         return cleaned_data
 
+
 class MessageAdmin(admin.ModelAdmin):
     form = MessageAdminForm
     search_fields = ('subject', 'body')
             )}),
     )
     readonly_fields = (
-        'parent', 'thread', # no reason to change, and anyway too many objects
-        'moderation_date', 'moderation_by', # automatically set at status change
+        'parent', 'thread',  # no reason to change, and anyway too many objects
+        'moderation_date', 'moderation_by',  # automatically set at status change
     )
     radio_fields = {'moderation_status': admin.VERTICAL}
 
         obj.update_parent(form.initial_status)
         obj.notify_users(form.initial_status, is_auto_moderated=False)
 
+
 class PendingMessageAdminForm(forms.ModelForm):
     class Meta:
         model = PendingMessage
             obj.set_rejected()
         return cleaned_data
 
+
 class PendingMessageAdmin(MessageAdmin):
     form = PendingMessageAdminForm
     search_fields = ()
         subject='New {0} at Our School: {1}'.format(e.type, e.title),
         body=e.description)
 """
+from __future__ import unicode_literals
+
 try:
-    from django.utils.timezone import now   # Django 1.4 aware datetimes
+    from django.utils.timezone import now  # Django 1.4 aware datetimes
 except ImportError:
     from datetime import datetime
     now = datetime.now

postman/context_processors.py

+from __future__ import unicode_literals
+
 from postman.models import Message
 
+
 def inbox(request):
     """Provide the count of unread messages for an authenticated user."""
     if request.user.is_authenticated():

postman/fields.py

 """
 Custom fields.
 """
+from __future__ import unicode_literals
 
 from django.conf import settings
-from django.contrib.auth.models import User
+try:
+    from django.contrib.auth import get_user_model  # Django 1.5
+except ImportError:
+    from postman.future_1_5 import get_user_model
 from django.core.exceptions import ValidationError
 from django.core.validators import EMPTY_VALUES
 from django.forms.fields import CharField
 from django.utils.translation import ugettext_lazy as _
 
+
 class BasicCommaSeparatedUserField(CharField):
     """
     An internal base class for CommaSeparatedUserField.
         'max': _("Ensure this value has at most {limit_value} distinct items (it has {show_value})."),
         'min': _("Ensure this value has at least {limit_value} distinct items (it has {show_value})."),
         'filtered': _("Some usernames are rejected: {users}."),
-        'filtered_user': _("{user.username}"),
-        'filtered_user_with_reason': _("{user.username} ({reason})"),
+        'filtered_user': _("{username}"),
+        'filtered_user_with_reason': _("{username} ({reason})"),
     }
 
     def __init__(self, max=None, min=None, user_filter=None, *args, **kwargs):
     def to_python(self, value):
         """Normalize data to an unordered list of distinct, non empty, whitespace-stripped strings."""
         value = super(BasicCommaSeparatedUserField, self).to_python(value)
-        if value in EMPTY_VALUES: # Return an empty list if no useful input was given.
+        if value in EMPTY_VALUES:  # Return an empty list if no useful input was given.
             return []
         return list(set([name.strip() for name in value.split(',') if name and not name.isspace()]))
 
         names = super(BasicCommaSeparatedUserField, self).clean(value)
         if not names:
             return []
-        users = list(User.objects.filter(is_active=True, username__in=names))
-        unknown_names = set(names) ^ set([u.username for u in users])
+        user_model = get_user_model()
+        users = list(user_model.objects.filter(is_active=True, **{'{0}__in'.format(user_model.USERNAME_FIELD): names}))
+        unknown_names = set(names) ^ set([u.get_username() for u in users])
         errors = []
         if unknown_names:
             errors.append(self.error_messages['unknown'].format(users=', '.join(unknown_names)))
                         filtered_names.append(
                             self.error_messages[
                                 'filtered_user_with_reason' if reason else 'filtered_user'
-                            ].format(user=u, reason=reason)
+                            ].format(username=u.get_username(), reason=reason)
                         )
-                except ValidationError, e:
+                except ValidationError as e:
                     users.remove(u)
                     errors.extend(e.messages)
             if filtered_names:
 app_name = d.get('name', 'ajax_select')
 field_name = d.get('field', 'AutoCompleteField')
 arg_name = d.get('arg_name', 'channel')
-arg_default = d.get('arg_default') # the minimum to declare to enable the feature
+arg_default = d.get('arg_default')  # the minimum to declare to enable the feature
 
 autocompleter_app = {}
 if app_name in settings.INSTALLED_APPS and arg_default:
     exchange_filter = staticmethod(my_exchange_filter)
 
 """
+from __future__ import unicode_literals
+
 from django import forms
 from django.conf import settings
-from django.contrib.auth.models import User
+try:
+    from django.contrib.auth import get_user_model  # Django 1.5
+except ImportError:
+    from postman.future_1_5 import get_user_model
 from django.db import transaction
 from django.utils.translation import ugettext, ugettext_lazy as _
 
 from postman.models import Message
 from postman.utils import WRAP_WIDTH
 
+
 class BaseWriteForm(forms.ModelForm):
     """The base class for other forms."""
     class Meta:
 
     error_messages = {
         'filtered': _("Writing to some users is not possible: {users}."),
-        'filtered_user': _("{user.username}"),
-        'filtered_user_with_reason': _("{user.username} ({reason})"),
+        'filtered_user': _("{username}"),
+        'filtered_user_with_reason': _("{username} ({reason})"),
     }
     def clean_recipients(self):
         """Check no filter prohibit the exchange."""
                         filtered_names.append(
                             self.error_messages[
                                 'filtered_user_with_reason' if reason else 'filtered_user'
-                            ].format(user=u, reason=reason)
+                            ].format(username=u.get_username(), reason=reason)
                         )
-                except forms.ValidationError, e:
+                except forms.ValidationError as e:
                     recipients.remove(u)
                     errors.extend(e.messages)
             if filtered_names:
 
         """
         recipients = self.cleaned_data.get('recipients', [])
-        if parent and not parent.thread_id: # at the very first reply, make it a conversation
+        if parent and not parent.thread_id:  # at the very first reply, make it a conversation
             parent.thread = parent
             parent.save()
             # but delay the setting of parent.replied_at to the moderation step
         initial_dates = self.instance.get_dates()
         initial_status = self.instance.moderation_status
         if recipient:
-            if isinstance(recipient, User) and recipient in recipients:
+            if isinstance(recipient, get_user_model()) and recipient in recipients:
                 recipients.remove(recipient)
             recipients.insert(0, recipient)
         is_successful = True
         for r in recipients:
-            if isinstance(r, User):
+            if isinstance(r, get_user_model()):
                 self.instance.recipient = r
             else:
                 self.instance.recipient = None
                 self.instance.email = r
-            self.instance.pk = None # force_insert=True is not accessible from here
+            self.instance.pk = None  # force_insert=True is not accessible from here
             self.instance.auto_moderate(auto_moderators)
             self.instance.clean_moderation(initial_status)
             self.instance.clean_for_visitor()
             self.instance.update_parent(initial_status)
             self.instance.notify_users(initial_status)
             # some resets for next reuse
-            if not isinstance(r, User):
+            if not isinstance(r, get_user_model()):
                 self.instance.email = ''
             self.instance.set_moderation(*initial_moderation)
             self.instance.set_dates(*initial_dates)
         return is_successful
 
+
 class WriteForm(BaseWriteForm):
     """The form for an authenticated user, to compose a message."""
     recipients = CommaSeparatedUserField(label=(_("Recipients"), _("Recipient")))
     class Meta(BaseWriteForm.Meta):
         fields = ('recipients', 'subject', 'body')
 
+
 class AnonymousWriteForm(BaseWriteForm):
     """The form for an anonymous user, to compose a message."""
     # The 'max' customization should not be permitted here.
     can_overwrite_limits = False
 
     email = forms.EmailField(label=_("Email"))
-    recipients = CommaSeparatedUserField(label=(_("Recipients"), _("Recipient")), max=1) # one recipient is enough
+    recipients = CommaSeparatedUserField(label=(_("Recipients"), _("Recipient")), max=1)  # one recipient is enough
 
     class Meta(BaseWriteForm.Meta):
         fields = ('email', 'recipients', 'subject', 'body')
 
+
 class BaseReplyForm(BaseWriteForm):
     """The base class for a reply to a message."""
     def __init__(self, *args, **kwargs):
     def save(self, *args, **kwargs):
         return super(BaseReplyForm, self).save(self.recipient, *args, **kwargs)
 
+
 class QuickReplyForm(BaseReplyForm):
     """
     The form to use in the view of a message or a conversation, for a quick reply.
     """
     pass
 
+
 allow_copies = not getattr(settings, 'POSTMAN_DISALLOW_COPIES_ON_REPLY', False)
 class FullReplyForm(BaseReplyForm):
     """The complete reply form."""

postman/future_1_5.py

+"""
+A forwards compatibility module.
+
+Implements some features of Django 1.5 related to the 'Custom User Model' feature
+when the application is run with a lower version of Django.
+"""
+
+from __future__ import unicode_literals
+
+from django.contrib.auth.models import User
+
+User.USERNAME_FIELD = 'username'
+User.get_username = lambda self: self.username
+
+def get_user_model():
+    return User
Add a comment to this file

postman/locale/ar/LC_MESSAGES/django.mo

Binary file modified.

postman/locale/ar/LC_MESSAGES/django.po

 msgstr ""
 "Project-Id-Version: django-postman 1.0.x\n"
 "Report-Msgid-Bugs-To: http://bitbucket.org/psam/django-postman/issues\n"
-"POT-Creation-Date: 2011-02-07 08:13+0100\n"
+"POT-Creation-Date: 2012-12-10 22:48+0100\n"
 "PO-Revision-Date: 2011-02-07 08:13+0100\n"
 "Last-Translator: turbonerd <eyad.alsibai@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: ar\n"
 "Plural-Forms: nplurals=4; plural=(n == 1? 0 : (n == 2? 1 : (n <= 10? 2 : 3)))\n"
 
-#: .\admin.py:22
+#: .\admin.py:25
 msgid "Sender and Recipient cannot be both undefined."
 msgstr ""
 
-#: .\admin.py:29
+#: .\admin.py:32
 msgid "Visitor's email is in excess."
 msgstr ""
 
-#: .\admin.py:34
+#: .\admin.py:37
 msgid "Visitor's email is missing."
 msgstr ""
 
-#: .\admin.py:40
+#: .\admin.py:43
 msgid "Reading date must be later to sending date."
 msgstr ""
 
-#: .\admin.py:45
+#: .\admin.py:48
 msgid "Deletion date by sender must be later to sending date."
 msgstr ""
 
-#: .\admin.py:50
+#: .\admin.py:53
 msgid "Deletion date by recipient must be later to sending date."
 msgstr ""
 
-#: .\admin.py:58
+#: .\admin.py:61
 msgid "Response date must be later to sending date."
 msgstr ""
 
-#: .\admin.py:60
+#: .\admin.py:63
 msgid "The message cannot be replied without having been read."
 msgstr ""
 
-#: .\admin.py:62
+#: .\admin.py:65
 msgid "Response date must be later to reading date."
 msgstr ""
 
-#: .\admin.py:64
+#: .\admin.py:67
 msgid "Response date cannot be set without at least one reply."
 msgstr ""
 
-#: .\admin.py:66
+#: .\admin.py:69
 msgid "The message cannot be replied without being in a conversation."
 msgstr ""
 
-#: .\admin.py:88 .\admin.py:164 .\templates\postman\view.html.py:5
+#: .\admin.py:92 .\admin.py:170 .\templates\postman\view.html.py:6
 msgid "Message"
 msgstr ""
 
-#: .\admin.py:93
+#: .\admin.py:97
 msgid "Dates"
 msgstr ""
 
-#: .\admin.py:98 .\admin.py:168
+#: .\admin.py:102 .\admin.py:174
 msgid "Moderation"
 msgstr ""
 
-#: .\fields.py:22
+#: .\fields.py:27
 msgid "Some usernames are unknown or no more active: {users}."
 msgstr ""
 
-#: .\fields.py:23
+#: .\fields.py:28
 msgid ""
 "Ensure this value has at most {limit_value} distinct items (it has "
 "{show_value})."
 msgstr ""
 
-#: .\fields.py:24
+#: .\fields.py:29
 msgid ""
 "Ensure this value has at least {limit_value} distinct items (it has "
 "{show_value})."
 msgstr ""
 
-#: .\fields.py:25
+#: .\fields.py:30
 msgid "Some usernames are rejected: {users}."
 msgstr ""
 
-#: .\fields.py:26 .\forms.py:65
-msgid "{user.username}"
-msgstr "{user.username}"
+#: .\fields.py:31 .\forms.py:71
+msgid "{username}"
+msgstr "{username}"
 
-#: .\fields.py:27 .\forms.py:66
-msgid "{user.username} ({reason})"
-msgstr "{user.username} ({reason})"
+#: .\fields.py:32 .\forms.py:72
+msgid "{username} ({reason})"
+msgstr "{username} ({reason})"
 
-#: .\forms.py:64
+#: .\forms.py:70
 msgid "Writing to some users is not possible: {users}."
 msgstr ""
 
-#: .\forms.py:148 .\forms.py:160
+#: .\forms.py:155 .\forms.py:168
 msgid "Recipients"
 msgstr ""
 
-#: .\forms.py:148 .\forms.py:160 .\templates\postman\base_folder.html.py:26
+#: .\forms.py:155 .\forms.py:168 .\templates\postman\base_folder.html.py:34
 #: .\templates\postman\reply.html.py:4
 msgid "Recipient"
 msgstr ""
 
-#: .\forms.py:159
+#: .\forms.py:167
 msgid "Email"
 msgstr ""
 
-#: .\forms.py:175
+#: .\forms.py:184
 msgid "Undefined recipient."
 msgstr ""
 
-#: .\forms.py:194
+#: .\forms.py:205
 msgid "Additional recipients"
 msgstr ""
 
-#: .\forms.py:194
+#: .\forms.py:205
 msgid "Additional recipient"
 msgstr ""
 
-#: .\models.py:19
+#: .\models.py:27
 msgid "Pending"
 msgstr ""
 
-#: .\models.py:20
+#: .\models.py:28
 msgid "Accepted"
 msgstr ""
 
-#: .\models.py:21 .\templates\postman\view.html.py:13
+#: .\models.py:29 .\templates\postman\view.html.py:14
 msgid "Rejected"
 msgstr ""
 
-#: .\models.py:200
+#: .\models.py:242
 msgid "subject"
 msgstr "موضوع"
 
-#: .\models.py:201
+#: .\models.py:243
 msgid "body"
 msgstr ""
 
-#: .\models.py:202 .\models.py:284
+#: .\models.py:244 .\models.py:326
 msgid "sender"
 msgstr "مرسل"
 
-#: .\models.py:203 .\models.py:308
+#: .\models.py:245 .\models.py:350
 msgid "recipient"
 msgstr ""
 
-#: .\models.py:204
+#: .\models.py:246
 msgid "visitor"
 msgstr "زائر"
 
-#: .\models.py:205
+#: .\models.py:247
 msgid "parent message"
 msgstr ""
 
-#: .\models.py:206
+#: .\models.py:248
 msgid "root message"
 msgstr ""
 
-#: .\models.py:207
+#: .\models.py:249
 msgid "sent at"
 msgstr ""
 
-#: .\models.py:208
+#: .\models.py:250
 msgid "read at"
 msgstr ""
 
-#: .\models.py:209
+#: .\models.py:251
 msgid "replied at"
 msgstr ""
 
-#: .\models.py:210
+#: .\models.py:252
 msgid "archived by sender"
 msgstr ""
 
-#: .\models.py:211
+#: .\models.py:253
 msgid "archived by recipient"
 msgstr ""
 
-#: .\models.py:212
+#: .\models.py:254
 msgid "deleted by sender at"
 msgstr ""
 
-#: .\models.py:213
+#: .\models.py:255
 msgid "deleted by recipient at"
 msgstr ""
 
-#: .\models.py:215
+#: .\models.py:257
 msgid "status"
 msgstr "حالة"
 
-#: .\models.py:217
+#: .\models.py:259
 msgid "moderator"
 msgstr ""
 
-#: .\models.py:218
+#: .\models.py:260
 msgid "moderated at"
 msgstr ""
 
-#: .\models.py:219
+#: .\models.py:261
 msgid "rejection reason"
 msgstr ""
 
-#: .\models.py:224
+#: .\models.py:266
 msgid "message"
 msgstr "رسالة"
 
-#: .\models.py:225
+#: .\models.py:267
 msgid "messages"
 msgstr "رسائل"
 
-#: .\models.py:336
+#: .\models.py:378
 msgid "Undefined sender."
 msgstr ""
 
-#: .\models.py:476
+#: .\models.py:523
 msgid "pending message"
 msgstr ""
 
-#: .\models.py:477
+#: .\models.py:524
 msgid "pending messages"
 msgstr ""
 
-#: .\utils.py:32
+#: .\utils.py:37
 msgid "> "
 msgstr "> "
 
-#: .\utils.py:48
+#: .\utils.py:53
 msgid ""
 "\n"
 "\n"
 "{body}\n"
 msgstr ""
 
-#: .\utils.py:57
+#: .\utils.py:63
 msgid "Re: {subject}"
 msgstr ""
 
-#: .\views.py:129 .\views.py:189
+#: .\views.py:144 .\views.py:206
 msgid "Message successfully sent."
 msgstr ""
 
-#: .\views.py:131 .\views.py:191
+#: .\views.py:146 .\views.py:208
 msgid "Message rejected for at least one recipient."
 msgstr ""
 
-#: .\views.py:278
+#: .\views.py:299
 msgid "Select at least one object."
 msgstr ""
 
-#: .\views.py:284
+#: .\views.py:306
 msgid "Messages or conversations successfully archived."
 msgstr ""
 
-#: .\views.py:289
+#: .\views.py:312
 msgid "Messages or conversations successfully deleted."
 msgstr ""
 
-#: .\views.py:294
+#: .\views.py:318
 msgid "Messages or conversations successfully recovered."
 msgstr ""
 
-#: .\management\__init__.py:14
+#: .\management\__init__.py:15
 msgid "Message Rejected"
 msgstr ""
 
-#: .\management\__init__.py:14
+#: .\management\__init__.py:15
 msgid "Your message has been rejected"
 msgstr ""
 
-#: .\management\__init__.py:15
+#: .\management\__init__.py:16
 msgid "Message Received"
 msgstr ""
 
-#: .\management\__init__.py:15
+#: .\management\__init__.py:16
 msgid "You have received a message"
 msgstr ""
 
-#: .\management\__init__.py:16
+#: .\management\__init__.py:17
 msgid "Reply Received"
 msgstr ""
 
-#: .\management\__init__.py:16
+#: .\management\__init__.py:17
 msgid "You have received a reply"
 msgstr ""
 
 "long term storage."
 msgstr ""
 
-#: .\templates\postman\base.html.py:3
+#: .\templates\postman\base.html.py:4
 msgid "Messaging"
 msgstr ""
 
-#: .\templates\postman\base.html.py:6
+#: .\templates\postman\base.html.py:13
 msgid "Inbox"
 msgstr ""
 
-#: .\templates\postman\base.html.py:7 .\templates\postman\sent.html.py:3
+#: .\templates\postman\base.html.py:14 .\templates\postman\sent.html.py:3
 msgid "Sent Messages"
 msgstr ""
 
-#: .\templates\postman\base.html.py:8 .\templates\postman\write.html.py:3
+#: .\templates\postman\base.html.py:15 .\templates\postman\write.html.py:3
 msgid "Write"
 msgstr ""
 
-#: .\templates\postman\base.html.py:9
+#: .\templates\postman\base.html.py:16
 msgid "Archives"
 msgstr ""
 
-#: .\templates\postman\base.html.py:10
+#: .\templates\postman\base.html.py:17
 msgid "Trash"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:9
+#: .\templates\postman\base_folder.html.py:16
 msgid "Sorry, this page number is invalid."
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:12
+#: .\templates\postman\base_folder.html.py:20
 msgid "by conversation"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:13
+#: .\templates\postman\base_folder.html.py:21
 msgid "by message"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:17
-#: .\templates\postman\view.html.py:22
+#: .\templates\postman\base_folder.html.py:25
+#: .\templates\postman\view.html.py:23
 msgid "Delete"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:18
-#: .\templates\postman\view.html.py:23
+#: .\templates\postman\base_folder.html.py:26
+#: .\templates\postman\view.html.py:24
 msgid "Archive"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:19
+#: .\templates\postman\base_folder.html.py:27
 msgid "Undelete"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:24
+#: .\templates\postman\base_folder.html.py:32
 msgid "Action"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:25
+#: .\templates\postman\base_folder.html.py:33
 msgid "Sender"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:27
+#: .\templates\postman\base_folder.html.py:35
 msgid "Subject"
 msgstr "موضوع"
 
-#: .\templates\postman\base_folder.html.py:28
+#: .\templates\postman\base_folder.html.py:36
 msgid "Date"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:43
+#: .\templates\postman\base_folder.html.py:51
 msgid "g:i A,M j,n/j/y"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:51
+#: .\templates\postman\base_folder.html.py:58
 msgid "No messages."
 msgstr ""
 
-#: .\templates\postman\base_write.html.py:20
+#: .\templates\postman\base_write.html.py:33
 msgid "Send"
 msgstr ""
 
 msgid "Received"
 msgstr ""
 
-#: .\templates\postman\reply.html.py:3 .\templates\postman\view.html.py:25
-#: .\templates\postman\view.html.py:28 .\templates\postman\view.html.py:31
+#: .\templates\postman\reply.html.py:3 .\templates\postman\view.html.py:26
+#: .\templates\postman\view.html.py:29 .\templates\postman\view.html.py:32
 msgid "Reply"
 msgstr ""
 
 "storage, use instead the archive folder."
 msgstr ""
 
-#: .\templates\postman\view.html.py:5
+#: .\templates\postman\view.html.py:6
 msgid "Conversation"
 msgstr ""
 
-#: .\templates\postman\view.html.py:13
+#: .\templates\postman\view.html.py:14
 msgid ":"
 msgstr ": "
 
-#: .\templates\postman\view.html.py:20
+#: .\templates\postman\view.html.py:21
 msgid "Back"
 msgstr ""
 
-#: .\templatetags\postman_tags.py:35
+#: .\templatetags\postman_tags.py:48
 msgid "<me>"
 msgstr ""
Add a comment to this file

postman/locale/da/LC_MESSAGES/django.mo

Binary file modified.

postman/locale/da/LC_MESSAGES/django.po

 msgstr ""
 "Project-Id-Version: django-postman 1.0.x\n"
 "Report-Msgid-Bugs-To: http://bitbucket.org/psam/django-postman/issues\n"
-"POT-Creation-Date: 2011-02-07 08:48+0100\n"
+"POT-Creation-Date: 2012-12-10 22:52+0100\n"
 "PO-Revision-Date: 2011-02-07 08:48+0100\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: da\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: .\admin.py:22
+#: .\admin.py:25
 msgid "Sender and Recipient cannot be both undefined."
 msgstr ""
 
-#: .\admin.py:29
+#: .\admin.py:32
 msgid "Visitor's email is in excess."
 msgstr ""
 
-#: .\admin.py:34
+#: .\admin.py:37
 msgid "Visitor's email is missing."
 msgstr ""
 
-#: .\admin.py:40
+#: .\admin.py:43
 msgid "Reading date must be later to sending date."
 msgstr ""
 
-#: .\admin.py:45
+#: .\admin.py:48
 msgid "Deletion date by sender must be later to sending date."
 msgstr ""
 
-#: .\admin.py:50
+#: .\admin.py:53
 msgid "Deletion date by recipient must be later to sending date."
 msgstr ""
 
-#: .\admin.py:58
+#: .\admin.py:61
 msgid "Response date must be later to sending date."
 msgstr ""
 
-#: .\admin.py:60
+#: .\admin.py:63
 msgid "The message cannot be replied without having been read."
 msgstr ""
 
-#: .\admin.py:62
+#: .\admin.py:65
 msgid "Response date must be later to reading date."
 msgstr ""
 
-#: .\admin.py:64
+#: .\admin.py:67
 msgid "Response date cannot be set without at least one reply."
 msgstr ""
 
-#: .\admin.py:66
+#: .\admin.py:69
 msgid "The message cannot be replied without being in a conversation."
 msgstr ""
 
-#: .\admin.py:88 .\admin.py:164 .\templates\postman\view.html.py:5
+#: .\admin.py:92 .\admin.py:170 .\templates\postman\view.html.py:6
 msgid "Message"
 msgstr "Beskeder"
 
-#: .\admin.py:93
+#: .\admin.py:97
 msgid "Dates"
 msgstr ""
 
-#: .\admin.py:98 .\admin.py:168
+#: .\admin.py:102 .\admin.py:174
 msgid "Moderation"
 msgstr ""
 
-#: .\fields.py:22
+#: .\fields.py:27
 msgid "Some usernames are unknown or no more active: {users}."
 msgstr ""
 
-#: .\fields.py:23
+#: .\fields.py:28
 msgid ""
 "Ensure this value has at most {limit_value} distinct items (it has "
 "{show_value})."
 msgstr ""
 
-#: .\fields.py:24
+#: .\fields.py:29
 msgid ""
 "Ensure this value has at least {limit_value} distinct items (it has "
 "{show_value})."
 msgstr ""
 
-#: .\fields.py:25
+#: .\fields.py:30
 msgid "Some usernames are rejected: {users}."
 msgstr ""
 
-#: .\fields.py:26 .\forms.py:65
-msgid "{user.username}"
-msgstr "{user.username}"
+#: .\fields.py:31 .\forms.py:71
+msgid "{username}"
+msgstr "{username}"
 
-#: .\fields.py:27 .\forms.py:66
-msgid "{user.username} ({reason})"
-msgstr "{user.username} ({reason})"
+#: .\fields.py:32 .\forms.py:72
+msgid "{username} ({reason})"
+msgstr "{username} ({reason})"
 
-#: .\forms.py:64
+#: .\forms.py:70
 msgid "Writing to some users is not possible: {users}."
 msgstr ""
 
-#: .\forms.py:148 .\forms.py:160
+#: .\forms.py:155 .\forms.py:168
 msgid "Recipients"
 msgstr ""
 
-#: .\forms.py:148 .\forms.py:160 .\templates\postman\base_folder.html.py:26
+#: .\forms.py:155 .\forms.py:168 .\templates\postman\base_folder.html.py:34
 #: .\templates\postman\reply.html.py:4
 msgid "Recipient"
 msgstr "Modtager"
 
-#: .\forms.py:159
+#: .\forms.py:167
 msgid "Email"
 msgstr ""
 
-#: .\forms.py:175
+#: .\forms.py:184
 msgid "Undefined recipient."
 msgstr ""
 
-#: .\forms.py:194
+#: .\forms.py:205
 msgid "Additional recipients"
 msgstr ""
 
-#: .\forms.py:194
+#: .\forms.py:205
 msgid "Additional recipient"
 msgstr ""
 
-#: .\models.py:19
+#: .\models.py:27
 msgid "Pending"
 msgstr ""
 
-#: .\models.py:20
+#: .\models.py:28
 msgid "Accepted"
 msgstr ""
 
-#: .\models.py:21 .\templates\postman\view.html.py:13
+#: .\models.py:29 .\templates\postman\view.html.py:14
 msgid "Rejected"
 msgstr ""
 
-#: .\models.py:200
+#: .\models.py:242
 msgid "subject"
 msgstr "emne"
 
-#: .\models.py:201
+#: .\models.py:243
 msgid "body"
 msgstr "indhold"
 
-#: .\models.py:202 .\models.py:284
+#: .\models.py:244 .\models.py:326
 msgid "sender"
 msgstr "afsender"
 
-#: .\models.py:203 .\models.py:308
+#: .\models.py:245 .\models.py:350
 msgid "recipient"
 msgstr "modtager"
 
-#: .\models.py:204
+#: .\models.py:246
 msgid "visitor"
 msgstr ""
 
-#: .\models.py:205
+#: .\models.py:247
 msgid "parent message"
 msgstr "stambesked"
 
-#: .\models.py:206
+#: .\models.py:248
 msgid "root message"
 msgstr ""
 
-#: .\models.py:207
+#: .\models.py:249
 msgid "sent at"
 msgstr ""
 
-#: .\models.py:208
+#: .\models.py:250
 msgid "read at"
 msgstr ""
 
-#: .\models.py:209
+#: .\models.py:251
 msgid "replied at"
 msgstr ""
 
-#: .\models.py:210
+#: .\models.py:252
 msgid "archived by sender"
 msgstr ""
 
-#: .\models.py:211
+#: .\models.py:253
 msgid "archived by recipient"
 msgstr ""
 
-#: .\models.py:212
+#: .\models.py:254
 msgid "deleted by sender at"
 msgstr ""
 
-#: .\models.py:213
+#: .\models.py:255
 msgid "deleted by recipient at"
 msgstr ""
 
-#: .\models.py:215
+#: .\models.py:257
 msgid "status"
 msgstr ""
 
-#: .\models.py:217
+#: .\models.py:259
 msgid "moderator"
 msgstr ""
 
-#: .\models.py:218
+#: .\models.py:260
 msgid "moderated at"
 msgstr ""
 
-#: .\models.py:219
+#: .\models.py:261
 msgid "rejection reason"
 msgstr ""
 
-#: .\models.py:224
+#: .\models.py:266
 msgid "message"
 msgstr "besked"
 
-#: .\models.py:225
+#: .\models.py:267
 msgid "messages"
 msgstr "beskeder"
 
-#: .\models.py:336
+#: .\models.py:378
 msgid "Undefined sender."
 msgstr ""
 
-#: .\models.py:476
+#: .\models.py:523
 msgid "pending message"
 msgstr ""
 
-#: .\models.py:477
+#: .\models.py:524
 msgid "pending messages"
 msgstr ""
 
-#: .\utils.py:32
+#: .\utils.py:37
 msgid "> "
 msgstr "> "
 
-#: .\utils.py:48
+#: .\utils.py:53
 msgid ""
 "\n"
 "\n"
 "{sender} skrev:\n"
 "{body}\n"
 
-#: .\utils.py:57
+#: .\utils.py:63
 msgid "Re: {subject}"
 msgstr "SV: {subject}"
 
-#: .\views.py:129 .\views.py:189
+#: .\views.py:144 .\views.py:206
 msgid "Message successfully sent."
 msgstr "Besked sendt succesfuldt."
 
-#: .\views.py:131 .\views.py:191
+#: .\views.py:146 .\views.py:208
 msgid "Message rejected for at least one recipient."
 msgstr ""
 
-#: .\views.py:278
+#: .\views.py:299
 msgid "Select at least one object."
 msgstr ""
 
-#: .\views.py:284
+#: .\views.py:306
 msgid "Messages or conversations successfully archived."
 msgstr ""
 
-#: .\views.py:289
+#: .\views.py:312
 msgid "Messages or conversations successfully deleted."
 msgstr ""
 
-#: .\views.py:294
+#: .\views.py:318
 msgid "Messages or conversations successfully recovered."
 msgstr ""
 
-#: .\management\__init__.py:14
+#: .\management\__init__.py:15
 msgid "Message Rejected"
 msgstr ""
 
-#: .\management\__init__.py:14
+#: .\management\__init__.py:15
 msgid "Your message has been rejected"
 msgstr ""
 
-#: .\management\__init__.py:15
+#: .\management\__init__.py:16
 msgid "Message Received"
 msgstr "Besked modtaget"
 
-#: .\management\__init__.py:15
+#: .\management\__init__.py:16
 msgid "You have received a message"
 msgstr "Du har modtaget en besked"
 
-#: .\management\__init__.py:16
+#: .\management\__init__.py:17
 msgid "Reply Received"
 msgstr "Svar modtaget"
 
-#: .\management\__init__.py:16
+#: .\management\__init__.py:17
 msgid "You have received a reply"
 msgstr "Du har modtaget et svar"
 
 "long term storage."
 msgstr ""
 
-#: .\templates\postman\base.html.py:3
+#: .\templates\postman\base.html.py:4
 msgid "Messaging"
 msgstr ""
 
-#: .\templates\postman\base.html.py:6
+#: .\templates\postman\base.html.py:13
 msgid "Inbox"
 msgstr "Indboks"
 
-#: .\templates\postman\base.html.py:7 .\templates\postman\sent.html.py:3
+#: .\templates\postman\base.html.py:14 .\templates\postman\sent.html.py:3
 msgid "Sent Messages"
 msgstr "Sendte beskeder"
 
-#: .\templates\postman\base.html.py:8 .\templates\postman\write.html.py:3
+#: .\templates\postman\base.html.py:15 .\templates\postman\write.html.py:3
 msgid "Write"
 msgstr ""
 
-#: .\templates\postman\base.html.py:9
+#: .\templates\postman\base.html.py:16
 msgid "Archives"
 msgstr ""
 
-#: .\templates\postman\base.html.py:10
+#: .\templates\postman\base.html.py:17
 msgid "Trash"
 msgstr "Papirkurv"
 
-#: .\templates\postman\base_folder.html.py:9
+#: .\templates\postman\base_folder.html.py:16
 msgid "Sorry, this page number is invalid."
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:12
+#: .\templates\postman\base_folder.html.py:20
 msgid "by conversation"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:13
+#: .\templates\postman\base_folder.html.py:21
 msgid "by message"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:17
-#: .\templates\postman\view.html.py:22
+#: .\templates\postman\base_folder.html.py:25
+#: .\templates\postman\view.html.py:23
 msgid "Delete"
 msgstr "Slet"
 
-#: .\templates\postman\base_folder.html.py:18
-#: .\templates\postman\view.html.py:23
+#: .\templates\postman\base_folder.html.py:26
+#: .\templates\postman\view.html.py:24
 msgid "Archive"
 msgstr ""
 
-#: .\templates\postman\base_folder.html.py:19
+#: .\templates\postman\base_folder.html.py:27
 msgid "Undelete"
 msgstr "Genskab"
 
-#: .\templates\postman\base_folder.html.py:24
+#: .\templates\postman\base_folder.html.py:32
 msgid "Action"
 msgstr "Handling"
 
-#: .\templates\postman\base_folder.html.py:25
+#: .\templates\postman\base_folder.html.py:33
 msgid "Sender"
 msgstr "Afsender"
 
-#: .\templates\postman\base_folder.html.py:27
+#: .\templates\postman\base_folder.html.py:35
 msgid "Subject"
 msgstr "Emne"
 
-#: .\templates\postman\base_folder.html.py:28
+#: .\templates\postman\base_folder.html.py:36
 msgid "Date"
 msgstr "Dato"
 
-#: .\templates\postman\base_folder.html.py:43
+#: .\templates\postman\base_folder.html.py:51
 msgid "g:i A,M j,n/j/y"
 msgstr "G:i,j b,j/n/y"
 
-#: .\templates\postman\base_folder.html.py:51
+#: .\templates\postman\base_folder.html.py:58
 msgid "No messages."
 msgstr ""
 
-#: .\templates\postman\base_write.html.py:20
+#: .\templates\postman\base_write.html.py:33
 msgid "Send"
 msgstr "Send"
 
 msgid "Received"
 msgstr "Modtaget"
 
-#: .\templates\postman\reply.html.py:3 .\templates\postman\view.html.py:25
-#: .\templates\postman\view.html.py:28 .\templates\postman\view.html.py:31
+#: .\templates\postman\reply.html.py:3 .\templates\postman\view.html.py:26
+#: .\templates\postman\view.html.py:29 .\templates\postman\view.html.py:32
 msgid "Reply"
 msgstr "Svar"
 
 "storage, use instead the archive folder."
 msgstr ""
 
-#: .\templates\postman\view.html.py:5
+#: .\templates\postman\view.html.py:6
 msgid "Conversation"
 msgstr ""
 
-#: .\templates\postman\view.html.py:13
+#: .\templates\postman\view.html.py:14
 msgid ":"
 msgstr ": "
 
-#: .\templates\postman\view.html.py:20
+#: .\templates\postman\view.html.py:21
 msgid "Back"
 msgstr ""
 
-#: .\templatetags\postman_tags.py:35
+#: .\templatetags\postman_tags.py:48
 msgid "<me>"
 msgstr ""
Add a comment to this file

postman/locale/de/LC_MESSAGES/django.mo

Binary file modified.

postman/locale/de/LC_MESSAGES/django.po

 # German translation of django-postman.
 # Copyright (C) 2010 Patrick Samson
 # This file is distributed under the same license as the django-postman package.
-# 
+#
 # Translators:
 # Patrick Samson <maxcom@laposte.net>, 2011.
 #   <simon@cowboyventure.com>, 2012.
 msgstr ""
 "Project-Id-Version: django-postman 1.0.x\n"
 "Report-Msgid-Bugs-To: http://bitbucket.org/psam/django-postman/issues\n"
-"POT-Creation-Date: 2010-12-27 14:21+0100\n"
+"POT-Creation-Date: 2012-12-10 22:54+0100\n"
 "PO-Revision-Date: 2012-05-18 13:23+0000\n"
 "Last-Translator: lonelycowboy <simon@cowboyventure.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: .\admin.py:22
+#: .\admin.py:25
 msgid "Sender and Recipient cannot be both undefined."
 msgstr "Sender und Empfänger können nicht beide undefiniert sein."
 
-#: .\admin.py:29
+#: .\admin.py:32
 msgid "Visitor's email is in excess."
 msgstr "Die Email des Besuchers ist zu lang."
 
-#: .\admin.py:34
+#: .\admin.py:37
 msgid "Visitor's email is missing."
 msgstr "Die Email des Besuchers fehlt."
 
-#: .\admin.py:40
+#: .\admin.py:43
 msgid "Reading date must be later to sending date."
 msgstr "Das Lese-Datum muss neuer sein als das Sende-Datum."
 
-#: .\admin.py:45
+#: .\admin.py:48
 msgid "Deletion date by sender must be later to sending date."
 msgstr "Das Lösch-Datum muss neuer sein als das Sende-Datum."
 
-#: .\admin.py:50
+#: .\admin.py:53
 msgid "Deletion date by recipient must be later to sending date."
 msgstr "Das Lösch-Datum muss neuer sein als das Sende-Datum."
 
-#: .\admin.py:58
+#: .\admin.py:61
 msgid "Response date must be later to sending date."
 msgstr "Das Antwort-Datum muss neuer sein als das Sende-Datum."
 
-#: .\admin.py:60
+#: .\admin.py:63
 msgid "The message cannot be replied without having been read."
-msgstr "Die Nachricht kann nicht beantwortet werden, bevor sie nicht gelesen wurde."
+msgstr ""
+"Die Nachricht kann nicht beantwortet werden, bevor sie nicht gelesen wurde."
 
-#: .\admin.py:62
+#: .\admin.py:65
 msgid "Response date must be later to reading date."
 msgstr "Das Antwort-Datum muss neuer sein als das Lese-Datum."
 
-#: .\admin.py:64
+#: .\admin.py:67
 msgid "Response date cannot be set without at least one reply."
-msgstr "Das Antwort-Datum kann nicht gesetzt werden, wenn nicht mindestens eine Antwort geschrieben wurde."
+msgstr ""
+"Das Antwort-Datum kann nicht gesetzt werden, wenn nicht mindestens eine "
+"Antwort geschrieben wurde."
 
-#: .\admin.py:66
+#: .\admin.py:69
 msgid "The message cannot be replied without being in a conversation."
-msgstr "Auf diese Nachricht kann nicht geantwortet werden, ohne dass die Teil einer Konversation ist."
+msgstr ""
+"Auf diese Nachricht kann nicht geantwortet werden, ohne dass die Teil einer "
+"Konversation ist."
 
-#: .\admin.py:88 .\admin.py:157 .\templates\postman\view.html.py:5
+#: .\admin.py:92 .\admin.py:170 .\templates\postman\view.html.py:6
 msgid "Message"
 msgstr "Nachricht"
 
-#: .\admin.py:93
+#: .\admin.py:97
 msgid "Dates"
 msgstr "Daten"
 
-#: .\admin.py:98 .\admin.py:161
+#: .\admin.py:102 .\admin.py:174
 msgid "Moderation"
 msgstr "Moderierung"
 
-#: .\fields.py:22
+#: .\fields.py:27
 msgid "Some usernames are unknown or no more active: {users}."
 msgstr "Manche Nutzernamen sind unbekannt oder nicht mehr aktiv: {users}."
 
-#: .\fields.py:23
+#: .\fields.py:28
 msgid ""
 "Ensure this value has at most {limit_value} distinct items (it has "
 "{show_value})."
-msgstr "Stellen Sie sicher, dass dieser Wert aus höchstens {limit_value} Einzelteilen besteht (Er hat momentan {show_value})."
+msgstr ""
+"Stellen Sie sicher, dass dieser Wert aus höchstens {limit_value} "
+"Einzelteilen besteht (Er hat momentan {show_value})."
 
-#: .\fields.py:24
+#: .\fields.py:29
 msgid ""
 "Ensure this value has at least {limit_value} distinct items (it has "
 "{show_value})."
-msgstr "Stellen Sie sicher, dass dieser Wert aus mindestens {limit_value} Einzelteilen besteht (Er hat momentan {show_value})."
+msgstr ""
+"Stellen Sie sicher, dass dieser Wert aus mindestens {limit_value} "
+"Einzelteilen besteht (Er hat momentan {show_value})."
 
-#: .\fields.py:25
+#: .\fields.py:30
 msgid "Some usernames are rejected: {users}."
 msgstr "Folgende Nutzernamen wurden abgelehnt: {users}."
 
-#: .\fields.py:26 .\forms.py:65
-msgid "{user.username}"
-msgstr "{user.username}"
+#: .\fields.py:31 .\forms.py:71
+msgid "{username}"
+msgstr "{username}"
 
-#: .\fields.py:27 .\forms.py:66
-msgid "{user.username} ({reason})"
-msgstr "{user.username} ({reason})"
+#: .\fields.py:32 .\forms.py:72
+msgid "{username} ({reason})"
+msgstr "{username} ({reason})"
 
-#: .\forms.py:64
+#: .\forms.py:70
 msgid "Writing to some users is not possible: {users}."
 msgstr "Folgende Nutzer konnten nicht angeschrieben werden: {users}."
 
-#: .\forms.py:148 .\forms.py:160
+#: .\forms.py:155 .\forms.py:168
 msgid "Recipients"
 msgstr "Empfänger"
 
-#: .\forms.py:148 .\forms.py:160 .\templates\postman\base_folder.html.py:26
+#: .\forms.py:155 .\forms.py:168 .\templates\postman\base_folder.html.py:34
 #: .\templates\postman\reply.html.py:4
 msgid "Recipient"
 msgstr "Empfänger"
 
-#: .\forms.py:159
+#: .\forms.py:167
 msgid "Email"
 msgstr "E-Mail"
 
-#: .\forms.py:175
+#: .\forms.py:184
 msgid "Undefined recipient."
 msgstr "Undefinierter Empfänger"
 
-#: .\forms.py:194
+#: .\forms.py:205
 msgid "Additional recipients"
 msgstr "Zusätzliche Empfänger"
 
-#: .\forms.py:194
+#: .\forms.py:205
 msgid "Additional recipient"
 msgstr "Zusätzlicher Empfänger"
 
-#: .\models.py:19
+#: .\models.py:27
 msgid "Pending"
 msgstr "In Bearbeitung"
 
-#: .\models.py:20
+#: .\models.py:28
 msgid "Accepted"
 msgstr "Akzeptiert"
 
-#: .\models.py:21 .\templates\postman\view.html.py:13
+#: .\models.py:29 .\templates\postman\view.html.py:14
 msgid "Rejected"
 msgstr "Abgelehnt"
 
-#: .\models.py:197
+#: .\models.py:242
 msgid "subject"
 msgstr "betreff"
 
-#: .\models.py:198
+#: .\models.py:243
 msgid "body"
 msgstr "inhalt"
 
-#: .\models.py:199 .\models.py:281
+#: .\models.py:244 .\models.py:326
 msgid "sender"
 msgstr "absender"
 
-#: .\models.py:200 .\models.py:305
+#: .\models.py:245 .\models.py:350
 msgid "recipient"
 msgstr "empfänger"
 
-#: .\models.py:201
+#: .\models.py:246
 msgid "visitor"
 msgstr "besucher"
 
-#: .\models.py:202
+#: .\models.py:247
 msgid "parent message"
 msgstr "Übergeordnete nachricht"
 
-#: .\models.py:203
+#: .\models.py:248
 msgid "root message"
 msgstr "Ursprüngliche Nachricht"
 
-#: .\models.py:204
+#: .\models.py:249
 msgid "sent at"
 msgstr "gesendet am"
 
-#: .\models.py:205
+#: .\models.py:250
 msgid "read at"
 msgstr "gelesen am"
 
-#: .\models.py:206
+#: .\models.py:251
 msgid "replied at"
 msgstr "beantwortet am"
 
-#: .\models.py:207
+#: .\models.py:252
 msgid "archived by sender"
 msgstr "vom absender archiviert"
 
-#: .\models.py:208
+#: .\models.py:253
 msgid "archived by recipient"
 msgstr "vom empfänger archiviert"
 
-#: .\models.py:209
+#: .\models.py:254
 msgid "deleted by sender at"
 msgstr "vom absender gelöscht am"
 
-#: .\models.py:210
+#: .\models.py:255
 msgid "deleted by recipient at"
 msgstr "vom empfänger gelöscht am"
 
-#: .\models.py:212
+#: .\models.py:257
 msgid "status"
 msgstr "status"
 
-#: .\models.py:214
+#: .\models.py:259
 msgid "moderator"
 msgstr "Moderator"
 
-#: .\models.py:215
+#: .\models.py:260
 msgid "moderated at"
 msgstr "Moderiert am"
 
-#: .\models.py:216
+#: .\models.py:261
 msgid "rejection reason"
 msgstr "Ablehnungsgrund"
 
-#: .\models.py:221
+#: .\models.py:266
 msgid "message"
 msgstr "nachricht"
 
-#: .\models.py:222
+#: .\models.py:267
 msgid "messages"
 msgstr "nachrichten"
 
-#: .\models.py:333
+#: .\models.py:378
 msgid "Undefined sender."
 msgstr "Undefinierter Sender."
 
-#: .\models.py:473
+#: .\models.py:523
 msgid "pending message"
 msgstr "Nachricht in Bearbeitung"
 
-#: .\models.py:474
+#: .\models.py:524
 msgid "pending messages"
 msgstr "Nachrichten in Bearbeitung"
 
-#: .\utils.py:32
+#: .\utils.py:37
 msgid "> "
 msgstr "> "
 
-#: .\utils.py:48
+#: .\utils.py:53
 msgid ""
 "\n"
 "\n"
 "{sender} schrieb:\n"
 "{body}\n"
 
-#: .\utils.py:57
+#: .\utils.py:63
 msgid "Re: {subject}"
 msgstr "Re: {subject}"
 
-#: .\views.py:129 .\views.py:187
+#: .\views.py:144 .\views.py:206
 msgid "Message successfully sent."
 msgstr "Nachricht erfolgreich gesendet."
 
-#: .\views.py:131 .\views.py:189
+#: .\views.py:146 .\views.py:208
 msgid "Message rejected for at least one recipient."
 msgstr "Die Nachricht wurde wegen mindestens einem Empfänger abgelehnt."
 
-#: .\views.py:276
+#: .\views.py:299
 msgid "Select at least one object."
 msgstr "Wählen Sie mindestens ein Objekt aus."
 
-#: .\views.py:282
+#: .\views.py:306
 msgid "Messages or conversations successfully archived."
 msgstr "Nachrichten oder Konversationen erfolgreich archiviert."
 
-#: .\views.py:287
+#: .\views.py:312
 msgid "Messages or conversations successfully deleted."
 msgstr "Nachrichten oder Konversationen erfolgreich gelöscht."
 
-#: .\views.py:292
+#: .\views.py:318
 msgid "Messages or conversations successfully recovered."
 msgstr "Nachrichten oder Konversationen erfolgreich wiederhergestellt."
 
-#: .\management\__init__.py:14
+#: .\management\__init__.py:15
 msgid "Message Rejected"
 msgstr "Nachricht abgelehnt."
 
-#: .\management\__init__.py:14
+#: .\management\__init__.py:15
 msgid "Your message has been rejected"
 msgstr "Ihre Nachricht wurde abgelehnt"
 
-#: .\management\__init__.py:15
+#: .\management\__init__.py:16
 msgid "Message Received"
 msgstr "Nachricht erhalten"
 
-#: .\management\__init__.py:15
+#: .\management\__init__.py:16
 msgid "You have received a message"
 msgstr "Du hast eine Nachricht erhalten"
 
-#: .\management\__init__.py:16
+#: .\management\__init__.py:17
 msgid "Reply Received"
 msgstr "Antwort erhalten"
 
-#: .\management\__init__.py:16
+#: .\management\__init__.py:17
 msgid "You have received a reply"
 msgstr "Du hast eine Antwort erhalten"
 
 msgid ""
 "Messages in this folder will never be removed. You can use this folder for "
 "long term storage."
-msgstr "Nachrichten in diesem Ordner werden nie gelöscht. Sie können diesen Ordner für Langzeitspeicherung verwenden."
+msgstr ""
+"Nachrichten in diesem Ordner werden nie gelöscht. Sie können diesen Ordner "
+"für Langzeitspeicherung verwenden."
 
-#: .\templates\postman\base.html.py:3
+#: .\templates\postman\base.html.py:4
 msgid "Messaging"
 msgstr "Nachrichten"
 
-#: .\templates\postman\base.html.py:6
+#: .\templates\postman\base.html.py:13
 msgid "Inbox"
 msgstr "Posteingang"
 
-#: .\templates\postman\base.html.py:7 .\templates\postman\sent.html.py:3
+#: .\templates\postman\base.html.py:14 .\templates\postman\sent.html.py:3
 msgid "Sent Messages"
 msgstr "Gesendete Nachrichten"
 
-#: .\templates\postman\base.html.py:8 .\templates\postman\write.html.py:3
+#: .\templates\postman\base.html.py:15 .\templates\postman\write.html.py:3
 msgid "Write"
 msgstr "Schreiben"
 
-#: .\templates\postman\base.html.py:9
+#: .\templates\postman\base.html.py:16
 msgid "Archives"
 msgstr "Archiven"
 
-#: .\templates\postman\base.html.py:10
+#: .\templates\postman\base.html.py:17
 msgid "Trash"
 msgstr "Papierkorb"
 
-#: .\templates\postman\base_folder.html.py:9
+#: .\templates\postman\base_folder.html.py:16
 msgid "Sorry, this page number is invalid."
 msgstr "Sorry, diese Seite ist ungültig."
 
-#: .\templates\postman\base_folder.html.py:12
+#: .\templates\postman\base_folder.html.py:20
 msgid "by conversation"
 msgstr "nach Konversation"
 
-#: .\templates\postman\base_folder.html.py:13
+#: .\templates\postman\base_folder.html.py:21
 msgid "by message"
 msgstr "nach Nachricht"
 
-#: .\templates\postman\base_folder.html.py:17
-#: .\templates\postman\view.html.py:22
+#: .\templates\postman\base_folder.html.py:25
+#: .\templates\postman\view.html.py:23
 msgid "Delete"
 msgstr "Löschen"
 
-#: .\templates\postman\base_folder.html.py:18
-#: .\templates\postman\view.html.py:23
+#: .\templates\postman\base_folder.html.py:26
+#: .\templates\postman\view.html.py:24
 msgid "Archive"
 msgstr "Archivieren"
 
-#: .\templates\postman\base_folder.html.py:19
+#: .\templates\postman\base_folder.html.py:27
 msgid "Undelete"
 msgstr "Wiederherstellen"
 
-#: .\templates\postman\base_folder.html.py:24
+#: .\templates\postman\base_folder.html.py:32
 msgid "Action"
 msgstr "Aktion"
 
-#: .\templates\postman\base_folder.html.py:25
+#: .\templates\postman\base_folder.html.py:33
 msgid "Sender"
 msgstr "Absender"
 
-#: .\templates\postman\base_folder.html.py:27
+#: .\templates\postman\base_folder.html.py:35
 msgid "Subject"
 msgstr "Betreff"
 
-#: .\templates\postman\base_folder.html.py:28
+#: .\templates\postman\base_folder.html.py:36
 msgid "Date"
 msgstr "Datum"
 
-#: .\templates\postman\base_folder.html.py:43
+#: .\templates\postman\base_folder.html.py:51
 msgid "g:i A,M j,n/j/y"
 msgstr "G:i,j b,j/n/y"
 
-#: .\templates\postman\base_folder.html.py:51
+#: .\templates\postman\base_folder.html.py:58
 msgid "No messages."
 msgstr "Keine Nachrichten."
 
-#: .\templates\postman\base_write.html.py:20
+#: .\templates\postman\base_write.html.py:33
 msgid "Send"
 msgstr "Senden"
 
 #: .\templates\postman\email_visitor.txt.py:3
 #, python-format
 msgid "On %(date)s, you asked to send a message to the user '%(recipient)s'."
-msgstr "Am %(date)s baten Sie darum, eine Nachricht an Nutzer '%(recipient)s' zu schicken."
+msgstr ""
+"Am %(date)s baten Sie darum, eine Nachricht an Nutzer '%(recipient)s' zu "
+"schicken."
 
 #: .\templates\postman\email_user.txt.py:5
 #: .\templates\postman\email_visitor.txt.py:5
 msgid "Received"
 msgstr "Erhalten"
 
-#: .\templates\postman\reply.html.py:3 .\templates\postman\view.html.py:25
-#: .\templates\postman\view.html.py:28 .\templates\postman\view.html.py:31
+#: .\templates\postman\reply.html.py:3 .\templates\postman\view.html.py:26
+#: .\templates\postman\view.html.py:29 .\templates\postman\view.html.py:32
 msgid "Reply"
 msgstr "Antworten"
 
 msgid ""
 "Messages in this folder can be removed from time to time. For long term "
 "storage, use instead the archive folder."
-msgstr "Nachrichten in diesem Ordner können von zu Zeit zu Zeit gelöscht werden. Verwenden Sie für die Langzeitspeicherung stattdessen den Archiv-Ordner."
+msgstr ""
+"Nachrichten in diesem Ordner können von zu Zeit zu Zeit gelöscht werden. "
+"Verwenden Sie für die Langzeitspeicherung stattdessen den Archiv-Ordner."
 
-#: .\templates\postman\view.html.py:5
+#: .\templates\postman\view.html.py:6
 msgid "Conversation"
 msgstr "Konversation"
 
-#: .\templates\postman\view.html.py:13
+#: .\templates\postman\view.html.py:14
 msgid ":"
 msgstr " :"
 
-#: .\templates\postman\view.html.py:20
+#: .\templates\postman\view.html.py:21
 msgid "Back"
 msgstr "Zurück"
 
-#: .\templatetags\postman_tags.py:35
+#: .\templatetags\postman_tags.py:48
 msgid "<me>"
 msgstr "<Ich>"
Add a comment to this file

postman/locale/el/LC_MESSAGES/django.mo

Binary file modified.

postman/locale/el/LC_MESSAGES/django.po

 msgstr ""
 "Project-Id-Version: django-postman 1.0.x\n"
 "Report-Msgid-Bugs-To: http://bitbucket.org/psam/django-postman/issues\n"
-"POT-Creation-Date: 2010-12-27 14:21+0100\n"
+"POT-Creation-Date: 2012-12-10 22:57+0100\n"
 "PO-Revision-Date: 2011-04-26 18:39+0000\n"
 "Last-Translator: provetza <mgogoulos@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: el\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: .\admin.py:22
+#: .\admin.py:25
 msgid "Sender and Recipient cannot be both undefined."
 msgstr ""
-"Ο αποστολέας και ο παραλήπτης δεν μπορούν να είναι και οι δυο "
-"απροσδιόριστοι."
+"Ο αποστολέας και ο παραλήπτης δεν μπορούν να είναι και οι δυο απροσδιόριστοι."
 
-#: .\admin.py:29
+#: .\admin.py:32
 msgid "Visitor's email is in excess."
 msgstr "Το e-mail του επισκέπτη είναι σε περίσσεια."
 
-#: .\admin.py:34
+#: .\admin.py:37
 msgid "Visitor's email is missing."
 msgstr "Το e-mail του επισκέπτη λείπει."
 
-#: .\admin.py:40
+#: .\admin.py:43
 msgid "Reading date must be later to sending date."
 msgstr ""
 "Η ημερομηνία ανάγνωσης πρέπει να είναι μεταγενέστερη της ημερομηνίας "
 "αποστολής."
 
-#: .\admin.py:45
+#: .\admin.py:48
 msgid "Deletion date by sender must be later to sending date."
 msgstr ""
 "Η ημερομηνία διαγραφής πρέπει να είναι μεταγενέστερη της ημερομηνίας "
 "αποστολής."
 
-#: .\admin.py:50
+#: .\admin.py:53
 msgid "Deletion date by recipient must be later to sending date."
 msgstr ""
 "Η ημερομηνία διαγραφής από τον αποδέκτη πρέπει να είναι μεταγενέστερη της "
 "ημερομηνίας αποστολής."
 
-#: .\admin.py:58
+#: .\admin.py:61
 msgid "Response date must be later to sending date."
 msgstr ""
 "Η ημερομηνία ανταπόκρισης πρέπει να είναι μεταγενέστερη της ημερομηνίας "
 "αποστολής."
 
-#: .\admin.py:60
+#: .\admin.py:63
 msgid "The message cannot be replied without having been read."
 msgstr "Το μήνυμα δεν μπορεί να απαντηθεί χωρίς να έχει πρώτα διαβάσει."
 
-#: .\admin.py:62
+#: .\admin.py:65
 msgid "Response date must be later to reading date."
 msgstr ""
 "Η ημερομηνία της απόκρισης πρέπει να είναι μεταγενέστερη της ημερομηνίας "
 "ανάγνωσης."
 
-#: .\admin.py:64
+#: .\admin.py:67