コード例 #1
0
ファイル: views.py プロジェクト: zero14777/My-Stuff
def Edit_Deck(request):
    if request.method == 'POST':
        deck_id_signed = request.POST.get('deck_id')
        deck_id = None
        signer = Signer(request.user.id)
        try:
        	deck_id = signer.unsign(deck_id_signed)
        except signing.BadSignature:
    		print("Tampering detected!!")
    		return HttpResponseRedirect('/')
        deck_name = request.POST.get('deck_name')
        user = request.POST.get('user')
        share_flag = request.POST.get('share_flag')
        if share_flag == 'false':
            share_flag = 0
        else:
            share_flag = 1
        data = {'user' : user, 'deck_name' : deck_name, "share_flag" : share_flag}
        deck = get_object_or_404(Deck, deck_id=deck_id)
        if deck.deck_name == deck_name:
            deck.share_flag = share_flag
            deck.save()
        else:
            form = NewDeck(data)
            if form.is_valid():

                #deck = get_object_or_404(Deck, deck_id=deck_id)
                deck.deck_name = deck_name
                deck.share_flag = share_flag
                deck.save()
            else:
                errors = form.errors
                return HttpResponse(json.dumps(errors))
    
    return HttpResponse(json.dumps({"success": "success"}))
コード例 #2
0
ファイル: views.py プロジェクト: hammerface/My-Stuff
def Edit_Deck(request):
    if request.method == 'POST':
        deck_id_signed = request.POST.get('deck_id')
        deck_id = None
        signer = Signer(request.user.id)
        try:
            deck_id = signer.unsign(deck_id_signed)
        except signing.BadSignature:
            print("Tampering detected!!")
            return HttpResponseRedirect('/')
        deck_name = request.POST.get('deck_name')
        user = request.POST.get('user')
        share_flag = request.POST.get('share_flag')
        if share_flag == 'false':
            share_flag = 0
        else:
            share_flag = 1
        data = {'user': user, 'deck_name': deck_name, "share_flag": share_flag}
        deck = get_object_or_404(Deck, deck_id=deck_id)
        if deck.deck_name == deck_name:
            deck.share_flag = share_flag
            deck.save()
        else:
            form = NewDeck(data)
            if form.is_valid():

                #deck = get_object_or_404(Deck, deck_id=deck_id)
                deck.deck_name = deck_name
                deck.share_flag = share_flag
                deck.save()
            else:
                errors = form.errors
                return HttpResponse(json.dumps(errors))

    return HttpResponse(json.dumps({"success": "success"}))
コード例 #3
0
ファイル: views.py プロジェクト: hammerface/My-Stuff
def Shared_Decks(request):
    u_id = request.GET.get('u_id')
    user = None
    user_name = None
    signer = Signer(request.user.id)
    try:
        user = signer.unsign(u_id)
    except signing.BadSignature:
        return HttpResponse(json.dumps({"Tampering": "bad signature"}))
    shared_decks = Deck.objects.filter(user_id=user,
                                       share_flag=1,
                                       deleted_flag=0)
    deck_list = []
    for deck in shared_decks:
        deck_list.append({
            "orig_deck_id": signer.sign(deck.deck_id),
            "deck_name": deck.deck_name,
            "share": deck.share_flag,
        })
    form = NewDeck(initial={'user': request.user.id})
    getname = User.objects.filter(id=user)
    for user_obj in getname:
        user_name = user_obj.username
    context = {
        "shared_user_id": user,
        "shared_user_name": user_name,
        "shared_decks": deck_list,
        "clone_form": form,
        "sign": signer.sign(request.user.id)
    }
    return render(request, 'flash_cards/shared_profile.html', context)
