Files
@ 985a08545d05
Branch filter:
Location: website/conservancy/events/models.py - annotation
985a08545d05
3.3 KiB
text/x-python
Fix lint warnings
8e6ea8ad71bf 8e6ea8ad71bf b7e2ce2a4d44 b7e2ce2a4d44 b7e2ce2a4d44 b7e2ce2a4d44 b7e2ce2a4d44 b7e2ce2a4d44 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf adf2229720fc 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 2bf594b86cb1 9e39d7eadced 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 2bf594b86cb1 9e39d7eadced 8e6ea8ad71bf 8e6ea8ad71bf f7e45da6ddc8 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf a5cd6ab63b9a 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf e9df3a0d7e2c 8e6ea8ad71bf 05323a307d3e 05323a307d3e 05323a307d3e 05323a307d3e e9df3a0d7e2c 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 9e39d7eadced 8e6ea8ad71bf 8e6ea8ad71bf adf2229720fc 9e39d7eadced 8e6ea8ad71bf 8e6ea8ad71bf 9e39d7eadced 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 05323a307d3e 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 2bf594b86cb1 2bf594b86cb1 8e6ea8ad71bf a5cd6ab63b9a 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 8e6ea8ad71bf 9e39d7eadced 8e6ea8ad71bf 8e6ea8ad71bf adf2229720fc 9e39d7eadced 8e6ea8ad71bf | from datetime import datetime, timedelta
from django.db import models
from ..staff.models import Person
from ..worldmap.models import EarthLocation
class EventTag(models.Model):
"""Tagging for events
(currently unused)
"""
label = models.CharField(max_length=100)
date_created = models.DateField(auto_now_add=True)
def __str__(self):
return self.label
class PastEventManager(models.Manager):
"""Returns all past events"""
def get_queryset(self):
return super().get_queryset().filter(date__lt=datetime.today())
class FutureEventManager(models.Manager):
"""Returns all future events"""
def get_queryset(self):
return super().get_queryset().filter(date__gte=datetime.today())
class Event(models.Model):
"""Model for Conservancy staff member events (presentations, etc)"""
title = models.CharField(max_length=400)
date = models.DateField()
date_tentative = models.BooleanField(default=False)
datetime = models.CharField("Date and Time", max_length=300, blank=True)
slug = models.SlugField(unique_for_year='date')
description = models.TextField(blank=True)
people = models.ManyToManyField(Person, blank=True)
location = models.CharField(max_length=1000)
earth_location = models.ForeignKey(
EarthLocation, null=True, blank=True, help_text="Label will not be displayed",
on_delete=models.CASCADE
)
tags = models.ManyToManyField(EventTag, blank=True)
date_created = models.DateTimeField(auto_now_add=True)
date_last_modified = models.DateTimeField(auto_now=True)
class Meta:
ordering = ("-date",)
def __str__(self):
return "{} ({})".format(self.title, self.date)
def get_absolute_url(self):
return "/events/{}/{}/".format(self.date.strftime("%Y"), self.slug)
def day_after(self):
return self.date + timedelta(days=1)
# for aggregate feed
pub_date = property(lambda self: self.date_created)
objects = models.Manager()
past = PastEventManager()
future = FutureEventManager()
class EventMedia(models.Model):
"""Media from an event
includes transcripts, audio, and video pieces
"""
event = models.ForeignKey(Event, on_delete=models.CASCADE)
format = models.CharField(max_length=1,
choices=(('T', 'Transcript'),
('A', 'Audio'),
('V', 'Video')))
local = models.CharField(max_length=300, blank=True,
help_text="Local filename of the resource. File should be uploaded into the static directory that corresponds to the event.")
# verify_exists removed https://docs.djangoproject.com/en/1.7/releases/1.4/
remote = models.URLField(blank=True,
help_text="Remote URL of the resource. Required if 'local' is not given.")
novel = models.BooleanField(help_text="Is it a new piece of media or another form of an old one? If it is new it will be included in the event-media RSS feed and shown on the front page for a bit.", default=False)
date_created = models.DateTimeField(auto_now_add=True)
date_last_modified = models.DateTimeField(auto_now=True)
class Meta:
verbose_name_plural = 'event media'
def __str__(self):
return "{} media: {}".format(self.event, self.format)
|