示例#1
0
文件: views.py 项目: aroscoe/streams
def add_feed(request):
    if request.method == 'POST':
        feed_form = FeedForm(request.POST)
        
        if feed_form.is_valid():
            feed_form.save() # TODO: add listener to update live streams when a new feed is added
            response = {'status': 1}
        else:
            response = {'status': 0}
        
        return HttpResponse(json.dumps(response), mimetype='application/json')
    else:
        raise Http404
示例#2
0
    def post(self, request, *args, **kwargs):
        feed = Feeds.objects.get(id=kwargs.get('feed_id'))
        image = PicturesUser.objects.get(id=kwargs.get('image_id'))
        feed_form = FeedForm(request.POST, instance=feed)
        image_form = PicturesForm(data=request.POST,
                                  files=request.FILES,
                                  instance=image)

        if feed_form.is_valid() and image_form.is_valid():
            feed_form.save()
            image_form.save()

            serialize_feed = FeedSerialize(
                Feeds.objects.get(id=kwargs.get('feed_id'))).data
            image_new = PicturesUser.objects.get(id=kwargs.get('image_id'))
            serialize_feed['image'] = image_new.image.url
            serialize_feed['username'] = feed.user.username
            return JsonResponse(serialize_feed, safe=False)
示例#3
0
    def get_context_data(self, **kwargs):
        context = super(ViewPost, self).get_context_data(**kwargs)
        context['comment_data'] = Comments.objects.filter(
            post_id=context.get('feeds').id)
        context['comment_form'] = CommentForm()
        context['search_form'] = SearchForm()
        context['user_data'] = self.request.user
        context['current_user'] = self.request.user
        context['feed_form'] = FeedForm()
        context['picture_form'] = PicturesForm()

        return context
示例#4
0
def feededit(request, pk):
    feed = Feed.objects.get(pk=pk)
    if request.method == 'POST':
        form = FeedForm(request.POST, instance=feed)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(
                reverse('feed:myposts', args=(feed.user_id, )))
    else:
        form = FeedForm(instance=feed)

    return render(request, 'feed/feedit.html', {'form': form})
示例#5
0
def feed(request):
    if request.method == 'POST':
        form = FeedForm(request.POST)
        if form.is_valid():
            s_tags = form.cleaned_data['tags']
            feed = form.save(commit=False)
            feed.moderator = request.user
            # for tag in s_tags:
            #     feed.tags.add(tag)
            feed.save()
            form.save_m2m()
            feed.initclasses()
            return HttpResponseRedirect('/')
    else:
        form = FeedForm()
    return render(request, 'feeds/feed.html', {'form': form})
示例#6
0
def feedview(request):
    obj = Feed.objects.all()
    page = request.GET.get('page', 1)
    paginator = Paginator(obj, 5)

    # commlist =
    try:
        pages = paginator.page(page)
    except PageNotAnInteger:
        pages = paginator.page(1)
    except EmptyPage:
        pages = paginator.page(paginator.num_pages)
    # Validating the Feed Post Data and Comment Data
    if request.method == 'POST':
        form = FeedForm(request.POST, request.FILES)
        comment = CommentForm(request.POST)
        like = LikeForm(request.POST)
        # Feed object
        if request.POST.get('items_id'):
            feed_obj = Feed.objects.get(pk=request.POST.get('items_id'))
            already_liked = feed_obj.like_set.filter(
                user=request.user) and True or False
        # Feed Form Data
        if form.is_valid():
            feed = form.save(commit=False)
            feed.user = request.user
            feed.save()
            return HttpResponseRedirect(reverse('feed:feed'))
            # return HttpResponse('Am I here..')
        # Comment Form Data
        elif comment.is_valid():
            comment = comment.save(commit=False)
            comment.feed = feed_obj
            comment.user = request.user
            comment.save()
            return HttpResponseRedirect(reverse('feed:feed'))
        # Like Form Data
        elif like.is_valid() and already_liked == False:
            like_model = like.save(commit=False)
            like_model.like = like.cleaned_data['like']
            like_model.user = request.user
            like_model.post = feed_obj
            like_model.save()
            return HttpResponseRedirect(reverse('feed:feed'))
        else:
            return HttpResponseRedirect(reverse('feed:feed'))
            # return HttpResponse('Am I here.. ?')
    else:
        form = FeedForm()
        comment = CommentForm()
        # like = LikeForm()
    return render(request, 'feed/feed.html', locals())
