def generate_meta_response(value, post): # output the original author if it exists result = '' if post.original_author: repost_count = str(Post.objects(original_id=post.original_id,original_author=post.original_author).count()) result += '<span class="repost_count">'+repost_count+'</span> <span class="repost_info">Originally posted by <a href="/user/'+str(post.original_author.id)+'">'+post.original_author.full_name+'</a></span>' return result
def postplan_update_view(request,*args,**kwargs): year=kwargs.get('year') month=kwargs.get('month') day=kwargs.get('day') slug=kwargs.get('slug') post=Post.objects(slug=slug).first() if request.method=="POST": form=PlanForm(request.POST) if form.is_valid(): ending=form.cleaned_data['ending'] starting=form.cleaned_data['starting'] title=form.cleaned_data['title'] transport=form.cleaned_data['transport'] cost=form.cleaned_data['cost'] content=form.cleaned_data['content'] plan=PostPlan(title=title,transport=transport,cost=cost,content=content) plan.save() plan.starting=datetime.combine(date(year=year,month=month,day=day),starting) plan.ending=datetime.combine(date(year=year,month=month,day=day),ending) plan.save() post.postplans.append(plan.number) post.save() return HttpResponseRedirect(reverse('plan-create',kwargs={'slug':slug,'year':year,'month':month,'day':day})) else: plan=PostPlan.objects(number=kwargs.get('pk')).first() form=PlanForm() return render(request,'plans/plan_update.html',{'plan':plan,'form':form})
def get_object(self): try: post = Post.objects(id=self.kwargs['id'])[0] except IndexError: raise Http404 self.check_object_permissions(self.request, post) return post
def get_day_number(self): year=self.kwargs.get('year') month=self.kwargs.get('month') day=self.kwargs.get('day') today=datetime.date(year=int(year),month=int(month),day=int(day)) post=Post.objects(slug=self.kwargs.get('slug')).first() diff=today-post.arrival.date() day=diff.days return day
def list(self, request, *args, **kwargs): if request.GET.get('author_id'): ds = self.get_serializer_class()(Post.objects(author=ObjectId( request.GET.get('author_id'))).order_by('-created_at'), many=True) else: ds = self.get_serializer_class()( self.get_queryset().order_by('-created_at'), many=True) return Response(ds.data)
def get_queryset(self,*args,**kwargs): post=Post.objects(slug=kwargs.get('slug')).first() today=datetime.date(year=kwargs.get('year'),month=kwargs.get('month'),day=kwargs.get('day')) diff=today-post.arrival.date() day=diff.days if self.object: self.object.day=day post.plans.append(self.object) post.save() return self.object
def update(request): if check_key(request): user = get_api(request) if request.method == 'POST': post = Post.objects(id=request.POST.get('post_id'), author=user).first() post.update_by_pattern(request) return HttpResponseRedirect('/post/'+str(post.id)) else: return HttpResponseRedirect('/yours') else: return HttpResponseRedirect('/dashboard')
def get_context_data(self,*args,**kwargs): self.context=super(PlanCreateView,self).get_context_data(*args,**kwargs) context=self.context post=Post.objects(slug=self.kwargs.get('slug')).first() context['plans']=post.postplans context['post']=post if self.get_day_number()!=0: context['day_number']=self.get_day_number()+1 context['back_day_url']=reverse('plan-create',kwargs={'slug':self.kwargs.get('slug'),'year':self.kwargs.get('year'),'month':self.kwargs.get('month'),'day':int(self.kwargs.get('day'))-1}) elif self.get_day_number()==0: context['day_number']=1 return context
def edit(request, post_id): """ edit a post """ if check_key(request): user = get_api(request) post = Post.objects(id=post_id).first() tags = ', '.join(post.tags) return render_to_response('posts/edit.html', { 'post' : post, 'tags' : tags, }, context_instance=RequestContext(request)) else: return HttpResponseRedirect('/dashboard')
def show(request, post_id): """ load single post """ post = [Post.objects(id=post_id).first()] if check_key(request): user = get_api(request) else: user = None return render_to_response('posts/show.html', { 'posts' : post, 'user' : user, }, context_instance=RequestContext(request))
def repost(request, post_id): """ repost a user's post """ if check_key(request): user = get_api(request) post = Post.objects(id=post_id).first() if user != post.author: repost = post.save_repost(request.session['profile']) if repost: return HttpResponseRedirect('/post/'+str(repost.id)) else: return HttpResponseRedirect('/dashboard') else: return HttpResponseRedirect('/dashboard') else: return HttpResponseRedirect('/dashboard')
def delete(request, post_id): """ delete an existing post, and tag count """ if check_key(request): try: post = Post.objects(author=request.session['profile'], id=post_id).first() if post: for tag in post.tags: tag_exist = Tag.objects(name=tag.lower()).first() if tag_exist: total_count = tag_exist.total_count - 1 tag_exist.total_count = total_count tag_exist.save() post.delete() except: return HttpResponseRedirect('/yours') return HttpResponseRedirect('/yours')
def get_queryset(self): post=Post.objects(slug=self.kwargs.get('slug')).first() return post
from mongoengine import connect from posts.models import Post from flask_mongoengine import MongoEngine db = MongoEngine() ''' class Post(db.Document): title = db.StringField(required=True) tag = db.StringField(max_length=25) text = db.StringField() urls = db.ListField(db.StringField()) posted = db.DateTimeField(default=datetime.datetime.now) def __repr__(self): return f"Post {self.title}" ''' connect(db='testdb', host=MONGO_URI) for post in Post.objects(): print(post.text) ''' Post( title='Engine test', tag='pytest', text='Hello Everyone!', urls= ['https://sun6-14.userapi.com/c855128/v855128189/10f4b2/J977kYyDEag.jpg', 'https://sun9-45.userapi.com/c855128/v855128189/10f478/yH9fX5eBFOA.jpg'], ).save() '''
def post_by_follower_tag(user, tag): # has the user tagged with this tag? post = Post.objects(tags=tag.name, author__in=user.follows).first() if post: return "someone you follow tagged a post with this" return ""
def post_by_your_tag(user, tag): # has the user tagged with this tag? post = Post.objects(tags=tag.name, author=user).first() if post: return "you tagged a post with this" return ""