X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/184000ec978f6c0119bdb94a0cd24dbb84a09125..662258ae0a1423d9153c5a7528ab3a9e1672e877:/contrib/julian/models.py?ds=sidebyside diff --git a/contrib/julian/models.py b/contrib/julian/models.py index 049473c..33c4d51 100644 --- a/contrib/julian/models.py +++ b/contrib/julian/models.py @@ -1,22 +1,29 @@ from django.db import models +from django.contrib.auth.models import User from philo.models.base import Tag, Entity, Titled import datetime -class Location(Entity, Titled): - slug = models.SlugField(max_length=255, unique=True) - - -class Calendar(Entity, Titled): - slug = models.SlugField(max_length=255, unique=True) - +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() - end_time = models.DateTimeField() + start_time = models.DateTimeField(blank=True, null=True) + end_time = models.DateTimeField(blank=True, null=True) is_all_day_event = models.BooleanField(default=False) - time_created = models.DateTimeField(default=datetime.datetime.now) - location = models.ForeignKey(Location) - calendars = models.ManyToManyField(Calendar) - tags = models.ManyToManyField(Tag) + 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