示例#7
0
    def post(self, request, *args, **kwargs):
        caption = FeedForm(request.POST)
        image = PicturesForm(data=request.POST, files=request.FILES)

        if caption.is_valid() and image.is_valid():
            caption = caption.save(commit=False)
            image = image.save(commit=False)
            image.user_id = request.user.id
            image.save()
            caption.user_id = request.user.id
            caption.images_id = image.id
            caption.save()
            serialize = FeedSerialize(caption)
            new_post = serialize.data
            new_post['username'] = caption.user.username
            new_post['image'] = caption.images.image.url
            new_post['image_id'] = image.id
            try:
                new_post['prof_pic'] = caption.user.account.prof_pic.url
                return JsonResponse(new_post, safe=False)
            except:
                return JsonResponse(new_post, safe=False)
示例#8
0
def feed(request):
    luser = request.user
    feed = Feed.objects.filter(
        Q(Q(user__friends__freq_usr=luser) | Q(user__friends__freq_accp=luser),
          user__friends__friends='Yes') | Q(user=luser)).distinct()
    feed_form = FeedForm()
    comment_form = CommentsForm()
    page = request.GET.get('page', 1)
    paginator = Paginator(feed, 5)
    # print('stage 1')
    try:
        page_obj = paginator.page(page)

    except PageNotAnInteger:
        page_obj = paginator.page(1)

    except EmptyPage:
        page_obj = paginator.page(paginator.num_pages)

    if request.method == 'POST':
        feed_form = FeedForm(request.POST, request.FILES)
        request_data = (request.FILES.get('image', False)
                        or request.FILES.get('video', False)
                        or request.POST.get('post_info', False))
        # print(request.FILES.get('image',False) or request.FILES.get('video', False) or request.POST.get('post_info',False))
        # print(request.POST.get('video', False ), request_data)
        if feed_form.is_valid() and request_data != False:
            # if len(feed_form.cleaned_data['post_info']) > 0:
            feed_obj = feed_form.save(commit=False)
            feed_obj.user = request.user
            feed_obj.save()
            # print('success')
            return HttpResponseRedirect(reverse('feed:feed'))
        else:
            print(feed_form.errors)

    return render(request, 'feed/feed.html', locals())
示例#9
0
 def test_feed_form_is_invalid(self):
     form = FeedForm(self.data)
     self.assertFalse(form.is_valid())
示例#10
0
 def test_feed_form_is_valid(self):
     # self.data.update(image)
     # print(self.data)
     form = FeedForm(self.data, self.image)
     # print(form.errors)
     self.assertTrue(form.is_valid())
示例#11
0
 def test_feed_form_has_fields(self):
     form = FeedForm()
     expected = ['post_info', 'image']
     actual = list(form.fields)
     self.assertSequenceEqual(expected, actual)
示例#12
0
class FeedsView(TemplateView):
    """
	Feeds View
	GET - render template, send context data
	POST - return json response to display recently added comments

	"""
    template_name = 'feed/users_page.html'
    comment_form = CommentForm()
    feed_form = FeedForm()
    picture_form = PicturesForm()
    search_form = SearchForm()

    def get(self, request, *args, **kwargs):
        followers = Followers.objects.filter(
            follow=True,
            follower_username=request.user.username).values('followed_user_id')

        feed_data = Feeds.objects.filter(
            user_id__in=followers, archived=False) | Feeds.objects.filter(
                user_id=request.user.id, archived=False)

        comment_data = Comments.objects.filter(
            post_id__in=feed_data.values('id'))

        feed_data._result_cache = None

        comment_data._result_cache = None

        package = {
            'feed_data': feed_data.order_by('-id'),
            'comment_data': comment_data,
            'user_data': request.user,
            'comment_form': self.comment_form,
            'feed_form': self.feed_form,
            'picture_form': self.picture_form,
            'search_form': self.search_form,
            'current_user': self.request.user,
        }

        return render(request, self.template_name, package)

    def post(self, request, *args, **kwargs):
        form = CommentForm(self.request.POST)

        feed = Feeds.objects.get(id=kwargs.get('feed_id'))

        if form.is_valid():

            comment = form.save(commit=False)
            comment.post_id = feed.id
            comment.user_id = self.request.user.id
            comment.save()
            comment.refresh_from_db()

            serializer = CommentSerialize(Comments.objects.get(id=comment.id))
            serialized = serializer.data
            serialized['username'] = comment.user.username
            serialized['current_user'] = request.user.username

            return JsonResponse(serialized, safe=False)