Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions groups/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ def create(request):
if form.is_valid():
group = form.save(commit=False)
group.head = request.user.username
# Save를 두 번 하는 이유가 있나요?
group.save()
group.code = groupCodeGenerate(request.user.username, group.id)
group.save()
Expand All @@ -47,24 +48,24 @@ def join(request):
user = request.user.id

# 케이스별로 예외처리 논의 필요
try:
try:
group = Group.objects.get(code=code)
except Group.DoesNotExist:
messages.error(request, '유효하지 않은 그룹 코드입니다.')
return redirect('/groups/join/')

try:
group.blackList.get(id=user)
messages.error(request, '그룹의 블랙리스트에 등록되어있습니다.')
return redirect('/groups/join/')
except:
try:
try:
group.members.get(id=user)
messages.error(request, '이미 해당 그룹의 멤버입니다.')
return redirect('/groups/join/')
except:
group.members.add(user)
return redirect(f'/groups/group/{group.id}')
return redirect(f'/groups/group/{group.id}')
else:
return render(request, template_name='groups/join.html')

Expand All @@ -88,7 +89,7 @@ def leave(request, id):
user = request.user.id
group = Group.objects.get(id=id)
group.members.remove(user)

return redirect('/groups/')

def modify(request, id):
Expand All @@ -108,7 +109,7 @@ def modify(request, id):
group.name = form.cleaned_data['name']
group.introduction = form.cleaned_data['introduction']
group.purpose = form.cleaned_data['purpose']
# group.image = form.cleaned_data['image']
# group.image = form.cleaned_data['image']
if form.cleaned_data['image']:
group.image = form.cleaned_data['image']
else:
Expand All @@ -117,7 +118,7 @@ def modify(request, id):
return redirect(f'/groups/group/{group.id}')
else:
form = GroupForm(instance=group)

context = {
'form' : form,
'group' : group
Expand All @@ -132,7 +133,7 @@ def members(request, id):

context = {
'group' : group,
'members' : members,
'members' : members,
'user' : user,
}
return render(request, template_name='groups/members.html', context=context)
return render(request, template_name='groups/members.html', context=context)
27 changes: 15 additions & 12 deletions logins/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def login_view(request):
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
print("인증성공")
print("인증성공")
else:
print("인증실패")
return render(request, 'logins/login.html')
Expand All @@ -37,7 +37,7 @@ class SignUp(View):
def get(self, request):
form = forms.SignUpForm()
return render(request, 'logins/signup.html', {"form":form})

def post(self, request):
form = forms.SignUpForm(request.POST)
print(form)
Expand All @@ -52,7 +52,7 @@ def post(self, request):
'id': urlsafe_base64_encode(force_bytes(user.id)).encode().decode(),
'token': account_activation_token.make_token(user),
})

mail_subject = 'Activate your accout'
to_email = form.cleaned_data.get('email')
email = EmailMessage(mail_subject, message, to=[to_email])
Expand All @@ -75,6 +75,7 @@ def activate(request, uidb64, token):
else:
return HttpResponse('Activation link is invalid')

# Camel Case와 Snake Case 확정짓기
def userUpdate(request, id):
if request.method == 'POST':
nickname = request.POST['nickname']
Expand All @@ -84,6 +85,8 @@ def userUpdate(request, id):
addressDetail = request.POST['addressDetail']
gender = request.POST['gender']

# 인자들 중에 Null 값이 들어오는 경우는 없는 건가요?

User.objects.filter(id=id).update(nickname=nickname, email=email, age=age, address=address, addressDetail=addressDetail, gender=gender)
print(User.objects.filter(id=id).update(nickname=nickname, email=email, age=age, address=address, addressDetail=addressDetail, gender=gender))
return redirect('logins:main')
Expand All @@ -110,7 +113,7 @@ def userUpdate(request, id):
# user = User.objects.get(pk=uid)
# except(TypeError, ValueError, OverflowError, User.DoesNotExist):
# user = None

# try:
# if user is not None and account_activation_token.check_token(user, token):
# user.is_active=True
Expand Down Expand Up @@ -142,7 +145,7 @@ def userUpdate(request, id):


# class SignUp(View):

# def post(self, request):#입력값을 받는다
# data = json.loads(request.body)
# User(
Expand All @@ -168,7 +171,7 @@ def userUpdate(request, id):
# password = bcrypt.hashpw(data['password'].encode('utf-8'),bcrypt.gensalt()).decode('utf-8'),
# is_active = False
# )

# current_site = get_current_site(request)
# domain = current_site.domain
# uidb64 = urlsafe_base64_encode(force_bytes(user.pk))
Expand Down Expand Up @@ -221,10 +224,10 @@ def userUpdate(request, id):
# user = User.objects.create(
# email = data["email"],
# password = bcrypt.hashpw(data["password"].encode("UTF-8"), bcrypt.gensalt()).decode("UTF-8"),
# is_active = False
# is_active = False
# )