コード例 #4
0
def Home(request):
    form = None
    deck_list = []
    if request.user.is_authenticated:
        user_id = request.user.id
        signer = Signer(request.user.id)
        #new deck form
        if request.method == "POST":
            form = NewDeck(request.POST)
            if form.is_valid():
                deck = form.save(commit=False)
                deck.user_id = user_id
                deck.save()
                return HttpResponseRedirect('/')
        else:
            form = NewDeck(initial={'user' : request.user.id})
        #grab all decks associated with a user order by descending date created
        decks = Deck.objects.filter(user_id=user_id, deleted_flag = 0).order_by('-date_created')
        
        
        for deck in decks:
            deck_list.append({
                            "deck_id" : signer.sign(deck.deck_id), 
                            "deck_name" : deck.deck_name, 
                            "share" : deck.share_flag
                            })        

    context = {
        "form"      : form,
        "deck_list" : deck_list,
    }
    return render(request, "landing/home.html", context)
コード例 #5
0
ファイル: views.py プロジェクト: hammerface/My-Stuff
def Clone(request):
    if request.method == 'POST':
        signer = Signer(request.user.id)

        user = request.POST.get('user')
        deck_name = request.POST.get('deck_name')
        share_flag = request.POST.get('share_flag')
        clone_deck_id = request.POST.get('clone_deck_id')
        try:
            user = signer.unsign(user)
            clone_deck_id = signer.unsign(clone_deck_id)
        except signing.BadSignature:
            return HttpResponse(json.dumps({"Tampering": "bad signature"}))
        if share_flag == 'false':
            share_flag = 0
        else:
            share_flag = 1
        data = {'user': user, 'deck_name': deck_name, 'share_flag': share_flag}
        #create the new deck
        form = NewDeck(data)
        if form.is_valid():
            deck = form.save(commit=False)
            deck.user_id = user
            deck.save()
            new_deck_id = deck.deck_id
            #add all the cards from the shared deck to your new deck
            cards = Card.objects.filter(deck_id=clone_deck_id, deleted_flag=0)
            for card in cards:
                new_card = Card.objects.create(deck_id=new_deck_id,
                                               front=card.front,
                                               back=card.back)

        else:
            print "error"
            errors = form.errors
            print errors
            return HttpResponse(json.dumps(errors))

    return HttpResponse(json.dumps({"success": "success"}))
コード例 #6
0
ファイル: views.py プロジェクト: zero14777/My-Stuff
def Clone(request):
    if request.method == 'POST':
        signer = Signer(request.user.id)

        user = request.POST.get('user')
        deck_name = request.POST.get('deck_name')
        share_flag = request.POST.get('share_flag')
        clone_deck_id = request.POST.get('clone_deck_id')
        try:
            user = signer.unsign(user)
            clone_deck_id = signer.unsign(clone_deck_id)
        except signing.BadSignature:
            return HttpResponse(json.dumps({"Tampering": "bad signature"}))
        if share_flag == 'false':
            share_flag = 0
        else:
            share_flag = 1
        data = {'user' : user, 'deck_name' : deck_name, 'share_flag' : share_flag}
        #create the new deck
        form = NewDeck(data)
        if form.is_valid():
            deck = form.save(commit=False)
            deck.user_id = user
            deck.save()
            new_deck_id = deck.deck_id
            #add all the cards from the shared deck to your new deck
            cards = Card.objects.filter(deck_id = clone_deck_id, deleted_flag = 0)
            for card in cards:
                new_card = Card.objects.create(deck_id = new_deck_id, front=card.front,back=card.back)

        else:
            print "error"
            errors = form.errors
            print errors
            return HttpResponse(json.dumps(errors))

    return HttpResponse(json.dumps({"success": "success"}))
コード例 #7
0
ファイル: views.py プロジェクト: hammerface/My-Stuff
def New_Deck(request):
    if request.method == 'POST':
        user = request.POST.get('user')
        deck_name = request.POST.get('deck_name')
        share_flag = request.POST.get('share_flag')
        if share_flag == 'false':
            share_flag = 0
        else:
            share_flag = 1
        data = {'user': user, 'deck_name': deck_name, 'share_flag': share_flag}

        form = NewDeck(data)
        if form.is_valid():
            print "valid form"
            deck = form.save(commit=False)
            deck.user_id = user
            deck.save()
        else:
            print "error"
            errors = form.errors
            print errors
            return HttpResponse(json.dumps(errors))

    return HttpResponse(json.dumps({"success": "success"}))
