Move new message models from announcements to a new message app

- Legacy-Id: 3856
This commit is contained in:
Ole Laursen 2012-01-24 17:36:13 +00:00
parent 980d4e6444
commit 89314a0760
8 changed files with 10 additions and 79 deletions

View file

@ -1,6 +1,5 @@
#coding: utf-8
from django.contrib import admin
from django.conf import settings
from ietf.announcements.models import *
class AnnouncedFromAdmin(admin.ModelAdmin):
@ -21,23 +20,3 @@ admin.site.register(Announcement, AnnouncementAdmin)
class ScheduledAnnouncementAdmin(admin.ModelAdmin):
pass
admin.site.register(ScheduledAnnouncement, ScheduledAnnouncementAdmin)
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
class MessageAdmin(admin.ModelAdmin):
list_display = ["time", "by", "subject", "groups"]
search_fields = ["body"]
raw_id_fields = ["by"]
def groups(self, instance):
return ", ".join(g.acronym for g in related_groups.all())
admin.site.register(Message, MessageAdmin)
class SendQueueAdmin(admin.ModelAdmin):
list_display = ["time", "by", "message", "send_at", "sent_at"]
list_filter = ["time", "send_at", "sent_at"]
search_fields = ["message__body"]
raw_id_fields = ["by"]
admin.site.register(SendQueue, SendQueueAdmin)

View file

@ -86,45 +86,3 @@ class ScheduledAnnouncement(models.Model):
return "Scheduled Announcement from %s to %s on %s %s" % (self.from_val, self.to_val, self.to_be_sent_date, self.to_be_sent_time)
class Meta:
db_table = 'scheduled_announcements'
if settings.USE_DB_REDESIGN_PROXY_CLASSES or hasattr(settings, "IMPORTING_FROM_OLD_SCHEMA"):
import datetime
from ietf.person.models import Email, Person
from ietf.group.models import Group
class Message(models.Model):
time = models.DateTimeField(default=datetime.datetime.now)
by = models.ForeignKey(Person)
subject = models.CharField(max_length=255)
frm = models.CharField(max_length=255)
to = models.CharField(max_length=1024)
cc = models.CharField(max_length=1024, blank=True)
bcc = models.CharField(max_length=255, blank=True)
reply_to = models.CharField(max_length=255, blank=True)
body = models.TextField()
content_type = models.CharField(max_length=255, blank=True)
related_groups = models.ManyToManyField(Group, blank=True)
class Meta:
ordering = ['time']
def __unicode__(self):
return "'%s' %s -> %s" % (self.subject, self.frm, self.to)
class SendQueue(models.Model):
time = models.DateTimeField(default=datetime.datetime.now)
by = models.ForeignKey(Person)
message = models.ForeignKey(Message)
send_at = models.DateTimeField(blank=True, null=True)
sent_at = models.DateTimeField(blank=True, null=True)
note = models.TextField(blank=True)
class Meta:
ordering = ['time']

View file

@ -3,12 +3,12 @@
from django.conf import settings
from django.contrib.sitemaps import Sitemap
from ietf.announcements.models import Announcement
from ietf.message.models import Message
class NOMCOMAnnouncementsMap(Sitemap):
changefreq = "never"
def items(self):
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
from ietf.announcements.models import Message
return Message.objects.filter(related_groups__acronym__startswith="nomcom").exclude(related_groups__acronym="nomcom").order_by('-time')
return Announcement.objects.all().filter(nomcom=True)
def location(self, obj):

View file

@ -9,6 +9,9 @@ from ietf.utils.mail import outbox
from ietf.announcements.models import ScheduledAnnouncement
from ietf.message.models import Message, SendQueue
from ietf.person.models import Person
class AnnouncementsUrlTestCase(SimpleUrlTestCase):
def testUrls(self):
self.doTestUrls(__file__)
@ -67,9 +70,6 @@ class SendScheduledAnnouncementsTestCaseREDESIGN(django.test.TestCase):
fixtures = ["names"]
def test_send_plain_announcement(self):
from ietf.announcements.models import Message, SendQueue
from ietf.person.models import Person
make_test_data()
msg = Message.objects.create(
@ -99,9 +99,6 @@ class SendScheduledAnnouncementsTestCaseREDESIGN(django.test.TestCase):
self.assertTrue(SendQueue.objects.get(id=q.id).sent_at)
def test_send_mime_announcement(self):
from ietf.announcements.models import Message, SendQueue
from ietf.person.models import Person
make_test_data()
msg = Message.objects.create(

View file

@ -12,5 +12,5 @@ nomcom_dict = {
urlpatterns = patterns('',
# (r'^nomcom/$', 'django.views.generic.simple.redirect_to', {'url': 'http://www.ietf.org/nomcom/index.html'} ),
(r'^nomcom/$', 'ietf.announcements.views.nomcom'),
(r'^nomcom/(?P<object_id>\d+)/$', 'ietf.announcements.views.message_detail' if settings.USE_DB_REDESIGN_PROXY_CLASSES else 'django.views.generic.list_detail.object_detail', nomcom_dict)
(r'^nomcom/(?P<object_id>\d+)/$', 'ietf.announcements.views.message_detail') if settings.USE_DB_REDESIGN_PROXY_CLASSES else (r'^nomcom/(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', nomcom_dict)
)

View file

@ -10,6 +10,8 @@ import re
from ietf.idtracker.models import ChairsHistory
from ietf.idtracker.models import Role
from ietf.announcements.models import Announcement
from ietf.group.models import Group, GroupEvent
from ietf.message.models import Message
def nomcom(request):
curr_chair = (ChairsHistory.objects.
@ -35,9 +37,6 @@ def nomcom(request):
'regimes' : regimes })
def nomcomREDESIGN(request):
from ietf.group.models import Group, GroupEvent
from ietf.announcements.models import Message
address_re = re.compile("<.*>")
nomcoms = list(Group.objects.filter(acronym__startswith="nomcom").exclude(name="nomcom"))
@ -73,10 +72,7 @@ if settings.USE_DB_REDESIGN_PROXY_CLASSES:
nomcom = nomcomREDESIGN
def message_detail(request, object_id, queryset):
from ietf.group.models import Group
from ietf.announcements.models import Message
def message_detail(request, object_id):
# restrict to nomcom announcements for the time being
nomcoms = Group.objects.filter(acronym__startswith="nomcom").exclude(acronym="nomcom")
m = get_object_or_404(Message, id=object_id,

View file

@ -139,6 +139,7 @@ INSTALLED_APPS = (
'ietf.name',
'ietf.group',
'ietf.doc',
'ietf.message',
'ietf.announcements',
'ietf.idindex',
'ietf.idtracker',

View file

@ -15,8 +15,8 @@ management.setup_environ(settings)
from ietf.person.models import *
from ietf.group.models import *
from ietf.name.utils import name
from ietf.message.models import Message, SendQueue
from ietf.importing.utils import old_person_to_person
from ietf.announcements.models import Message, SendQueue
from ietf.announcements.models import Announcement, PersonOrOrgInfo, AnnouncedTo, AnnouncedFrom, ScheduledAnnouncement
from ietf.idtracker.models import IESGLogin