-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathmodels.py
More file actions
108 lines (85 loc) Β· 4.61 KB
/
models.py
File metadata and controls
108 lines (85 loc) Β· 4.61 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth import get_user_model
from django.urls import reverse
import constance
import datetime
User = get_user_model()
class ProgramCategory(models.Model):
name = models.CharField(max_length=100, db_index=True)
slug = models.SlugField(max_length=100, unique=True)
visible = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class Proposal(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=255)
brief = models.TextField(max_length=1000)
desc = models.TextField(max_length=4000)
comment = models.TextField(max_length=4000, null=True, blank=True)
difficulty = models.CharField(max_length=1,
choices=(
('B', _('Beginner')),
('I', _('Intermediate')),
('E', _('Experienced')),
))
duration = models.CharField(max_length=1,
choices=(
('S', _('25min')),
('L', _('40min')),
))
language = models.CharField(max_length=1,
choices=(
('', '---------'),
('K', _('Korean')),
('E', _('English')),
),
default='')
category = models.ForeignKey(
ProgramCategory, on_delete=models.SET_DEFAULT, null=True, blank=True, default=14)
accepted = models.BooleanField(default=False)
introduction = models.TextField(max_length=1000, null=True, blank=True,
help_text=_('λ°ν μκ° νμ΄μ§μ λ€μ΄κ°λ λ΄μ©μ
λλ€. λ³κ²½ μ¬νμ μ΅λ 60λΆ μ΄λ΄μ μ μ©λ©λλ€.'))
video_url = models.CharField(max_length=255, null=True, blank=True, help_text=_('λ°ν μμ URL'))
slide_url = models.CharField(max_length=255, null=True, blank=True, help_text=_('λ°ν μλ£ URL'))
video_open_at = models.DateTimeField(null=True, blank=True, help_text=_('νμ΄μ½ νκ΅ μ νλΈμ 곡κ°λλ μκ°'))
track_num = models.IntegerField(null=True, blank=True, help_text=_('νΈλ λ²νΈ'))
def __str__(self):
return self.title
class OpenReview(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
proposal = models.ForeignKey(Proposal, on_delete=models.CASCADE)
comment = models.TextField(max_length=2000)
category = models.ForeignKey(ProgramCategory, on_delete=models.CASCADE, null=True, blank=True)
submitted = models.BooleanField(default=False)
@property
def has_comment(self):
return len(self.comment) > 0
def __str__(self):
return self.proposal.title
class LightningTalk(models.Model):
class Meta:
ordering = ['created_at', ]
title = models.CharField(max_length=255, help_text='λΌμ΄νΈλ ν ν¬ μ λͺ©')
owner = models.OneToOneField(User, blank=True, null=True, on_delete=models.SET_NULL)
slide_url = models.CharField(max_length=511, null=True, blank=True)
video_url = models.CharField(max_length=511, null=True, blank=True)
day = models.IntegerField(choices=(
(1, _('ν μμΌ')),
(2, _('μΌμμΌ')),
))
brief = models.TextField(max_length=1000, null=True, blank=True, help_text='λΌμ΄νΈλ ν ν¬ μκ° λ¬Έκ΅¬')
comment = models.TextField(null=True, blank=True, help_text='μ€λΉμμνμκ² λ¨κΈ°κ³ μΆμ λ§')
accepted = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
class Sprint(models.Model):
creator = models.ForeignKey(User, on_delete=models.CASCADE, help_text=_('μ€νλ¦°νΈλ₯Ό λ±λ‘ν μ μ '))
title = models.CharField(max_length=255, help_text=_('μ€νλ¦°νΈ μ λͺ©'))
brief = models.CharField(max_length=255, null=True, blank=True, help_text=_('μ€νλ¦°νΈμ λν μ§§μ μ€λͺ
'))
language = models.CharField(max_length=255, help_text=_('μ€νλ¦°νΈλ₯Ό μ§νν νλ‘κ·Έλλ° μΈμ΄'), null=True, blank=True)
url = models.CharField(max_length=255, null=True, blank=True,
help_text=_('ννμ΄μ§μ 곡κ°λλ μ€νλ¦°νΈ κ΄λ ¨ μ£Όμμ
λλ€.'))