コード例 #8
0
ファイル: views.py プロジェクト: zero14777/My-Stuff
def New_Deck(request):
	if request.method == 'POST':
		user = request.POST.get('user')
		deck_name = request.POST.get('deck_name')
		share_flag = request.POST.get('share_flag')
		if share_flag == 'false':
			share_flag = 0
		else:
			share_flag = 1
		data = {'user' : user, 'deck_name' : deck_name, 'share_flag' : share_flag}
		
		form = NewDeck(data)
		if form.is_valid():
			print "valid form"
			deck = form.save(commit=False)
			deck.user_id = user
			deck.save()
		else:
			print "error"
			errors = form.errors
			print errors
			return HttpResponse(json.dumps(errors))

	return HttpResponse(json.dumps({"success": "success"}))
コード例 #9
0
ファイル: views.py プロジェクト: hammerface/My-Stuff
def Search(request):
    query = request.GET.get('query')
    users = User.objects.filter(username__contains=str(query))
    user_list = []
    signer = Signer(request.user.id)
    #SQL SELECT * FROM flash_cards_deck where deck_name like '%hello%' and deleted_flag = 0 and share_flag = 1
    decks = Deck.objects.filter(
        deck_name__contains=str(query), share_flag=1,
        deleted_flag=0).exclude(user_id=request.user.id)
    deck_list = []
    for user in users:
        public_deck_count = Deck.objects.filter(user_id=user.id,
                                                share_flag=1).count()
        user_list.append({
            "user": user.id,
            "signed_user": signer.sign(user.id),
            "username": user.username,
            "public_deck_count": public_deck_count,
        })
    for deck in decks:
        username = ""

        user = User.objects.filter(id=deck.user_id)
        card_count = Card.objects.filter(deck_id=deck.deck_id,
                                         deleted_flag=0).count()
        try:
            username = user[0].username
        except IndexError:
            username = ""
        deck_list.append({
            "orig_deck_id": signer.sign(deck.deck_id),
            "deck_name": deck.deck_name,
            "share": deck.share_flag,
            "username": username,
            "card_count": card_count
        })
    form = NewDeck(initial={'user': request.user.id})
    context = {
        "user_list": user_list,
        "deck_list": deck_list,
        "clone_form": form,
        "sign": signer.sign(request.user.id),
        "query": query,
    }
    return render(request, 'flash_cards/search.html', context)
コード例 #10
0
ファイル: views.py プロジェクト: hammerface/My-Stuff
def View_Shared_Deck(request):
    signer = Signer(request.user.id)
    deck_id_signed = request.GET.get('deck_id')
    deck_id = None
    card_list = []
    username = ""
    user_id = None
    deck_name = ""
    form = NewDeck(initial={'user': request.user.id})
    try:
        deck_id = signer.unsign(deck_id_signed)
    except signing.BadSignature:
        print "Tampering Detected! View Shared Deck"
        return HttpResponseRedirect('/')
    cards = Card.objects.filter(deck_id=deck_id,
                                deleted_flag=0).order_by('-date_created')
    deck = Deck.objects.filter(deck_id=deck_id, deleted_flag=0)
    try:
        user_id = deck[0].user_id
        deck_name = deck[0].deck_name
        user = User.objects.filter(id=user_id)
        username = user[0].username
    except IndexError:
        username = ""
    for card in cards:
        card_list.append({
            "card_id": card.card_id,
            "front": card.front,
            "back": card.back,
        })
    context = {
        "username": username,
        "deck_name": deck_name,
        "card_list": card_list,
        "sign": signer.sign(request.user.id),
        "orig_deck_id": deck_id_signed,
        "clone_form": form
    }
    return render(request, 'flash_cards/view_shared_deck.html', context)