def add_new_pin(request): context = {'error':''} if not request.user.is_authenticated(): context = {'error':'You need to login first!'} return render(request, 'login.html', context) curr_user = User.objects.get(username=request.user) boards = Board.objects.filter(user= curr_user) if len(boards)<1: context = {'error':'You do not have any boards => Please create a board!'} # return redirect('addboard') context = {'boardContent':'1','boards':boards} if (not request.POST): return render(request,'addpin.html', context) description = strip_tags(request.POST.get('description')) if not description: context = {'error':'Please enter a description for your pin!','boardContent':'1','boards':boards} return render(request, 'addpin.html', context) board = request.POST.get('board') if not board: context = {'error':'You need to specify a board','boardContent':'1','boards':boards} return render(request, 'uploadpin.html', context) link = strip_tags(request.POST.get('link')) if not link: # Add this as a text note # pin = Pin(data_type='text', num_likes=1, data_text=description) else: pin = Pin(data_type='media', num_likes=1, data_local=link, data_text=description) try: fd = urllib.urlopen(link) except: context = {'error':'Please input a valid url!','boardContent':'1','boards':boards} return render(request, 'addpin.html', context) if not ( str(link).endswith('.png') or str(link).endswith('.jpg') or str(link).endswith('.gif') ): context = {'error':'Image type not supported.','boardContent':'1','boards':boards} return render(request, 'addpin.html', context) try: curr_user = User.objects.get(username=request.user.username) curr_board = Board.objects.get(pk=board); curr_user_details = UserDetails.objects.get(user=curr_user) curr_user_details.num_pins = curr_user_details.num_pins + 1 curr_user_details.save() pin = Pin(data_type='image', num_likes=1, user=curr_user, board_title=curr_board.title, data_local = link, data_text=description) pin.save() pin.board.add(curr_board) except: context = {'error':'Url length exceeded.!','boardContent':'1','boards':boards} return render(request, 'addpin.html', context) return redirect('personal')
def upload_new_pin(request): context = {'error':''} if not request.user.is_authenticated(): context = {'error':'You need to login first!'} return render(request, 'login.html', context) curr_user = User.objects.get(username=request.user) boards = Board.objects.filter(user= curr_user) if len(boards)<1: context = {'error':'You do not have any boards => Please create a board!'} #return redirect('addboard') context = {'boardContent':'1','boards':boards} if (not request.POST): return render(request,'uploadpin.html',context) # get description fromm form check description validity description = strip_tags(request.POST.get('description')) if not description: context = {'error':'Please enter a description for your pin!','boardContent':'1','boards':boards} return render(request, 'uploadpin.html', context) # get the board to get to board = request.POST.get('board') if not board: context = {'error':'You need to specify a board','boardContent':'1','boards':boards} return render(request, 'uploadpin.html', context) # get the uploaded file uploaded_file = request.FILES.get('pinfile') if (uploaded_file.size>(10**6)): context = {'error':'BoardShare does not permit Pin sizes over 1MB - Sorry!','boardContent':'1','boards':boards} return render(request, 'uploadpin.html', context) # if the image file cannot be open, then it is not a valid image; image is stored in media root try: im = PImage.open( uploaded_file ) except: context = {'error':'Uploaded File is not a valid image type - Please Try Again!','boardContent':'1','boards':boards} return render(request, 'uploadpin.html', context) # update userdetail with number of pins curr_user = User.objects.get(username=request.user.username) curr_board = Board.objects.get(pk=board); curr_user_details = UserDetails.objects.get(user=curr_user) curr_user_details.num_pins = curr_user_details.num_pins + 1 curr_user_details.save() ## move pin to static folder for rendering ## pin = Pin(data_type='uploaded_image', num_likes=1, user=curr_user, board_title=curr_board.title, data_local = uploaded_file, data_text=description) pin.save() pin.board.add(curr_board) return redirect('personal')