From 08abf4b5318f84c4c996aa8d544e79f3e440ec60 Mon Sep 17 00:00:00 2001
From: Bach Dániel <bd@ik.bme.hu>
Date: Mon, 27 Apr 2015 13:37:03 +0200
Subject: [PATCH] dashboard: use TimeFramedModel in Message

---
 circle/dashboard/context_processors.py      | 7 +------
 circle/dashboard/forms.py                   | 2 +-
 circle/dashboard/migrations/0003_message.py | 8 +++++---
 circle/dashboard/models.py                  | 8 ++------
 4 files changed, 9 insertions(+), 16 deletions(-)

diff --git a/circle/dashboard/context_processors.py b/circle/dashboard/context_processors.py
index dff324a..b4def8f 100644
--- a/circle/dashboard/context_processors.py
+++ b/circle/dashboard/context_processors.py
@@ -16,8 +16,6 @@
 # with CIRCLE.  If not, see <http://www.gnu.org/licenses/>.
 
 from django.conf import settings
-from django.db.models import Q
-from django.utils import timezone
 
 from .models import Message
 
@@ -38,7 +36,4 @@ def extract_settings(request):
 
 
 def broadcast_messages(request):
-    now = timezone.now()
-    messages = Message.objects.filter(enabled=True).exclude(
-        Q(starts_at__gt=now) | Q(ends_at__lt=now))
-    return {'broadcast_messages': messages}
+    return {'broadcast_messages': Message.timeframed.filter(enabled=True)}
diff --git a/circle/dashboard/forms.py b/circle/dashboard/forms.py
index 43d619e..fcbc6eb 100644
--- a/circle/dashboard/forms.py
+++ b/circle/dashboard/forms.py
@@ -1629,7 +1629,7 @@ class DiskForm(ModelForm):
 class MessageForm(ModelForm):
     class Meta:
         model = Message
-        fields = ("message", "enabled", "effect", "starts_at", "ends_at")
+        fields = ("message", "enabled", "effect", "start", "end")
 
     @property
     def helper(self):
diff --git a/circle/dashboard/migrations/0003_message.py b/circle/dashboard/migrations/0003_message.py
index 4c8aa47..18adadf 100644
--- a/circle/dashboard/migrations/0003_message.py
+++ b/circle/dashboard/migrations/0003_message.py
@@ -19,14 +19,16 @@ class Migration(migrations.Migration):
                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                 ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)),
                 ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
+                ('start', models.DateTimeField(null=True, verbose_name='start', blank=True)),
+                ('end', models.DateTimeField(null=True, verbose_name='end', blank=True)),
                 ('message', models.CharField(max_length=500, verbose_name='message')),
-                ('starts_at', models.DateTimeField(null=True, verbose_name='starts at', blank=True)),
-                ('ends_at', models.DateTimeField(null=True, verbose_name='ends at', blank=True)),
                 ('effect', models.CharField(default=b'info', max_length=10, verbose_name='effect', choices=[(b'success', 'success'), (b'info', 'info'), (b'warning', 'warning'), (b'danger', 'danger')])),
                 ('enabled', models.BooleanField(default=False, verbose_name='enabled')),
             ],
             options={
-                'ordering': ['-ends_at'],
+                'ordering': ['id'],
+                'verbose_name': 'message',
+                'verbose_name_plural': 'messages',
             },
             bases=(models.Model,),
         ),
diff --git a/circle/dashboard/models.py b/circle/dashboard/models.py
index 5690704..4faf193 100644
--- a/circle/dashboard/models.py
+++ b/circle/dashboard/models.py
@@ -39,7 +39,7 @@ from django.core.exceptions import ObjectDoesNotExist
 from sizefield.models import FileSizeField
 
 from jsonfield import JSONField
-from model_utils.models import TimeStampedModel
+from model_utils.models import TimeFramedModel, TimeStampedModel
 from model_utils.fields import StatusField
 from model_utils import Choices
 
@@ -59,12 +59,8 @@ def pwgen():
     return User.objects.make_random_password()
 
 
-class Message(TimeStampedModel):
+class Message(TimeStampedModel, TimeFramedModel):
     message = CharField(max_length=500, verbose_name=_('message'))
-    starts_at = DateTimeField(
-        null=True, blank=True, verbose_name=_('starts at'))
-    ends_at = DateTimeField(
-        null=True, blank=True, verbose_name=_('ends at'))
     effect = CharField(
         default='info', max_length=10, verbose_name=_('effect'),
         choices=(('success', _('success')), ('info', _('info')),
--
libgit2 0.26.0