-
Notifications
You must be signed in to change notification settings - Fork 61
Expand file tree
/
Copy pathmodels.py
More file actions
69 lines (53 loc) · 2.46 KB
/
models.py
File metadata and controls
69 lines (53 loc) · 2.46 KB
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
from django.contrib.auth import get_user_model
from django.db import models
# Create your models here.
from django.urls import reverse
class Cohort(models.Model):
title = models.CharField(max_length=50)
slug = models.SlugField()
image = models.ImageField(upload_to='cohorts/')
quote = models.TextField()
mail_list = models.URLField()
forum_post = models.URLField()
start = models.DateField()
end = models.DateField()
students = models.ManyToManyField(get_user_model(), through='CohortStudent')
def get_absolute_url(self):
return reverse('cohorts:detail', kwargs={'slug': self.slug})
def __str__(self):
return f'Turma: {self.title}'
@property
def recorded_webinars(self):
return [w for w in self.webinars if w.vimeo_id]
@property
def future_webinars(self):
return [w for w in self.webinars if not w.vimeo_id]
class CohortStudent(models.Model):
added = models.DateTimeField(auto_now_add=True)
cohort = models.ForeignKey(Cohort, on_delete=models.DO_NOTHING)
user = models.ForeignKey(get_user_model(), on_delete=models.DO_NOTHING)
class LiveClass(models.Model):
start = models.DateTimeField()
vimeo_id = models.CharField(max_length=11, db_index=False, blank=True)
cohort = models.ForeignKey(Cohort, models.CASCADE)
discourse_topic_id = models.CharField(max_length=11, db_index=False, null=True, default='726')
description = models.TextField(blank=True, default='Aula Pendente')
memberkit_url = models.URLField(max_length=1024, blank=True, default='')
def get_absolute_url(self):
return reverse('cohorts:live_class', kwargs={'pk': self.id})
class Webinar(models.Model):
cohort = models.ForeignKey(Cohort, on_delete=models.DO_NOTHING)
title = models.CharField(max_length=128)
speaker = models.CharField(max_length=50)
speaker_title = models.CharField(max_length=50)
slug = models.SlugField(unique=True, max_length=128)
vimeo_id = models.CharField(max_length=11, db_index=False, blank=True)
start = models.DateTimeField()
discourse_topic_id = models.CharField(max_length=11, db_index=False)
description = models.TextField()
image = models.ImageField(upload_to='webinars/', null=True, blank=True)
memberkit_url = models.URLField(max_length=1024, blank=True, default='')
def get_absolute_url(self):
return reverse('cohorts:webinar', kwargs={'slug': self.slug})
def __str__(self):
return f'Turma {self.title}'