# current_site = get_current_site(request)
# current_site = get_current_site(request)
# domain = current_site.domain
# uidb64 = urlsafe_base64_encode(force_bytes(user.pk))
# token = account_activation_token.make_token(user)
Expand All @@ -233,8 +236,8 @@ def userUpdate(request, id):
# mail_title = "이메일 인증을 완료해주세요"
# mail_to = data['email']
# email = EmailMessage(mail_title, message_data, to=[mail_to])
# email.send()
# email.send()

# return JsonResponse({"message" : "SUCCESS"}, status=200)

# except KeyError:
Expand All @@ -256,7 +259,7 @@ def userUpdate(request, id):
# username=request.POST["username"],
# password=request.POST["password1"])
# user.save()
# current_site = get_current_site(request)
# current_site = get_current_site(request)
# message = render_to_string('logins/user_activate_email.html', {
# 'user': user,
# 'domain': current_site.domain,
Expand Down Expand Up @@ -306,4 +309,4 @@ def userUpdate(request, id):
# auth.login(request, user)
# return redirect('account:home')
# else:
# return HttpResponse('비정상적인 접근입니다.')
# return HttpResponse('비정상적인 접근입니다.')
5 changes: 3 additions & 2 deletions meetings/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from groups.models import Group,User

# Create your models here.
# Camel Case & Snake Case
class Meetings(models.Model):
meetHead = models.ForeignKey(User, on_delete=models.CASCADE)
meetGroupId = models.ForeignKey(Group, on_delete=models.CASCADE)
Expand All @@ -13,7 +14,7 @@ class Meetings(models.Model):
meetStart = models.DateField()
meetEnd = models.DateField()
meetVote = models.IntegerField(default=0)
meetMembers = models.IntegerField(default=0)
meetMembers = models.IntegerField(default=0)

def __str__(self):
return self.meetName
return self.meetName
22 changes: 17 additions & 5 deletions meetings/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from django.contrib.auth.decorators import login_required
# Create your views here.

#목록 페이지
#목록 페이지
#필터링 공개범위 :개인 그룹 전체
# 검색 a. 키워드 b. 제목
#목록 페이지 썸네일과 제목
Expand All @@ -25,6 +25,8 @@ def create(request,id):
if request.method =='POST':
meetHead = User.objects.get(id=request.user.id)
meetGroupId = Group.objects.get(id=id)
# 각 인자가 안들어올 수 있어서, modelForm 만드시고 validation 체크하시는 게
# 좋을 것 같습니다.
meetName = request.POST['meetName']
meetTime = request.POST['meetTime']
meetPlace = request.POST['meetPlace']
Expand All @@ -45,14 +47,17 @@ def create(request,id):
@login_required
def update(request, id, meetId):
# todo 약속을 만든사람인지 판별
# Group의 경우 마지막 리턴 값에만 필요한데, 작성자 체크하기 전에
# 호출하는 건 비효율적으로 보입니다.
# 만약 작성자가 아닌 경우, 그룹을 계속 호출하는 비효율이 발생합니다.
group = Group.objects.get(id=id)
meetings = Meetings.objects.get(id=meetId)


if meetings.meetHead.id != request.user.id:
print('작성자가 아닙니다')
return redirect('groups:detail', id)

if request.method =='POST':

meetings.meetName = request.POST['meetName']
Expand All @@ -61,7 +66,8 @@ def update(request, id, meetId):
meetings.save()

return redirect('meetings:detail',id,meetings.id)


# 동일한 객체에 대해 2번 호출하고 있습니다.
meetings = Meetings.objects.get(id=meetId)
context = {
'meeting': meetings,
Expand All @@ -70,9 +76,12 @@ def update(request, id, meetId):
}
return render(request, 'meetings/update.html',context)

#todo 디테일 페이지 - 모집중/ 투표중/ 픽스
#todo 디테일 페이지 - 모집중/ 투표중/ 픽스
@login_required
def detail(request, id,meetId):
# Group의 경우 마지막 리턴 값에만 필요한데, 작성자 체크하기 전에
# 호출하는 건 비효율적으로 보입니다.
# 만약 작성자가 아닌 경우, 그룹을 계속 호출하는 비효율이 발생합니다.
meeting = Meetings.objects.get(id=meetId)
group = Group.objects.get(id=id)

Expand All @@ -90,6 +99,9 @@ def detail(request, id,meetId):

@login_required
def delete(request, id, meetId):
# Group의 경우 마지막 리턴 값에만 필요한데, 작성자 체크하기 전에
# 호출하는 건 비효율적으로 보입니다.
# 만약 작성자가 아닌 경우, 그룹을 계속 호출하는 비효율이 발생합니다.
meeting = Meetings.objects.get(id=meetId)
group = Group.objects.get(id=id)

Expand All @@ -98,4 +110,4 @@ def delete(request, id, meetId):
return redirect('groups:detail', id)

meeting.delete()
return redirect('groups:detail', id)
return redirect('groups:detail', id)