Skip to content

Commit 5bcc719

Browse files
authored
Merge pull request #127 from pythonkr/devdev
운영 반영
2 parents bf9a21e + 517ee2b commit 5bcc719

File tree

4 files changed

+42
-7
lines changed

4 files changed

+42
-7
lines changed

session/resources.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88

99
class SessionResource(resources.ModelResource):
10-
def before_save_instance(self, instance: Session, using_transactions, dry_run):
11-
instance.start_at = datetime.datetime.now()
10+
def before_import_row(self, row, row_number=None, **kwargs):
11+
row["room_num"] = int(row["room_num"])
1212

1313
class Meta:
1414
model = Session
15-
fields = ["id", "title", "difficulty", "duration", "language", "category"]
15+
fields = ["id", "title", "difficulty", "duration", "language", "category", "start_at", "room_num"]

session/serializers.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
class SessionSerializer(serializers.ModelSerializer):
88
category_name = serializers.SerializerMethodField()
99
accepted = serializers.BooleanField(read_only=True)
10+
day_of_week = serializers.SerializerMethodField()
1011
created_at = serializers.DateTimeField(read_only=True)
1112
updated_at = serializers.DateTimeField(read_only=True)
1213

@@ -25,22 +26,28 @@ class Meta:
2526
"video_url",
2627
"slide_url",
2728
"room_num",
29+
"day_of_week",
2830
"created_at",
2931
"updated_at",
3032
]
3133

3234
def to_representation(self, instance: Session):
3335
response = super().to_representation(instance)
34-
response["user"] = UserExtSerializer(instance.user.userext).data
36+
response["user"] = UserExtSerializer(instance.user.userext).data if instance.user else None
3537
return response
3638

3739
@staticmethod
3840
def get_category_name(obj: Session):
3941
return obj.category.name
4042

43+
@staticmethod
44+
def get_day_of_week(obj: Session):
45+
return obj.start_at.strftime("%a") if obj.start_at else None
46+
4147

4248
class SessionListSerializer(serializers.ModelSerializer):
4349
category_name = serializers.SerializerMethodField()
50+
day_of_week = serializers.SerializerMethodField()
4451

4552
class Meta:
4653
model = Session
@@ -53,6 +60,7 @@ class Meta:
5360
"language",
5461
"category",
5562
"category_name",
63+
"day_of_week",
5664
]
5765

5866
@staticmethod
@@ -63,6 +71,10 @@ def get_profile_img(obj: Session):
6371
def get_category_name(obj: Session):
6472
return obj.category.name
6573

74+
@staticmethod
75+
def get_day_of_week(obj: Session):
76+
return obj.start_at.strftime("%a") if obj.start_at else None
77+
6678
def to_representation(self, instance: Session):
6779
response = super().to_representation(instance)
6880

session/urls.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22
from rest_framework.routers import DefaultRouter
33

44
from session.viewsets import SessionViewSet
5+
from session.views import get__timetable
56

67
session_router = DefaultRouter()
78
session_router.register("", SessionViewSet, basename="session")
89

910
urlpatterns = [
11+
path("timetable/", get__timetable),
1012
path("", include(session_router.urls)),
1113
]

session/views.py

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,34 @@
1+
import datetime
2+
3+
from rest_framework.decorators import api_view
14
from rest_framework.response import Response
25

3-
from program.models import Session
6+
from session.models import Session
7+
from session.serializers import SessionSerializer
48

59

10+
@api_view(["GET"])
611
def get__timetable(request):
712
response = dict()
813

9-
response["day1"] = Session.objects.filter()
14+
MONTH = 8
15+
FIRST_DAY = 12
16+
SECOND_DAY = 13
17+
18+
response["day1"] = SessionSerializer(
19+
Session.objects.filter(
20+
start_at__month=MONTH,
21+
start_at__day=FIRST_DAY
22+
),
23+
many=True
24+
).data
1025

11-
response["day2"] = Session.objects.filter()
26+
response["day2"] = SessionSerializer(
27+
Session.objects.filter(
28+
start_at__month=MONTH,
29+
start_at__day=SECOND_DAY
30+
),
31+
many=True
32+
).data
1233

1334
return Response(data=response)

0 commit comments

Comments
 (0)