def search(request): context = {} current_date = timezone.now() context['q'] = request.GET.get("q", None) context['page'] = request.GET.get("page", 1) if (len(context['q']) > 0): f1 = Q(publish=True) f2 = Q(publish_date__lte=current_date) f3 = Q(publish_date=None) f5 = Q(post_type="page") f6 = Q(title__icontains=context['q']) f7 = Q(post_type="post") f8 = Q(post_type="game") f9 = Q(post_type="game_engine") f10 = Q(post_type="video") context['posts'] = paginator( context['page'], PostItem.objects.filter(f1 & (f2 | f3) & f6 & f7).exclude(f5).order_by( "-publish_date", '-id')) else: context['posts'] = [] template_name = ['modules/%s/search.html' % 'search'] return TemplateResponse(request, template_name, context)
def tag_list(request): if request.method == 'POST': page = int(request.data.get('page',1)) posts = paginator( page, GlobalyTags.objects.all().order_by('-id'), 100 ) serializer = GlobalyTagsSerializer( posts, many=True, context={'request': request} ) next_page = 0 previous_page = 0 if posts.has_next(): next_page = posts.next_page_number() if posts.has_previous(): previous_page = posts.previous_page_number() return Response({ 'pages':posts.paginator.num_pages, 'items':serializer.data, 'next_page':next_page, 'previous_page':previous_page, })
def tags(request, slug=None, page=1, model=None): context = {} current_date = timezone.now() f1 = Q(publish=True) f2 = Q(publish_date__lte=current_date) f3 = Q(publish_date=None) f4 = Q(tags__slug=slug) f5 = Q(post_type="post") post_type = "post" context['slug'] = slug context['tag'] = get_object_or_404(GlobalyTags, slug=slug) context['posts'] = paginator( page, PostItem.objects.filter(f1 & (f2 | f3) & f4 & f5).order_by( "-publish_date", '-id')) template_name = [ #'modules/%s/autor-%d.html' % (post_type, model.id), 'modules/%s/tag-%s.html' % (post_type, context['tag']), 'modules/%s/tag.html' % post_type ] return TemplateResponse(request, template_name, context)
def search_list(request): if request.method == 'POST': query = request.data.get('query', None) page = int(request.data.get('page', 1)) post_type = request.data.get('post_type', 'post') f1 = Q() f4 = Q(post_type=post_type) if (query is not None): f1 = Q(title__icontains=query) posts = paginator(page, PostItem.objects.filter(f1 & f4).order_by('-id'), 100) serializer = PostItemSerializer(posts, many=True, context={'request': request}) next_page = 0 previous_page = 0 if posts.has_next(): next_page = posts.next_page_number() if posts.has_previous(): previous_page = posts.previous_page_number() return Response({ 'pages': posts.paginator.num_pages, 'items': serializer.data, 'next_page': next_page, 'previous_page': previous_page, }) return Response(status=status.HTTP_204_NO_CONTENT)
def category(request, slug=None, page=1, model=None): context = {} current_date = timezone.now() f1 = Q(publish=True) f6 = Q(slug=slug) if model is None: model = get_object_or_404(PostCategory, f1 & f6) f2 = Q(publish_date__lte=current_date) f3 = Q(publish_date=None) f4 = Q(categories__id=model.id) f5 = Q(post_type="post") context['category'] = model context['slug'] = slug context['page'] = int(page) context['posts'] = paginator( page, PostItem.objects.filter(f1 & (f2 | f3) & f4 & f5).order_by( "-publish_date", '-id')) template_name = [ 'modules/%s/category-%d.html' % (model.post_type, model.id), 'modules/%s/category-%s.html' % (model.post_type, slug), 'modules/%s/category.html' % model.post_type ] return TemplateResponse(request, template_name, context)
def post_list(request): if request.method == 'POST': page = int(request.data.get('page', 1)) post_type = request.data.get('post_type', 'post') f3 = Q(post_type=post_type) posts = paginator(page, PostItem.objects.filter(f3).order_by('-id'), 100) serializer = PostItemSerializer(posts, many=True, context={'request': request}) next_page = 0 previous_page = 0 if posts.has_next(): next_page = posts.next_page_number() if posts.has_previous(): previous_page = posts.previous_page_number() return Response({ 'pages': posts.paginator.num_pages, 'items': serializer.data, 'next_page': next_page, 'previous_page': previous_page, })
def get_recent_articles(context, limit=10, post_type="post"): page = context.get('page', 1) #lt for less than current_date = timezone.now() f1 = Q(publish=True) f2 = Q(publish_date__lte=current_date) f3 = Q(publish_date=None) f4 = Q(post_type=post_type) f5 = Q(is_on_feed=False) return paginator( page, PostItem.objects.filter(f1 & (f2 | f3) & f4).exclude(f5).order_by( "-publish_date", '-id'), limit)
def get_comments_ajax(request, id, page=1): post = get_object_or_404(PostItem, pk=int(id)) context = {'comments': []} for comment in paginator( page, Comments.objects.filter(target=post, status='published')): c = { 'logo': comment.autor.get_logo(64, 64), 'message': comment.comment, 'publish_date': comment.created.strftime("%Y-%m-%d %H:%M:%S"), 'modify_date': comment.modified.strftime("%Y-%m-%d %H:%M:%S"), 'level': comment.level, } context['comments'].append(c) return HttpResponse(json.dumps(context), content_type="application/json")
def get_recent_articles_by_tags(context, limit=4,post_type="post",tags_slug=None): page = context.get('page',1) #lt for less than current_date = timezone.now() f1 = Q(publish=True) f2 = Q(publish_date__lte=current_date) f3 = Q(publish_date=None) f4 = Q(post_type=post_type) f5 = Q(is_on_feed=True) f6 = Q(tags__slug=tags_slug) post = paginator( page, PostItem.objects.filter(f1 & (f2 | f3) & f4 & f5 & f6 ).order_by("-publish_date",'-id'), limit ) return post
def games_engines(request, slug=None, page=1, model=None): context = {} current_date = timezone.now() f1 = Q(publish=True) f2 = Q(publish_date__lte=current_date) f3 = Q(publish_date=None) f5 = Q(post_type="game_engine") context['slug'] = slug context['posts'] = paginator( page, PostItem.objects.filter(f1 & (f2 | f3) & f5).order_by( "-publish_date", '-id')) template_name = ['modules/%s/category.html' % 'game_engine'] return TemplateResponse(request, template_name, context)
def year_month_archive(request, year=None, month=None, page=1, model=None): context = {} current_date = timezone.now() f1 = Q(publish=True) f2 = Q(publish_date__lte=current_date) f3 = Q(publish_date=None) f5 = Q(post_type="post") f6 = Q(created__year=year) f7 = Q(created__month=month) context['year'] = year context['month'] = month context['posts'] = paginator( page, PostItem.objects.filter(f1 & (f2 | f3) & f5 & f6 & f7).order_by( "-publish_date", '-id')) template_name = ['archive-year-month.html'] return TemplateResponse(request, template_name, context)
def get_comments(request, id, page=1): post = get_object_or_404(PostItem, pk=int(id)) context = {'comments': []} for comment in paginator( page, Comments.objects.filter(target=post, status='published')): c = { 'logo': comment.autor.get_logo(64, 64), 'message': comment.comment, 'publish_date': comment.created.strftime("%Y-%m-%d %H:%M:%S"), 'modify_date': comment.modified.strftime("%Y-%m-%d %H:%M:%S"), } context['comments'].append(c) template_name = [ 'modules/comments/%s-post-%d.html' % (post.post_type, post.id), 'modules/comments/%s-post-%s.html' % (post.post_type, post.slug), 'modules/comments/%s-post.html' % post.post_type, 'modules/comments/comments.html' ] return TemplateResponse(request, template_name, context)
def order_list(request): if request.method == 'POST': page = int(request.data.get('page', 1)) media = paginator(page, Orders.objects.all(), 100) next_page = 0 previous_page = 0 if media.has_next(): next_page = media.next_page_number() if media.has_previous(): previous_page = media.previous_page_number() serializer = OrdersSerializer(media, many=True, context={'request': request}) return Response({ 'pages': media.paginator.num_pages, 'items': serializer.data, 'next_page': next_page, 'previous_page': previous_page, })
def get_game_articles(context,title=None, limit=10,post_type="post"): page = context.get('page',1) #lt for less than current_date = timezone.now() f6 = Q(title__icontains=title.lower()) f8 = Q(title__icontains=title) f7 = Q(content__icontains=title.lower()) f9 = Q(content__icontains=title) f1 = Q(publish=True) f2 = Q(publish_date__lte=current_date) f3 = Q(publish_date=None) f4 = Q(post_type=post_type) return paginator( page, PostItem.objects.filter(((f6 | f8) | (f9 | f7)) & f1 & (f2 | f3) & f4 ).order_by("-publish_date",'-id'), limit )
def tags_sub_tag(request, slug=None, sub_slug=None, page=1): context = {} current_date = timezone.now() f1 = Q(publish=True) f2 = Q(publish_date__lte=current_date) f3 = Q(publish_date=None) f5 = Q(categories__slug=sub_slug) f4 = Q(tags__slug__in=[slug]) context['slug'] = slug context['sub_slug'] = sub_slug context['posts'] = paginator( page, PostItem.objects.filter(f1 & (f2 | f3) & f4 & f5).order_by( "-publish_date", '-id')) post_type = 'post' template_name = [ #'modules/%s/autor-%d.html' % (post_type, model.id), 'modules/%s/tag.html' % post_type ] return TemplateResponse(request, template_name, context)