From da1fe74ef957bc78c23ef87f90e0f736ea98b4ac Mon Sep 17 00:00:00 2001 From: Andy Woods Date: Tue, 21 Jul 2020 19:14:17 +0100 Subject: [PATCH 1/9] Update models.py removed python_2_unicode_compatible requirement so works with django 3. --- django_messages/models.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/django_messages/models.py b/django_messages/models.py index eee3096..bae9d3c 100644 --- a/django_messages/models.py +++ b/django_messages/models.py @@ -6,7 +6,6 @@ from django.db import models from django.db.models import signals from django.utils import timezone -from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User') @@ -47,8 +46,7 @@ def trash_for(self, user): sender_deleted_at__isnull=False, ) - -@python_2_unicode_compatible + class Message(models.Model): """ A private message from user to user From 6b70a7c7826a31812a004d2fe07e9aefb13004f8 Mon Sep 17 00:00:00 2001 From: Andy Woods Date: Fri, 8 Apr 2022 08:19:55 +0100 Subject: [PATCH 2/9] Update apps.py upgrade to django4 --- django_messages/apps.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/django_messages/apps.py b/django_messages/apps.py index c7a4f26..c15eb8b 100644 --- a/django_messages/apps.py +++ b/django_messages/apps.py @@ -1,6 +1,5 @@ from django.apps import AppConfig -from django.utils.translation import ugettext_lazy as _ class DjangoMessagesConfig(AppConfig): name = 'django_messages' - verbose_name = _('Messages') + verbose_name = 'Messages' From 9aa8c9761c683d558c250204bbc5ac141be1207d Mon Sep 17 00:00:00 2001 From: Andy Woods Date: Fri, 8 Apr 2022 08:25:15 +0100 Subject: [PATCH 3/9] Update models.py --- django_messages/models.py | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/django_messages/models.py b/django_messages/models.py index bae9d3c..6d65bc5 100644 --- a/django_messages/models.py +++ b/django_messages/models.py @@ -6,7 +6,6 @@ from django.db import models from django.db.models import signals from django.utils import timezone -from django.utils.translation import ugettext_lazy as _ AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User') @@ -46,21 +45,21 @@ def trash_for(self, user): sender_deleted_at__isnull=False, ) - + class Message(models.Model): """ A private message from user to user """ - subject = models.CharField(_("Subject"), max_length=140) - body = models.TextField(_("Body")) - sender = models.ForeignKey(AUTH_USER_MODEL, related_name='sent_messages', verbose_name=_("Sender"), on_delete=models.PROTECT) - recipient = models.ForeignKey(AUTH_USER_MODEL, related_name='received_messages', null=True, blank=True, verbose_name=_("Recipient"), on_delete=models.SET_NULL) - parent_msg = models.ForeignKey('self', related_name='next_messages', null=True, blank=True, verbose_name=_("Parent message"), on_delete=models.SET_NULL) - sent_at = models.DateTimeField(_("sent at"), null=True, blank=True) - read_at = models.DateTimeField(_("read at"), null=True, blank=True) - replied_at = models.DateTimeField(_("replied at"), null=True, blank=True) - sender_deleted_at = models.DateTimeField(_("Sender deleted at"), null=True, blank=True) - recipient_deleted_at = models.DateTimeField(_("Recipient deleted at"), null=True, blank=True) + subject = models.CharField("Subject", max_length=140) + body = models.TextField("Body") + sender = models.ForeignKey(AUTH_USER_MODEL, related_name='sent_messages', verbose_name="Sender", on_delete=models.PROTECT) + recipient = models.ForeignKey(AUTH_USER_MODEL, related_name='received_messages', null=True, blank=True, verbose_name="Recipient", on_delete=models.SET_NULL) + parent_msg = models.ForeignKey('self', related_name='next_messages', null=True, blank=True, verbose_name="Parent message", on_delete=models.SET_NULL) + sent_at = models.DateTimeField("sent at", null=True, blank=True) + read_at = models.DateTimeField("read at", null=True, blank=True) + replied_at = models.DateTimeField("replied at", null=True, blank=True) + sender_deleted_at = models.DateTimeField("Sender deleted at", null=True, blank=True) + recipient_deleted_at = models.DateTimeField("Recipient deleted at", null=True, blank=True) objects = MessageManager() @@ -89,8 +88,8 @@ def save(self, **kwargs): class Meta: ordering = ['-sent_at'] - verbose_name = _("Message") - verbose_name_plural = _("Messages") + verbose_name = "Message" + verbose_name_plural = "Messages" def inbox_count_for(user): From fe9ce9e4bbe12b5aae221f0b7259f47a4959cec6 Mon Sep 17 00:00:00 2001 From: Andy Woods Date: Fri, 8 Apr 2022 08:36:40 +0100 Subject: [PATCH 4/9] Update utils.py --- django_messages/utils.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/django_messages/utils.py b/django_messages/utils.py index c277424..a36daa5 100644 --- a/django_messages/utils.py +++ b/django_messages/utils.py @@ -1,7 +1,6 @@ import re import django from django.utils.text import wrap -from django.utils.translation import ugettext, ugettext_lazy as _ from django.template.loader import render_to_string from django.conf import settings @@ -56,7 +55,7 @@ def format_subject(subject): } def new_message_email(sender, instance, signal, - subject_prefix=_(u'New Message: %(subject)s'), + subject_prefix=u'New Message: %(subject)s', template_name="django_messages/new_message.html", default_protocol=None, *args, **kwargs): From 172bdbfae8fc22aee6e25403ac89f78bf8d7463e Mon Sep 17 00:00:00 2001 From: Andy Woods Date: Fri, 8 Apr 2022 08:55:27 +0100 Subject: [PATCH 5/9] Update urls.py --- django_messages/urls.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/django_messages/urls.py b/django_messages/urls.py index 87346d7..82bc200 100644 --- a/django_messages/urls.py +++ b/django_messages/urls.py @@ -1,17 +1,16 @@ -from django.conf.urls import url from django.views.generic import RedirectView - +from django.urls import include, path from django_messages.views import * urlpatterns = [ - url(r'^$', RedirectView.as_view(permanent=True, url='inbox/'), name='messages_redirect'), - url(r'^inbox/$', inbox, name='messages_inbox'), - url(r'^outbox/$', outbox, name='messages_outbox'), - url(r'^compose/$', compose, name='messages_compose'), - url(r'^compose/(?P[\w.@+-]+)/$', compose, name='messages_compose_to'), - url(r'^reply/(?P[\d]+)/$', reply, name='messages_reply'), - url(r'^view/(?P[\d]+)/$', view, name='messages_detail'), - url(r'^delete/(?P[\d]+)/$', delete, name='messages_delete'), - url(r'^undelete/(?P[\d]+)/$', undelete, name='messages_undelete'), - url(r'^trash/$', trash, name='messages_trash'), + path('', RedirectView.as_view(permanent=True, url='inbox/'), name='messages_redirect'), + path('inbox/', inbox, name='messages_inbox'), + path('outbox/', outbox, name='messages_outbox'), + path('compose/', compose, name='messages_compose'), + path('compose/(?P[\w.@+-]+)/', compose, name='messages_compose_to'), + path('reply/(?P[\d]+)/', reply, name='messages_reply'), + path('view/(?P[\d]+)/', view, name='messages_detail'), + path('delete/(?P[\d]+)/', delete, name='messages_delete'), + path('undelete/(?P[\d]+)/', undelete, name='messages_undelete'), + path('trash/$', trash, name='messages_trash'), ] From eb4d791c0610cb835ca858fc5782515aa50dcd93 Mon Sep 17 00:00:00 2001 From: Andy Woods Date: Fri, 8 Apr 2022 08:57:01 +0100 Subject: [PATCH 6/9] Update views.py --- django_messages/views.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/django_messages/views.py b/django_messages/views.py index 4f1d4ff..9e611e7 100644 --- a/django_messages/views.py +++ b/django_messages/views.py @@ -3,7 +3,6 @@ from django.template import RequestContext from django.contrib import messages from django.contrib.auth.decorators import login_required -from django.utils.translation import ugettext as _ from django.utils import timezone try: from django.core.urlresolvers import reverse @@ -86,7 +85,7 @@ def compose(request, recipient=None, form_class=ComposeForm, form = form_class(request.POST, recipient_filter=recipient_filter) if form.is_valid(): form.save(sender=request.user) - messages.info(request, _(u"Message successfully sent.")) + messages.info(request, "Message successfully sent.") if success_url is None: success_url = reverse('messages_inbox') if 'next' in request.GET: @@ -105,7 +104,7 @@ def compose(request, recipient=None, form_class=ComposeForm, def reply(request, message_id, form_class=ComposeForm, template_name='django_messages/compose.html', success_url=None, recipient_filter=None, quote_helper=format_quote, - subject_template=_(u"Re: %(subject)s"),): + subject_template="Re: %(subject)s",): """ Prepares the ``form_class`` form for writing a reply to a given message (specified via ``message_id``). Uses the ``format_quote`` helper from @@ -123,7 +122,7 @@ def reply(request, message_id, form_class=ComposeForm, form = form_class(request.POST, recipient_filter=recipient_filter) if form.is_valid(): form.save(sender=request.user, parent_msg=parent) - messages.info(request, _(u"Message successfully sent.")) + messages.info(request, "Message successfully sent.") if success_url is None: success_url = reverse('messages_inbox') return HttpResponseRedirect(success_url) @@ -166,7 +165,7 @@ def delete(request, message_id, success_url=None): deleted = True if deleted: message.save() - messages.info(request, _(u"Message successfully deleted.")) + messages.info(request, "Message successfully deleted.") if notification: notification.send([user], "messages_deleted", {'message': message,}) return HttpResponseRedirect(success_url) @@ -193,7 +192,7 @@ def undelete(request, message_id, success_url=None): undeleted = True if undeleted: message.save() - messages.info(request, _(u"Message successfully recovered.")) + messages.info(request, "Message successfully recovered.") if notification: notification.send([user], "messages_recovered", {'message': message,}) return HttpResponseRedirect(success_url) @@ -201,7 +200,7 @@ def undelete(request, message_id, success_url=None): @login_required def view(request, message_id, form_class=ComposeForm, quote_helper=format_quote, - subject_template=_(u"Re: %(subject)s"), + subject_template="Re: %(subject)s", template_name='django_messages/view.html'): """ Shows a single message.``message_id`` argument is required. From a3fbad01fd6ddc12b62f954c5a3751d39b054ac9 Mon Sep 17 00:00:00 2001 From: Andy Woods Date: Fri, 8 Apr 2022 08:57:41 +0100 Subject: [PATCH 7/9] Update forms.py --- django_messages/forms.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/django_messages/forms.py b/django_messages/forms.py index 79a0238..5c67356 100644 --- a/django_messages/forms.py +++ b/django_messages/forms.py @@ -1,6 +1,5 @@ from django import forms from django.conf import settings -from django.utils.translation import ugettext_lazy as _ from django.utils import timezone if "pinax.notifications" in settings.INSTALLED_APPS and getattr(settings, 'DJANGO_MESSAGES_NOTIFY', True): @@ -15,9 +14,9 @@ class ComposeForm(forms.Form): """ A simple default form for private messages. """ - recipient = CommaSeparatedUserField(label=_(u"Recipient")) - subject = forms.CharField(label=_(u"Subject"), max_length=140) - body = forms.CharField(label=_(u"Body"), + recipient = CommaSeparatedUserField(label="Recipient") + subject = forms.CharField(label="Subject", max_length=140) + body = forms.CharField(label="Body", widget=forms.Textarea(attrs={'rows': '12', 'cols':'55'})) From a026d1b5a4382449aca4de200a6976ae4a2c2a89 Mon Sep 17 00:00:00 2001 From: Andy Woods Date: Fri, 8 Apr 2022 08:58:33 +0100 Subject: [PATCH 8/9] Update fields.py --- django_messages/fields.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/django_messages/fields.py b/django_messages/fields.py index d1ac75c..f31a54a 100644 --- a/django_messages/fields.py +++ b/django_messages/fields.py @@ -5,7 +5,6 @@ from django import forms from django.forms import widgets -from django.utils.translation import ugettext_lazy as _ from django_messages.utils import get_user_model, get_username_field @@ -53,7 +52,7 @@ def clean(self, value): invalid_users.append(getattr(r, get_username_field())) if unknown_names or invalid_users: - raise forms.ValidationError(_(u"The following usernames are incorrect: %(users)s") % {'users': ', '.join(list(unknown_names)+invalid_users)}) + raise forms.ValidationError("The following usernames are incorrect: %(users)s" % {'users': ', '.join(list(unknown_names)+invalid_users)}) return users From c0d72cb3f1f841fce57423ddcfe7cdfaecc17951 Mon Sep 17 00:00:00 2001 From: Andy Woods Date: Fri, 8 Apr 2022 09:13:42 +0100 Subject: [PATCH 9/9] Update management.py --- django_messages/management.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/django_messages/management.py b/django_messages/management.py index cac6178..5689e0b 100644 --- a/django_messages/management.py +++ b/django_messages/management.py @@ -1,17 +1,16 @@ from django.db.models import signals from django.conf import settings -from django.utils.translation import ugettext_noop as _ if "pinax.notifications" in settings.INSTALLED_APPS and getattr(settings, 'DJANGO_MESSAGES_NOTIFY', True): from pinax.notifications import models as notification def create_notice_types(app, created_models, verbosity, **kwargs): - notification.create_notice_type("messages_received", _("Message Received"), _("you have received a message"), default=2) - notification.create_notice_type("messages_sent", _("Message Sent"), _("you have sent a message"), default=1) - notification.create_notice_type("messages_replied", _("Message Replied"), _("you have replied to a message"), default=1) - notification.create_notice_type("messages_reply_received", _("Reply Received"), _("you have received a reply to a message"), default=2) - notification.create_notice_type("messages_deleted", _("Message Deleted"), _("you have deleted a message"), default=1) - notification.create_notice_type("messages_recovered", _("Message Recovered"), _("you have undeleted a message"), default=1) + notification.create_notice_type("messages_received", "Message Received", "you have received a message", default=2) + notification.create_notice_type("messages_sent", "Message Sent", "you have sent a message", default=1) + notification.create_notice_type("messages_replied", "Message Replied", "you have replied to a message", default=1) + notification.create_notice_type("messages_reply_received", "Reply Received", "you have received a reply to a message", default=2) + notification.create_notice_type("messages_deleted", "Message Deleted", "you have deleted a message", default=1) + notification.create_notice_type("messages_recovered", "Message Recovered", "you have undeleted a message", default=1) signals.post_syncdb.connect(create_notice_types, sender=notification) else: