-
Notifications
You must be signed in to change notification settings - Fork 7
/
models.py
87 lines (65 loc) · 2.92 KB
/
models.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
from django.db import models
from django.contrib.auth.models import User
from .slugify import unique_slugify
from django.core.urlresolvers import reverse
class TavernGroup(models.Model):
"Similar interests group, create events for these"
name = models.CharField(max_length=40)
group_type = models.CharField(max_length=100)
description = models.CharField(max_length=200)
members_name = models.CharField(verbose_name="Member's Name",
help_text='What do you want to \
call the group members?',
max_length=40,
null=True,
blank=True)
country = models.CharField(max_length=20)
city = models.CharField(max_length=20)
creator = models.ForeignKey(User, related_name="created_groups")
organizers = models.ManyToManyField(User)
slug = models.SlugField(max_length=50)
def __unicode__(self):
return self.name
def get_absolute_url(self):
return reverse("tavern_group_details", args=[str(self.slug)])
def save(self, *args, **kwargs):
unique_slugify(self, self.name)
super(TavernGroup, self).save(*args, **kwargs)
class Member(models.Model):
"People who are in a TavernGroup"
user = models.ForeignKey(User, related_name='tavern_groups')
tavern_group = models.ForeignKey(TavernGroup, related_name='members')
join_date = models.DateTimeField()
def __unicode__(self):
return "%s - %s" % (self.user.username, self.tavern_group.name)
class Event(models.Model):
"Event you can attend"
group = models.ForeignKey(TavernGroup)
name = models.CharField(max_length=200)
description = models.TextField()
starts_at = models.DateTimeField(null=True, blank=True)
ends_at = models.DateTimeField(null=True, blank=True)
location = models.TextField(null=True, blank=True)
slug = models.SlugField(max_length=250)
creator = models.ForeignKey(User)
def __unicode__(self):
return self.name
def get_absolute_url(self):
return reverse("tavern_event_details", args=[str(self.slug)])
def save(self, *args, **kwargs):
unique_slugify(self, self.name)
super(Event, self).save(*args, **kwargs)
RSVP_CHOICES = (('yes', 'Yes'), ('no', 'No'), ('maybe', 'May Be'))
class Attendee(models.Model):
"People who have RSVPed to events"
user = models.ForeignKey(User)
member = models.ForeignKey(Member)
event = models.ForeignKey(Event)
rsvped_on = models.DateTimeField()
rsvp_status = models.CharField(verbose_name="RSVP Status",
choices=RSVP_CHOICES,
max_length=5,
blank=True,
null=True)
def __unicode__(self):
return "%s - %s" % (self.user.first_name, self.event.name)