Skip to content

Commit

Permalink
Merge pull request #11 from dstegelman/feature/cleanups
Browse files Browse the repository at this point in the history
Cleanup some pieces.
  • Loading branch information
dstegelman committed Jan 18, 2015
2 parents 83a567a + 6d737e1 commit 82b2c95
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 8 deletions.
3 changes: 2 additions & 1 deletion downtime/admin.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from downtime.models import Period
from django.contrib import admin

from downtime.models import Period

admin.site.register(Period)
9 changes: 6 additions & 3 deletions downtime/managers.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
import datetime

from django.db.models import Manager
from django.db.models.query import QuerySet
from datetime import datetime
from django.conf import settings
from django.utils.timezone import utc


class PeriodQuerySet(QuerySet):

def active(self):
return self.filter(enabled=True)

def is_down(self):
if getattr(settings, 'USE_TZ', False):
return self.filter(start_time__lte=datetime.utcnow().replace(tzinfo=utc), end_time__gte=datetime.utcnow().replace(tzinfo=utc))
return self.filter(start_time__lte=datetime.datetime.utcnow().replace(tzinfo=utc), end_time__gte=datetime.datetime.utcnow().replace(tzinfo=utc))
else:
return self.filter(start_time__lte=datetime.now(), end_time__gte=datetime.now())
return self.filter(start_time__lte=datetime.datetime.now(), end_time__gte=datetime.datetime.now())


class PeriodManager(Manager):
def get_queryset(self):
Expand Down
9 changes: 5 additions & 4 deletions downtime/middleware.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
from datetime import datetime
from downtime.models import Period
from django.shortcuts import render, redirect
from django.conf import settings

from downtime.models import Period


class DowntimeMiddleware(object):
def process_request(self, request):
exempt_paths = getattr(settings, 'DOWNTIME_EXEMPT_PATHS', ('/admin',))
for path in exempt_paths:
if request.path.startswith(path):
return None

now = datetime.now()
objects = Period.objects.is_down()
if objects.count() > 0:

if objects.count():
# we are down.
url_redirect = getattr(settings, 'DOWNTIME_URL_REDIRECT', None)
if url_redirect:
Expand Down
2 changes: 2 additions & 0 deletions downtime/models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from django.db import models

from downtime.managers import PeriodManager


class Period(models.Model):
start_time = models.DateTimeField(blank=True, null=True)
end_time = models.DateTimeField(blank=True, null=True)
Expand Down

0 comments on commit 82b2c95

Please sign in to comment.