예제 #1
0
    def render_to_response(self, context):
        """ Override render_to_response of view - if ajax then update pjax style! else normal render response."""
        logger.info('PjaxMixin, this is the render_to_response function call. The context: %s' % context)
        if self.request.is_ajax():
            logger.info('PjaxMixin, this is a ajax request.%s' % context)
            q = self.request.GET.get('q')


            # DSG BIG HACK
            marked = self.request.GET.get('editor')
            if marked == 'content-main':
                context.update({'editor_data': self.get_object().content_markdown})
            elif marked == 'content-code-examples':
                context.update({'editor_data': self.get_object().content_codeexamples})
            elif marked == 'content-demo':
                context.update({'editor_data': self.get_object().content_demo})
            elif marked == 'content-design-decisions':
                context.update({'editor_data': self.get_object().content_designdecisions})
            elif marked == 'content-further-learning':
                context.update({'editor_data': self.get_object().content_furtherlearning})
            elif marked == 'content-gotchas':
                context.update({'editor_data': self.get_object().content_gotchas})
            elif marked == 'content-tricks-tips':
                context.update({'editor_data': self.get_object().content_trickstips})


            if marked is not None:
                return render_to_resp( 'content/editor_update.html', context)
            else:
                context.update({'preview': q})
                return render_to_resp( self.ajax_template_name, context, context_instance = RequestContext(self.request, { 'pjax': self.request.META.get('HTTP_X_PJAX'),}), mimetype='application/javascript')
        else:
            logger.info('PjaxMixin, this is a normal request.')
            cards = PostCard.objects.filter(main_post=self.get_object())
            card_comments = []
            card_smiles = []
            for card in cards:
                no_of_comments = beautifyData(len(CommentCard.objects.filter(post=card)))
                card_comments.append(no_of_comments)
                no_of_likes = beautifyData(card.likes)
                card_smiles.append(no_of_likes)


            zipped_cards = zip(card_comments, card_smiles, cards)
            context.update({'cards': zipped_cards})


            print context
            return super(PostDetailView, self).render_to_response(context)
예제 #2
0
 def post_ajax(self, request, *args, **kwargs):
     logger.info('%s, this is the ajax_post function from %s' % (self.__class__.__name__, self.__module__))
     slug = self.kwargs['slug']
     model = PostCard.objects.get(slug=slug)
     model.views += 1
     model.save()
     return render_to_resp(self.ajax_template_name, {'card': model}, context_instance=RequestContext(request), mimetype='application/javascript')
예제 #3
0
    def post_ajax(self, request, *args, **kwargs):
        logger.info('%s, this is the get_ajax function from %s' % (self.__class__.__name__, self.__module__))
        slug = self.kwargs['slug']
        value = self.request.POST.get('value')
        card = PostCard.objects.get(slug=slug)
        user = '******'

        user_id = auth.get_user_model().objects.get(username=user).id
        print value, card, user_id
        com = CommentCard.objects.create(comment=value, post=card, author_id=user_id)
        com.save()
        # force save on card to update stats
        card.save()
        comments = CommentCard.objects.filter(post=card)
        shows = [True for x in xrange(0, len(comments))]
        # Create Flag and set True in hides array to for displaying more
        load_more = False
        if len(comments) > self.no_to_display: 
            load_more = True
            shows[0:self.no_to_display] = [False for x in xrange(0, self.no_to_display)]
        # zipped data
        zipped_cards = zip(shows, comments)
        data = {'comments': zipped_cards, 'load_more': load_more, 'card': card}
        print "hjhj"
        return render_to_resp(self.ajax_template_name, data, context_instance=RequestContext(request), mimetype='application/javascript')
예제 #4
0
 def render_to_response(self, context):
     """ Override render_to_response of view - if ajax then update pjax style! else normal render response."""
     logger.info('PjaxResponseMixin, this is the render_to_response function call. The context: %s' % context)
     if self.request.is_ajax():
         logger.info('PjaxResponseMixin, this is a ajax request')
         return render_to_resp( self.pjax_template_name, context, context_instance = RequestContext(self.request, { 'pjax': self.request.META.get('HTTP_X_PJAX'),}), content_type='application/javascript')
     else:
         logger.info('PjaxResponseMixin, this is a normal request')
         return super(PjaxResponseMixin, self).render_to_response(context)
예제 #5
0
 def post_ajax(self, request, *args, **kwargs):
     logger.info('%s, this is the ajax_post function from %s' % (self.__class__.__name__, self.__module__))
     slug = self.kwargs['slug']
     model = PostCard.objects.get(slug=slug)
     if not Liker.objects.filter(card_id=model.id, author_id=request.user.id).exists(): 
         model.likes += 1
         Liker.objects.create(card=model, author_id=request.user.id)
     else:
         return HttpResponseNotModified() # Not Modified 304 status code
     model.save()
     return render_to_resp(self.ajax_template_name, {'card': model}, context_instance=RequestContext(request), mimetype='application/javascript')
