Another Step in the Quest to clean up the code base.
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
# -'- Encoding: utf-8 -*-
|
||||
|
||||
"""Models to solitary events, events series with an location and photos."""
|
||||
import os
|
||||
|
||||
from ckeditor.fields import RichTextField
|
||||
@@ -14,6 +13,7 @@ from django.utils.translation import ugettext as _
|
||||
from easy_thumbnails.fields import ThumbnailerImageField
|
||||
|
||||
from utils import COUNTRIES, OverwriteStorage
|
||||
from .managers import EventManager
|
||||
|
||||
|
||||
def get_upload_path(instance, filename):
|
||||
@@ -47,40 +47,8 @@ def get_upload_path(instance, filename):
|
||||
)
|
||||
|
||||
|
||||
class EventManager(models.Manager):
|
||||
def get_queryset(self):
|
||||
return super(EventManager, self).get_queryset().select_related(
|
||||
'location')
|
||||
|
||||
def current_event(self):
|
||||
try:
|
||||
current = self.filter(start__lte=now())
|
||||
current = current.filter(end__gte=now())
|
||||
return current.order_by('start', 'end')[0]
|
||||
except IndexError:
|
||||
return None
|
||||
|
||||
def next_event(self):
|
||||
try:
|
||||
return self.filter(start__gt=now()).order_by('start', 'end')[0]
|
||||
except IndexError:
|
||||
return None
|
||||
|
||||
def archive(self):
|
||||
return self.filter(start__lt=now())
|
||||
|
||||
def latest_events(self, num=3):
|
||||
return self.filter(start__lt=now()).order_by('-start', '-end')[:num]
|
||||
|
||||
def upcoming(self, limit=None):
|
||||
result = self.filter(start__gt=now()).order_by('start', 'end')
|
||||
if limit:
|
||||
return result[0:limit]
|
||||
else:
|
||||
return result
|
||||
|
||||
|
||||
class Event(models.Model):
|
||||
"""An Event that could be a tournament, a game session, or an convention."""
|
||||
name = models.CharField(_('Name'), max_length=255)
|
||||
description = RichTextField(_("Description"), blank=True)
|
||||
location = models.ForeignKey('Location')
|
||||
@@ -131,6 +99,7 @@ class Event(models.Model):
|
||||
objects = EventManager()
|
||||
|
||||
class Meta(object):
|
||||
"""order the events by start date."""
|
||||
verbose_name = _('Event')
|
||||
verbose_name_plural = _('Events')
|
||||
ordering = ('start', 'end',)
|
||||
@@ -244,18 +213,6 @@ class Location(models.Model):
|
||||
return ','.join(address)
|
||||
|
||||
|
||||
class PhotoManager(models.Manager):
|
||||
def get_random(self, startpage=True):
|
||||
if startpage:
|
||||
queryset = self.filter(on_startpage=True)
|
||||
else:
|
||||
queryset = self.all().order_by('?')[0]
|
||||
try:
|
||||
return queryset.order_by('?')[0]
|
||||
except IndexError:
|
||||
return Photo()
|
||||
|
||||
|
||||
class Photo(models.Model):
|
||||
name = models.CharField(_("Name"), max_length=100, blank=True)
|
||||
image = ThumbnailerImageField(
|
||||
@@ -295,7 +252,6 @@ class Photo(models.Model):
|
||||
verbose_name=_('latest updated at'),
|
||||
)
|
||||
|
||||
objects = PhotoManager()
|
||||
metadata = None
|
||||
orientation = 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user