Skip to content

Commit 4498ac5

Browse files
authored
Merge pull request #20 from farooq13/feature
Feature
2 parents 3068b19 + 7b303f6 commit 4498ac5

6 files changed

+38
-5
lines changed
356 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
2.37 KB
Binary file not shown.

base/forms.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
from django import forms
12
from django.forms import ModelForm
2-
from .models import Post, Comment, UserProfile
3+
from .models import Post, Comment, UserProfile, ThreadModel
34

45

56
class PostForm(ModelForm):
@@ -15,4 +16,9 @@ class Meta:
1516
class ProfileForm(ModelForm):
1617
class Meta:
1718
model = UserProfile
18-
fields = ['picture', 'name', 'bio', 'location', 'birth_date']
19+
fields = ['picture', 'name', 'bio', 'location', 'birth_date']
20+
21+
22+
23+
class ThreadForm(forms.Form):
24+
username = forms.CharField(label='', max_length=100)

base/models.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,4 +85,4 @@ class Message(models.Model):
8585
receiver_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='+')
8686
body = models.CharField(max_length=1000)
8787
date = models.DateTimeField(default=timezone.now)
88-
is_read = models.BooleanField(default=False)
88+
is_read = models.BooleanField(default=False)

base/views.py

+29-2
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
from django.views.generic.edit import UpdateView, DeleteView
44
from django.urls import reverse_lazy
55
from django.shortcuts import get_object_or_404
6+
from django.contrib.auth.models import User
67
from django.http import HttpResponseRedirect, HttpResponse
78
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
89
from .models import Post, Comment, UserProfile, Notification, ThreadModel, Message
910
from django.db.models import Q
10-
from .forms import PostForm, CommentForm, ProfileForm
11+
from .forms import PostForm, CommentForm, ProfileForm, ThreadForm
1112

1213

1314
class PostList(View):
@@ -333,4 +334,30 @@ def get(self, request, *args, **kwargs):
333334
context = {
334335
'threads': threads
335336
}
336-
return render(request, 'base/inbox.html', context)
337+
return render(request, 'base/inbox.html', context)
338+
339+
340+
class CreateThread(View):
341+
def get(self, request, *args, **kwargs):
342+
form = ThreadForm()
343+
344+
context = {
345+
'form': form
346+
}
347+
return render(request, 'base/create_thread.html', context)
348+
349+
def post(self, request, *args, **kwargs):
350+
form = ThreadForm(request.POST)
351+
username = request.POST.get('username')
352+
353+
try:
354+
receiver = User.objects.get(username=username)
355+
if ThreadModel.objects.filter(use=request.user, receiver=receiver).exists():
356+
thread = ThreadModel.objects.filter(user=request.user, receiver=receiver)[0]
357+
return redirect('thread', pk=thread.pk)
358+
elif ThreadModel.objects.filter(user=receiver, receiver=request.user).exists():
359+
thread = ThreadModel.objects.filter(user=receiver, receiver=request.user)[0]
360+
return redirect('thread', pk=thread.pk)
361+
362+
except:
363+
return redirect('thread', pk=thread.pk)

0 commit comments

Comments
 (0)