diff --git a/campics_/jinstagram/views.py b/campics_/jinstagram/views.py index dc4bc60ba0a7e51f1d4c247bb46d37666242ac78..a95ec308011ad2f5d8abd2daac1366462269de6e 100644 --- a/campics_/jinstagram/views.py +++ b/campics_/jinstagram/views.py @@ -1,9 +1,10 @@ from django.shortcuts import render from rest_framework.views import APIView -from content.models import Feed, Reply, FeedLike, FeedView, Bookmark +from content.models import Feed, Reply, FeedLike, FeedView, FeedReport, Bookmark from user.models import User, Follow, Univ from django.db.models import Count, Sum + class Main(APIView): def get(self, request): email = request.session.get('email', None) @@ -14,11 +15,11 @@ class Main(APIView): if user is None: return render(request, 'user/login.html') - ##### 게시판 분류 및 정렬##### - + ##### 게시판 분류 및 정렬##### + type = request.GET.get('type', None) order_condition = request.GET.get('order', None) - + if type == None: type = 'photozone' @@ -64,6 +65,7 @@ class Main(APIView): user=user, type=type)) + class Post(APIView): def get(self, request): email = request.session.get('email', None) @@ -75,15 +77,18 @@ class Post(APIView): return render(request, 'user/login.html') if request.method == 'GET': - id=request.GET.get('id') - + id = request.GET.get('id') + feed = Feed.objects.get(id=id) like_count = FeedLike.objects.filter(feed_id=feed.id, is_like=True).count() - feed.like_count=like_count + feed.like_count = like_count is_like = FeedLike.objects.filter(feed_id=feed.id, is_like=True, email=email).exists() view_count = FeedView.objects.filter(feed_id=feed.id, is_view=True).count() feed.view_count = view_count is_view = FeedView.objects.filter(feed_id=feed.id, is_view=True, email=email).exists() + report_count = FeedReport.objects.filter(feed_id=feed.id, is_report=True).count() + feed.report_count = report_count + is_report = FeedReport.objects.filter(feed_id=feed.id, is_report=True, email=email).exists() feed.save() profile_image = User.objects.filter(email=feed.email).first().thumbnail or 'default_profile.jpg' @@ -101,15 +106,16 @@ class Post(APIView): like_count=like_count, is_like=is_like, view_count=view_count, - is_view=is_view - )) + is_view=is_view, + report_count=report_count, + is_report=is_report + )) class Ranking(APIView): def get(self, request): - - univ_list = Feed.objects.values('univ')\ - .annotate(score=Count('univ') + Sum('view_count') + Sum('like_count'))\ + univ_list = Feed.objects.values('univ') \ + .annotate(score=Count('univ') + Sum('view_count') + Sum('like_count')) \ .order_by('-score') # print(univ_list) @@ -119,6 +125,7 @@ class Ranking(APIView): 'jinstagram/ranking.html', context=dict(univ_list=univ_list)) + class Detail(APIView): def get(self, request): email = request.session.get('email', None) @@ -150,6 +157,7 @@ class Detail(APIView): context=dict(feed_list=feed_list, user=user)) + class Profile(APIView): def get(self, request): email = request.session.get('email', None) @@ -184,9 +192,8 @@ class Profile(APIView): if len(row_feed_list) > 0: feed_list.append(dict(row_feed_list=row_feed_list)) - return render(request, 'jinstagram/profile.html', context=dict(feed_list=feed_list, feed_count=feed_count, - user=user)) \ No newline at end of file + user=user))