X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/f40473d1406278e734da81ab4a3fc5a4bda69136..662258ae0a1423d9153c5a7528ab3a9e1672e877:/contrib/julian/models.py?ds=inline diff --git a/contrib/julian/models.py b/contrib/julian/models.py index 71a8362..33c4d51 100644 --- a/contrib/julian/models.py +++ b/contrib/julian/models.py @@ -1,3 +1,29 @@ from django.db import models +from django.contrib.auth.models import User +from philo.models.base import Tag, Entity, Titled +import datetime -# Create your models here. +if not hasattr(settings, 'PHILO_LOCATION_MODULE'): + class Location(Entity, Titled): + slug = models.SlugField(max_length=255, unique=True) + +# Needs to be organised in a sensical order. +class Event(Entity, Titled): + description = models.TextField() + start_time = models.DateTimeField(blank=True, null=True) + end_time = models.DateTimeField(blank=True, null=True) + is_all_day_event = models.BooleanField(default=False) + location = models.ForeignKey(getattr(settings, 'PHILO_LOCATION_MODULE', Location), related_name='events', blank=True, null=True) + tags = models.ManyToManyField(Tag, blank=True, null=True) + parent_event = models.ForeignKey(Event, blank=True, null=True) # To handle series' of events. + user = models.ForeignKey(getattr(settings, 'PHILO_PERSON_MODULE', User)) # Should this be optional? + url = models.URLField(blank=True, null=True) + attachment = models.FileField(upload_to='events/attachments/%Y/%m/%d', blank=True, null=True) + image = models.ImageField(upload_to='events/images/%Y/%m/%d', blank=True, null=True) + + +class Calendar(Entity, Titled): + slug = models.SlugField(max_length=255, unique=True) + events = models.ManyToManyField(Event, related_name='calendars') + +# NOTES: Only let start time be blank if it has child events with times. \ No newline at end of file