diff --git a/program/__init__.py b/program/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/program/admin.py b/program/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/program/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/program/apps.py b/program/apps.py new file mode 100644 index 0000000..16d4ba1 --- /dev/null +++ b/program/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class ProgramConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "program" diff --git a/program/migrations/__init__.py b/program/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/program/models.py b/program/models.py new file mode 100644 index 0000000..9b45698 --- /dev/null +++ b/program/models.py @@ -0,0 +1,73 @@ +from django.contrib.auth import get_user_model +from django.db import models + +User = get_user_model() + + +class ProgramCategory(models.Model): + name = models.CharField(max_length=100, db_index=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, null=True, blank=True) + + title = models.CharField(max_length=255) + brief = models.TextField(max_length=1000, help_text="리뷰용: 발표에 대한 간단한 설명.") + desc = models.TextField(max_length=4000, help_text="리뷰용: 발표에 대한 자세한 설명") + comment = models.TextField( + max_length=4000, null=True, blank=True, help_text="리뷰용: 파준위에게 전하고 싶은 말" + ) + + 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=2000, + 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" + ) + track_num = models.IntegerField(null=True, blank=True, help_text="트랙 번호") + + def __str__(self): + return self.title diff --git a/program/tests.py b/program/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/program/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/program/views.py b/program/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/program/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.