def blog_month(request, blog_slug, year, month, page_no=1, blog_root=None): page_no = int(page_no) year = int(year) month = int(month) blog = get_channel_or_blog(blog_slug) blog_root = blog_root or blog.get_absolute_url() try: start_date = datetime(year, month, 1) year_end = year next_month = month + 1 if next_month == 13: next_month = 1 year_end += 1 end_date = datetime(year_end, next_month, 1) except ValueError: raise Http404 title = blog.title posts = blog.posts().filter(display_time__gte=start_date, display_time__lt=end_date).select_related() if not posts.count(): raise Http404 archives = tools.collate_archives(blog, blog_root) def get_page_url(page_no, num_pages): if page_no < 1 or page_no > num_pages: return "" if page_no == 1: return "%s%i/%i/" % (blog_root, year, month) # return reverse("blog_month", kwargs = dict(blog_slug=blog_slug, year=year, month=month, blog_root=blog_root)) else: return "%s%i/%i/page/%i/" % (blog_root, year, month, page_no) td = get_blog_list_data(request, posts, get_page_url, page_no) sections = blog.description_data.get("sections", None) td.update( dict( blog_root=blog_root, blog=blog, sections=sections, title=title, page_title=title, tagline=blog.tagline, archives=archives, archive_month=month, archive_year=year, ) ) sections = extendedmarkup.process(sections, td) return render_to_response(blog.get_template_names("month.html"), td, context_instance=RequestContext(request))
def blog_month(request, blog_slug, year, month, page_no=1, blog_root=None): page_no = int(page_no) year = int(year) month = int(month) blog = get_channel_or_blog(blog_slug) blog_root = blog_root or blog.get_absolute_url() try: start_date = datetime(year, month, 1) year_end = year next_month = month + 1 if next_month == 13: next_month = 1 year_end += 1 end_date = datetime(year_end, next_month, 1) except ValueError: raise Http404 title = blog.title posts = blog.posts().filter(display_time__gte=start_date, display_time__lt=end_date).select_related() if not posts.count(): raise Http404 archives = tools.collate_archives(blog, blog_root) def get_page_url(page_no, num_pages): if page_no < 1 or page_no > num_pages: return "" if page_no == 1: return "%s%i/%i/"%(blog_root, year, month) #return reverse("blog_month", kwargs = dict(blog_slug=blog_slug, year=year, month=month, blog_root=blog_root)) else: return "%s%i/%i/page/%i/"%(blog_root, year, month, page_no) td = get_blog_list_data(request, posts, get_page_url, page_no) sections = blog.description_data.get('sections', None) td.update( dict( blog_root = blog_root, blog = blog, sections = sections, title = title, page_title = title, tagline = blog.tagline, archives = archives, archive_month = month, archive_year = year) ) sections = extendedmarkup.process(sections, td) return render_to_response(blog.get_template_names("month.html"), td, context_instance=RequestContext(request))
def blog_front(request, blog_slug="", page_no=1, blog_root=None): s = request.GET.get("s") if s: return HttpResponseRedirect(reverse("blog_search", kwargs=dict(blog_slug=blog_slug)) + "?s=" + s) page_no = int(page_no) if page_no < 1: raise Http404 blog = get_channel_or_blog(blog_slug) blog_root = blog_root or blog.get_absolute_url() title = blog.title posts = blog.posts().select_related() # archives = tools.collate_archives(blog) def get_page_url(page_no, num_pages): if page_no < 1 or page_no > num_pages: return "" if page_no == 1: return blog_root else: return "%spage/%i/" % (blog_root, page_no) td = get_blog_list_data(request, posts, get_page_url, page_no) sections = blog.description_data.get("sections", None) feeds = [blog.get_feed()] td.update( dict( blog_root=blog_root, blog=blog, title=title, page_title=title, tagline=blog.tagline, # archives = archives, sections=sections, feeds=feeds, ) ) sections = extendedmarkup.process(sections, td) return render_to_response(blog.get_template_names("index.html"), td, context_instance=RequestContext(request))
def blog_front(request, blog_slug="", page_no=1, blog_root=None): s = request.GET.get('s') if s: return HttpResponseRedirect(reverse('blog_search', kwargs=dict(blog_slug=blog_slug))+'?s='+s) page_no = int(page_no) if page_no < 1: raise Http404 blog = get_channel_or_blog(blog_slug) blog_root = blog_root or blog.get_absolute_url() title = blog.title posts = blog.posts().select_related() #archives = tools.collate_archives(blog) def get_page_url(page_no, num_pages): if page_no < 1 or page_no > num_pages: return "" if page_no == 1: return blog_root else: return "%spage/%i/" % (blog_root, page_no) td = get_blog_list_data(request, posts, get_page_url, page_no) sections = blog.description_data.get('sections', None) feeds = [blog.get_feed()] td.update( dict( blog_root = blog_root, blog = blog, title = title, page_title = title, tagline = blog.tagline, #archives = archives, sections = sections, feeds = feeds) ) sections = extendedmarkup.process(sections, td) return render_to_response(blog.get_template_names("index.html"), td, context_instance=RequestContext(request))
def tag(request, blog_slug, tag_slug, page_no=1, blog_root=None): page_no = int(page_no) if page_no < 1: raise Http404 blog = get_channel_or_blog(blog_slug) blog_root = blog_root or blog.get_absolute_url() try: tag = blog.get_tag(tag_slug) except models.Tag.DoesNotExist: raise Http404 title = blog.title posts = tag.posts() paginator = Paginator(posts, 10) if page_no > paginator.num_pages: raise Http404 page = paginator.page(page_no) posts = page.object_list def get_page_url(page_no): if page_no < 1 or page_no > paginator.num_pages: return "" if page_no == 1: return "%stag/%s/" % (blog_root, tag_slug) else: return "%stag/%s/page/%i/" % (blog_root, tag_slug, page_no) newer_page_url = get_page_url(page_no - 1) older_page_url = get_page_url(page_no + 1) sections = extendedmarkup.combine_sections( blog.description_data.get("sections", None), tag.description_data.get("sections", None) ) feeds = [tag.get_feed()] td = dict( blog_root=blog_root, blog=blog, tag=tag, title=title, page_title=title, tagline=blog.tagline, # archives = archives, page=page, page_no=page_no, posts=posts, sections=sections, older_page_url=older_page_url, newer_page_url=newer_page_url, feeds=feeds, ) sections = extendedmarkup.process(sections, td) return render_to_response(blog.get_template_names("tag.html"), td, context_instance=RequestContext(request))
def blog_post(request, blog_slug, year, month, day, slug, blog_root=None): blog = get_channel_or_blog(slug=blog_slug) blog_root = blog_root or blog.get_absolute_url() year = int(year) month = int(month) day = int(day) post_day_start = datetime(year, month, day) post_day_end = post_day_start + timedelta(days=1) if post_day_start > datetime.now(): raise Http404 if request.user.is_anonymous(): post = get_object_or_404( models.Post, display_time__gte=post_day_start, display_time__lt=post_day_end, slug=slug, version="live", published=True, ) else: post = get_object_or_404( models.Post, display_time__gte=post_day_start, display_time__lt=post_day_end, slug=slug, version="live", version_id=None, ) is_preview = False if "version" in request.GET and not request.user.is_anonymous(): version = request.GET.get("version") if not post.version_exists(version): raise Http404 post = post.get_version(version) is_preview = True if not request.user.is_anonymous() and request.GET.has_key("clearcache"): invalidate_cache(post) sections = extendedmarkup.combine_sections( blog.description_data.get("sections", None), post.content_data.get("sections", None) ) prev_post = None next_post = None try: prev_post = blog.posts().filter(published=True, display_time__lt=post.display_time).order_by("-display_time")[0] except IndexError: pass try: next_post = blog.posts().filter(published=True, display_time__gt=post.display_time).order_by("display_time")[0] except IndexError: pass tags = list(post.tags.all().order_by("slug")) # tags.sort(key = lambda t:t.name.lower()) td = dict( blog_root=blog_root, blog=blog, year=year, month=month, day=day, post=post, prev_post=prev_post, next_post=next_post, page_title=post.title, tagline=post.blog.title, tags=tags, sections=sections, user=request.user, is_preview=is_preview, ) sections = extendedmarkup.process(sections, td) return render_to_response( blog.get_template_names("entry.html", [post.template_path]), td, context_instance=RequestContext(request) )
def tag(request, blog_slug, tag_slug, page_no=1, blog_root=None): page_no = int(page_no) if page_no < 1: raise Http404 blog = get_channel_or_blog(blog_slug) blog_root = blog_root or blog.get_absolute_url() try: tag = blog.get_tag(tag_slug) except models.Tag.DoesNotExist: raise Http404 title = blog.title posts = tag.posts() paginator = Paginator(posts, 10) if page_no > paginator.num_pages: raise Http404 page = paginator.page(page_no) posts = page.object_list def get_page_url(page_no): if page_no < 1 or page_no > paginator.num_pages: return "" if page_no == 1: return "%stag/%s/"%(blog_root, tag_slug) else: return "%stag/%s/page/%i/" % (blog_root, tag_slug, page_no) newer_page_url = get_page_url(page_no - 1) older_page_url = get_page_url(page_no + 1) sections = extendedmarkup.combine_sections( blog.description_data.get('sections', None), tag.description_data.get('sections', None) ) feeds = [tag.get_feed()] td = dict(blog_root = blog_root, blog = blog, tag = tag, title = title, page_title = title, tagline = blog.tagline, #archives = archives, page = page, page_no = page_no, posts = posts, sections = sections, older_page_url = older_page_url, newer_page_url = newer_page_url, feeds = feeds) sections = extendedmarkup.process(sections, td) return render_to_response(blog.get_template_names("tag.html"), td, context_instance=RequestContext(request))
def blog_post(request, blog_slug, year, month, day, slug, blog_root=None): blog = get_channel_or_blog(slug=blog_slug) blog_root = blog_root or blog.get_absolute_url() year = int(year) month = int(month) day = int(day) post_day_start = datetime(year, month, day) post_day_end = post_day_start + timedelta(days=1) if post_day_start > datetime.now(): raise Http404 if request.user.is_anonymous(): post = get_object_or_404(models.Post, display_time__gte=post_day_start, display_time__lt=post_day_end, slug=slug, version='live', published=True) else: post = get_object_or_404(models.Post, display_time__gte=post_day_start, display_time__lt=post_day_end, slug=slug, version='live', version_id=None) is_preview = False if 'version' in request.GET and not request.user.is_anonymous(): version = request.GET.get('version') if not post.version_exists(version): raise Http404 post = post.get_version(version) is_preview = True if not request.user.is_anonymous() and request.GET.has_key('clearcache'): invalidate_cache(post) sections = extendedmarkup.combine_sections( blog.description_data.get('sections', None), post.content_data.get('sections', None) ) prev_post = None next_post = None try: prev_post = blog.posts().filter(published=True, display_time__lt=post.display_time).order_by('-display_time')[0] except IndexError: pass try: next_post = blog.posts().filter(published=True, display_time__gt=post.display_time).order_by('display_time')[0] except IndexError: pass tags = list(post.tags.all().order_by('slug')) #tags.sort(key = lambda t:t.name.lower()) td = dict( blog_root = blog_root, blog=blog, year=year, month=month, day=day, post=post, prev_post=prev_post, next_post=next_post, page_title = post.title, tagline = post.blog.title, tags = tags, sections = sections, user = request.user, is_preview = is_preview ) sections = extendedmarkup.process(sections, td) return render_to_response(blog.get_template_names("entry.html", [post.template_path]), td, context_instance=RequestContext(request))