def join_group(request, pk): response = {'result': False, 'reason': 'nope'} # import pdb # pdb.set_trace() user = is_logged_in(request) if user: group = Group.objects.filter(pk=pk) if group: group = group[0] if not group.show_to(user): if not (group.joining_code == request.POST.get('joining_code', "Wohoo.!!")): response['reason'] = "You don't have permission to be here or the joining code is incorrect." return HttpResponse(json.dumps(response), content_type="application/json") group.members.add(user) group.save() response['result'] = True response['message'] = "Welcome to %s"%group.name badge = Badge.get_baby_steps_badge() if badge not in user.badges.all(): user.badges.add(badge) user.points += badge.points user.save() badge.save() badge = Badge.get_social_climber_badge() if user.groups.count() >= 5: if badge not in user.badges.all(): user.badges.add(badge) user.points += badge.points user.save() badge.save() else: response['reason'] = "No Group with this PK found" else: response['reason'] = "not logged in" return HttpResponse(json.dumps(response), content_type="application/json")