示例#1
0
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")