Skip to content

Commit

Permalink
Merge pull request #26 from ambitioninc/develop
Browse files Browse the repository at this point in the history
Django Admin for Localized Recurrence
  • Loading branch information
wesleykendall committed Apr 6, 2015
2 parents 19bb5d3 + 795112c commit e743f1c
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 1 deletion.
16 changes: 16 additions & 0 deletions localized_recurrence/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from django.contrib.admin import ModelAdmin, site

from localized_recurrence.models import LocalizedRecurrence


class LocalizedRecurrenceAdmin(ModelAdmin):
list_display = [
'id',
'interval',
'timezone',
'previous_scheduled',
'next_scheduled',
]


site.register(LocalizedRecurrence, LocalizedRecurrenceAdmin)
5 changes: 5 additions & 0 deletions localized_recurrence/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from dateutil.relativedelta import relativedelta
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from timezone_field import TimeZoneField
import fleming
import pytz
Expand Down Expand Up @@ -69,6 +70,7 @@ def update_schedule(self, time=None):
self.get_queryset().update_schedule(time=time)


@python_2_unicode_compatible
class LocalizedRecurrence(models.Model):
"""The information necessary to act on events in users local
times. Can be instantiated with ``LocalizedRecurrence.objects.create``
Expand Down Expand Up @@ -128,6 +130,9 @@ class LocalizedRecurrence(models.Model):

objects = LocalizedRecurrenceManager()

def __str__(self):
return 'ID: {0}, Interval: {1}, Next Scheduled: {2}'.format(self.id, self.interval, self.next_scheduled)

def update_schedule(self, time=None):
"""Update the schedule for this recurrence or an object it tracks.
Expand Down
26 changes: 26 additions & 0 deletions localized_recurrence/tests/admin_tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from django.contrib.admin.sites import AdminSite
from django.test import TestCase

from localized_recurrence.admin import LocalizedRecurrenceAdmin
from localized_recurrence.models import LocalizedRecurrence


class LocalizedRecurrenceAdminTest(TestCase):
"""Verify that the admin can load.
"""
def setUp(self):
super(LocalizedRecurrenceAdminTest, self).setUp()
self.site = AdminSite()

def test_model_admin_load(self):
lr_admin = LocalizedRecurrenceAdmin(LocalizedRecurrence, self.site)
self.assertEqual(
lr_admin.list_display,
[
'id',
'interval',
'timezone',
'previous_scheduled',
'next_scheduled'
]
)
7 changes: 7 additions & 0 deletions localized_recurrence/tests/models_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,13 @@ def test_timedelta_returned(self):
lr = LocalizedRecurrence.objects.first()
self.assertTrue(isinstance(lr.offset, timedelta))

def test_string_representation(self):
lr = LocalizedRecurrence.objects.first()
self.assertEqual(
str(lr),
'ID: {0}, Interval: {1}, Next Scheduled: {2}'.format(lr.id, lr.interval, lr.next_scheduled),
)


class LocalizedRecurrenceUpdateScheduleTest(TestCase):
def setUp(self):
Expand Down
2 changes: 1 addition & 1 deletion localized_recurrence/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '1.0.3'
__version__ = '1.0.4'

0 comments on commit e743f1c

Please sign in to comment.