示例#1
0
文件: routes.py 项目: joaxkal/IMSE
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')
示例#2
0
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)
示例#3
0
文件: routes.py 项目: joaxkal/IMSE
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')
示例#4
0
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)
示例#5
0
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})	
示例#6
0
文件: routes.py 项目: joaxkal/IMSE
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')
示例#7
0
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)
示例#8
0
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)
示例#9
0
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)