Skip to content

Commit 7fd48ba

Browse files
authored
Merge pull request #21 from farooq13/base
Base
2 parents 4498ac5 + 1b8991f commit 7fd48ba

7 files changed

+42
-24
lines changed
525 Bytes
Binary file not shown.

base/views.py

+42-24
Original file line numberDiff line numberDiff line change
@@ -105,38 +105,56 @@ def test_func(self):
105105
post = self.get_object()
106106
return self.request.user == post.author
107107

108+
class PostLike(View):
109+
def post(self, request, pk, *args, **kwargs):
110+
post = Post.objects.get(pk=pk)
111+
112+
is_dislike = False
113+
for dislike in post.dislikes.all():
114+
if dislike == request.user:
115+
post.dislikes.remove(request.user)
116+
break
117+
118+
is_like = False
119+
for like in post.likes.all():
120+
if like == request.user:
121+
is_like = True
122+
break
123+
124+
if not is_like:
125+
post.likes.add(request.user)
108126

109-
class PostLike(LoginRequiredMixin, View):
110-
def post (self, request, pk, *args, **kwargs):
111-
post = get_object_or_404(Post, pk=pk)
112-
user = request.user
113-
114-
if user in post.likes.all():
115-
post.likes.remove(user)
116-
if user in post.dislikes.all():
117-
post.dislikes.remove(request.user)
118-
post.likes.add(user)
119-
120-
notification = Notification.objects.create(
127+
notification = Notification.objects.create(
121128
notification_type = 1,
122129
from_user = request.user,
123130
to_user = post.author,
124131
post = post
125132
)
126133

127-
next = request.POST.get('next')
128-
return HttpResponseRedirect(next)
129-
130-
class PostDislike(LoginRequiredMixin, View):
131-
def post(self, request, pk, *args, **kwargs):
132-
post = get_object_or_404(Post, pk=pk)
133-
user = request.user
134+
if is_like:
135+
post.likes.remove(request.user)
134136

135-
if user in post.dislikes.all():
136-
post.dislikes.remove(user)
137-
if user in post.likes.all():
138-
post.likes.remove(user)
139-
post.dislikes.add(user)
137+
next = request.POST.get('next')
138+
return HttpResponseRedirect(next)
139+
140+
class PostDislike(View):
141+
def post(self, request, pk, *args, **kwargs):
142+
post = Post.objects.get(pk=pk)
143+
144+
is_like = False
145+
for like in post.likes.all():
146+
if like == request.user:
147+
post.likes.remove(request.user)
148+
break
149+
is_dislikes = False
150+
for dislike in post.dislikes.all():
151+
if dislike == request.user:
152+
is_dislikes = True
153+
break
154+
if not is_dislikes:
155+
post.dislikes.add(request.user)
156+
if is_dislikes:
157+
post.dislikes.remove(request.user)
140158

141159
next = request.POST.get('next')
142160
return HttpResponseRedirect(next)

db.sqlite3

0 Bytes
Binary file not shown.
Loading
Loading
Loading
Loading

0 commit comments

Comments
 (0)