Skip to content

Commit 1383bf2

Browse files
committed
Update: 전체 및 날짜별 조회기능 추가
1 parent e0fc12e commit 1383bf2

File tree

4 files changed

+41
-4
lines changed

4 files changed

+41
-4
lines changed

pyconweb2022/program/routers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from rest_framework.routers import DefaultRouter
22

3-
from program.viewsets import ProposalViewSet, ProposalDetailViewSet
3+
from program.viewsets import ProposalViewSet, ProposalDay1ViewSet, ProposalDay2ViewSet, ProposalDetailViewSet
44

55

66
def get_router():
77
router = DefaultRouter()
8+
router.register("list/day1", ProposalDay1ViewSet, basename="program-day1")
9+
router.register("list/day2", ProposalDay2ViewSet, basename="program-day2")
810
router.register("list", ProposalViewSet, basename="program")
911
router.register("edit", ProposalDetailViewSet, basename="program-edit")
1012

pyconweb2022/program/tests.py

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
from django.contrib.auth.models import User
33

44
from program.models import ProgramCategory, Proposal
5+
from pyconweb2022 import config
6+
7+
import datetime
58

69

710
class ProgramApiTest(TestCase):
@@ -29,7 +32,8 @@ def setUp(self) -> None:
2932
duration="L",
3033
language="K",
3134
category=category,
32-
accepted=True
35+
accepted=True,
36+
video_open_at=datetime.datetime.strptime(config.PYCON_KR_2022_DATE1, "%Y%m%d")
3337
).save()
3438

3539
Proposal(
@@ -43,7 +47,8 @@ def setUp(self) -> None:
4347
duration="L",
4448
language="K",
4549
category=category,
46-
accepted=True
50+
accepted=True,
51+
video_open_at=datetime.datetime.strptime(config.PYCON_KR_2022_DATE2, "%Y%m%d")
4752
).save()
4853

4954
Proposal(
@@ -57,7 +62,8 @@ def setUp(self) -> None:
5762
duration="L",
5863
language="K",
5964
category=category,
60-
accepted=False
65+
accepted=False,
66+
video_open_at=datetime.datetime.strptime(config.PYCON_KR_2022_DATE2, "%Y%m%d")
6167
).save()
6268

6369
def test_get_all_session(self):
@@ -66,3 +72,17 @@ def test_get_all_session(self):
6672

6773
self.assertEqual(response.status_code, 200)
6874
self.assertEqual(len(response.data), 2)
75+
76+
def test_get_day1_session(self):
77+
c = Client()
78+
response = c.get("/api/program/list/day1/", {})
79+
80+
# self.assertEqual(response.status_code, 200)
81+
self.assertEqual(len(response.data), 1)
82+
83+
def test_get_day2_session(self):
84+
c = Client()
85+
response = c.get("/api/program/list/day2/", {})
86+
87+
# self.assertEqual(response.status_code, 200)
88+
self.assertEqual(len(response.data), 1)

pyconweb2022/program/viewsets.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from program.models import Proposal
66
from program.serializers import ProposalSerializer, ProposalDetailSerializer
7+
from pyconweb2022 import config
78

89

910
class ProposalViewSet(ReadOnlyModelViewSet):
@@ -12,6 +13,14 @@ class ProposalViewSet(ReadOnlyModelViewSet):
1213
permission_classes = [AllowAny]
1314

1415

16+
class ProposalDay1ViewSet(ProposalViewSet):
17+
queryset = ProposalViewSet.queryset.filter(video_open_at__day=config.PYCON_KR_2022_DAY1)
18+
19+
20+
class ProposalDay2ViewSet(ProposalViewSet):
21+
queryset = ProposalViewSet.queryset.filter(video_open_at__day=config.PYCON_KR_2022_DAY2)
22+
23+
1524
class ProposalDetailViewSet(ReadOnlyModelViewSet):
1625
queryset = Proposal.objects.none() # 각 Viewset 메서드에서 쿼리셋 작성
1726
serializer_class = ProposalDetailSerializer
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
PYCON_KR_2022_YEAR = "2022"
2+
PYCON_KR_2022_MONTH = "10"
3+
PYCON_KR_2022_DAY1 = "01"
4+
PYCON_KR_2022_DAY2 = "02"
5+
PYCON_KR_2022_DATE1 = "20221001"
6+
PYCON_KR_2022_DATE2 = "20221002"

0 commit comments

Comments
 (0)