def new_post_mongo(): form = PostForm() if form.validate_on_submit(): loc_dict = record2dict(form.location.data) cat_dict = query2dict(form.category.data) post = { '_id': str(ObjectId()), 'title': form.title.data, 'content': form.content.data, 'location': { 'city': loc_dict['city'], 'postal_code': str(loc_dict['postal_code']) }, 'categories': [cat['name'] for cat in cat_dict], 'user_id': str(current_user._id), 'date_posted': datetime.now() } m_db.posts.insert_one(post) m_db.users.update_one({'_id': str(current_user._id)}, {'$push': { 'post_ids': post['_id'] }}) flash('Your post has been created!', 'success') return redirect(url_for('home_mongo')) return render_template('create_post.html', title='New Post', form=form, legend='New Post')
def makeoffer(request, post_id): userobj = request.user latest_post_list = Post.objects.filter(user=userobj).order_by('-id') postobj = Post.objects.filter(id=post_id)[:1].get() if request.method == 'POST': regform = RegistrationForm(request.POST) postform = PostForm(request.POST, request.FILES) offerform = OfferForm(request.POST) if offerform.is_valid(): offerobj = offerform.save(commit=False) offerobj.user = request.user offerobj.post = Post.objects.filter(id=post_id)[:1].get() offerobj.save() return redirect('/') elif regform.is_valid(): regform.save() return redirect('/') elif postform.is_valid(): obj = postform.save(commit=False) obj.user = request.user obj.image = postform.cleaned_data['image'] obj.save() postform.save_m2m() return redirect('/') else: postform = PostForm() regform = RegistrationForm() offerform = OfferForm() context = { 'regform': regform, 'postform': postform, 'offerform': offerform, 'posts': latest_post_list, 'postobj': postobj, } return login(request, context, template_name='marketplace/err.html') else: regform = RegistrationForm() postform = PostForm() offerform = OfferForm() context = { 'regform': regform, 'postform': postform, 'offerform': offerform, 'posts': latest_post_list, 'postobj': postobj, } return render(request, 'marketplace/offer.html', context)
def new_post(): form = PostForm() if form.validate_on_submit(): post = Post(title=form.title.data, content=form.content.data, location=form.location.data, category=form.category.data, author=current_user) db.session.add(post) db.session.commit() flash('Your post has been created!', 'success') return redirect(url_for('home')) return render_template('create_post.html', title='New Post', form=form, legend='New Post')
def userdetails(request, user_id): userobj = get_object_or_404(User, pk=user_id) user_latest_post = Post.objects.filter(user=userobj).order_by('-id') offers = Offer.objects.filter(post__in=user_latest_post).order_by('-id') myoffers = Offer.objects.filter(user=request.user, post__in=user_latest_post).order_by('-id') if request.method == 'POST': regform = RegistrationForm(request.POST) postform = PostForm(request.POST, request.FILES) if regform.is_valid(): regform.save() return redirect('/') elif request.user.is_authenticated(): if postform.is_valid(): obj = postform.save(commit=False) obj.user = request.user obj.image = postform.cleaned_data['image'] obj.save() postform.save_m2m() return redirect('/') else: postform = PostForm() regform = RegistrationForm() context = { 'userprofile': userobj, 'latest_posts': user_latest_post, 'regform': regform, 'postform': postform, 'offers': offers, 'myoffers': myoffers, } return login(request, context, template_name='marketplace/err.html') else: regform = RegistrationForm() postform = PostForm() context = { 'userprofile': userobj, 'latest_posts': user_latest_post, 'regform': regform, 'postform': postform, 'offers': offers, 'myoffers': myoffers, } return render(request, 'marketplace/user.html', context)
def addpost(request): form = PostForm(request.POST or None, request.FILES or None) user_id = request.session['USERZ'] user = User.objects.get(pk=user_id) all_posts = Posts.objects.all() if form.is_valid(): post = form.save(commit=False) post.user = user post.save() return render(request, 'marketplace/home.html', {'all_posts': all_posts,'loggeduser':user}) form2 = SearchForm(request.POST) queryTag = form2.save(commit=False) query = form2.cleaned_data["tag"] if query != '': return render(request, 'marketplace/search.html', {'all_posts':all_posts, 'query':query,'loggeduser':user, 'form':form2}) return render(request, 'marketplace/addpost.html', {'form':form, 'loggeduser':user,'form2':form2})
def update_post(post_id): post = Post.query.get_or_404(post_id) if post.author != current_user: abort(403) form = PostForm() if form.validate_on_submit(): post.title = form.title.data post.content = form.content.data post.location = form.location.data post.category = form.category.data db.session.commit() flash('Your post has been updated!', 'success') return redirect(url_for('post', post_id=post.id)) elif request.method == 'GET': form.title.data = post.title form.content.data = post.content form.location.data = post.location form.category.data = post.category return render_template('create_post.html', title='Update Post', form=form, legend='Update Post')
def tagresults(request, tag_name): postobj = Post.objects.filter(tags__name__in=[tag_name]).distinct() if request.method == 'POST': regform = RegistrationForm(request.POST) postform = PostForm(request.POST, request.FILES) if regform.is_valid(): regform.save() return redirect('/') elif request.user.is_authenticated(): if postform.is_valid(): obj = postform.save(commit=False) obj.user = request.user obj.image = postform.cleaned_data['image'] obj.save() postform.save_m2m() return redirect('/') else: postform = PostForm() regform = RegistrationForm() context = { 'query_item': tag_name, 'post': postobj, 'regform': regform, 'postform': postform, } return login(request, context, template_name='marketplace/err.html') else: regform = RegistrationForm() postform = PostForm() context = { 'query_item': tag_name, 'post': postobj, 'regform': regform, 'postform': postform, } return render(request, 'marketplace/results.html', context)
def photo(request, post_id): postobj = Post.objects.filter(id=post_id) if request.method == 'POST': regform = RegistrationForm(request.POST) postform = PostForm(request.POST, request.FILES) if regform.is_valid(): regform.save() return redirect('/') elif request.user.is_authenticated(): if postform.is_valid(): obj = postform.save(commit=False) obj.user = request.user obj.image = postform.cleaned_data['image'] obj.save() postform.save_m2m() return redirect('/') else: postform = PostForm() regform = RegistrationForm() context = { 'post': postobj, 'regform': regform, 'postform': postform, } return login(request, context, template_name='marketplace/err.html') else: regform = RegistrationForm() postform = PostForm() context = { 'post': postobj, 'regform': regform, 'postform': postform, } return render(request, 'marketplace/image.html', context)
def index(request): latest_post_list = Post.objects.all().order_by('-id') if request.user.is_authenticated(): offers = Offer.objects.filter(user=request.user) offers2 = Offer.objects.filter(post__in=Post.objects.filter( user=request.user).order_by('-id')) else: offers = None offers2 = None search = request.GET.get('query') page = request.GET.get('page') itemnum = request.GET.get('c') if search: latest_post_list = latest_post_list.filter( tags__name__in=[search]).distinct() paginator = Paginator(latest_post_list, 10) if itemnum: paginator = Paginator(latest_post_list, itemnum) if request.method == 'POST': regform = RegistrationForm(request.POST) postform = PostForm(request.POST, request.FILES) if regform.is_valid(): regform.save() return redirect('/') elif request.user.is_authenticated(): if postform.is_valid(): obj = postform.save(commit=False) obj.user = request.user obj.image = postform.cleaned_data['image'] obj.save() postform.save_m2m() return redirect('/') else: postform = PostForm() regform = RegistrationForm() context = { 'latest_post_list': latest_post_list, 'regform': regform, 'postform': postform, 'offers': offers, 'offers2': offers2, } return login(request, context, template_name='marketplace/err.html') else: postform = PostForm() regform = RegistrationForm() try: latest_post_list = paginator.page(page) except PageNotAnInteger: latest_post_list = paginator.page(1) except EmptyPage: latest_post_list = paginator.page(paginator.num_pages) context = { 'latest_post_list': latest_post_list, 'regform': regform, 'postform': postform, 'offers': offers, 'offers2': offers2, } return render(request, 'marketplace/index.html', context)