예제 #6
0
 def post(self, request, *args, **kwargs):
     logger.info('%s, this is the ajax_get function from %s' % (self.__class__.__name__, self.__module__))
     #self.object = self.get_object()
     #context = super(PostEditView, self).get_context_data(**kwargs)
     content = request.POST.get('foo')
     print request
     print request.POST
     print "content", content
     preview = cwmarkdown(content)
     print "preview", preview
     return HttpResponse(preview)
     return render_to_resp(self.template_name, context, context_instance=RequestContext(request), mimetype='application/javascript')
예제 #7
0
 def get_ajax(self, request, *args, **kwargs):
     logger.info('%s, this is the get_ajax function from %s' % (self.__class__.__name__, self.__module__))
     slug = self.kwargs['slug']
     card = PostCard.objects.get(slug=slug)
     comments = CommentCard.objects.filter(post=card)
     shows = [True for x in xrange(0, len(comments))]
     # Create Flag and set True in hides array to for displaying more
     load_more = False
     if len(comments) > self.no_to_display: 
         load_more = True
         shows[0:self.no_to_display] = [False for x in xrange(0, self.no_to_display)]
     # zipped data
     zipped_cards = zip(shows, comments)
     data = {'comments': zipped_cards, 'load_more': load_more, 'card': card}
     return render_to_resp(self.ajax_template_name, data, context_instance=RequestContext(request), mimetype='application/javascript')
예제 #8
0
    def post_ajax(self, request, *args, **kwargs):
        logger.info('%s, this is the ajax_post function from %s' % (self.__class__.__name__, self.__module__))
        q = self.request.POST.get('stat') # need to use a load 
        slug = self.kwargs['slug']
        model = PostCard.objects.get(slug=slug)
        if q == 'click':
            model.views += 1
        elif q == 'like':
            model.likes += 1

        model.save()

        likes = beautifyData(model.likes)
        views = beautifyData(model.views)
        data = {'card': model, 'clicks': views, 'likes': likes}
        return render_to_resp(self.template_name, data, context_instance=RequestContext(request), mimetype='application/javascript')
def show_genres(request):
    return render_to_resp("content/genres.html",
                          {'nodes':PostNode.objects.all()},
                          context_instance=RequestContext(request))
예제 #10
0
    def get_ajax(self, request, *args, **kwargs):
        logger.info('%s, this is the ajax_get function from %s' % (self.__class__.__name__, self.__module__))
        summary_stats = request.GET.get('summary_stats')
        
        input_placeholder = '' # if empty get template to not display input
        load_more_text = ''
        posts = None
        input_type = 'text'
        editable=True
        if summary_stats == 'updates':
            model = Post.objects.get(slug=kwargs['slug'])
            posts = Update.objects.filter(post=model)
            load_more_text = 'See more of Changelog'
            editable = False
        if summary_stats == 'dependencies':
            model = Post.objects.get(slug=kwargs['slug'])
            posts = Dependency.objects.filter(post=model)
            load_more_text = 'See more Dependencies'
            editable = False
        if summary_stats == 'issues':
            model = Post.objects.get(slug=kwargs['slug'])
            posts = Issue.objects.filter(post=model)
            input_placeholder = 'Search Issues'
            load_more_text = 'See more Issues'
            input_type = 'search'
        if summary_stats == 'troubleshooting':
            model = Post.objects.get(slug=kwargs['slug'])
            posts = Troubleshooting.objects.filter(post=model)
            input_placeholder = 'Search Troubleshooting'
            load_more_text = 'See more from Troubleshooting'
        if summary_stats == 'comments':
            model = Post.objects.get(slug=kwargs['slug'])
            posts = Comment.objects.filter(post=model, is_reply=False)
            input_placeholder = 'Say something nice/cynical'
            load_more_text = 'See more Comments'

        replyarray=[]
        for p in posts: 
            p.forceDateAgo()
            replyarray.append(len(Comment.objects.filter(reply=p)))


        array = []
        i = 0
        for p in posts:
            if i < 5:
                i = i + 1
                array.append(True)
            else:
                array.append(False)
        print array
        zipped = zip(array,replyarray, posts)


        context = super(PostTitleView, self).get_context_data(**kwargs)
        context.update({'input_placeholder': input_placeholder, 'load_more_text': load_more_text,
                        'posts': zipped,
                        'editable': editable,
                        'icon': 'fa fa-clock-o fa-2x',
                        'input_name': input_type, 'input_type': input_type, 
                        })

        return render_to_resp(self.template_name, context, context_instance=RequestContext(request), mimetype='application/javascript')