def comment(request, entry_id, template_name='blog/defaults/entry_detail.html'): try: entry = Entry.objects.get(pk=entry_id, visible=1, allow_comments=1, members_only__lte=request.user.is_authenticated(), created_at__lte=datetime.datetime.now()) except Entry.DoesNotExist: return blog_404() if request.POST and entry.allow_comments: if request.POST.has_key('comment_id'): comment = Comment.objects.get(pk=request.POST['comment_id']) if comment.posted_by == request.user or request.user.has_perm("blog.change_comment"): f = CommentForm(request.POST) if f.is_valid(): c = f.save(commit=False) comment.date_updated = datetime.datetime.now() comment.post = c.post comment.save() else: return render_with_context(request, template_name, {'title': entry.title, 'entry': entry, 'new_comment': f, 'comment_id': comment.id}) else: f = CommentForm(request.POST) if f.is_valid(): c = f.save(commit=False) if not hasattr(settings, 'BLOG_ALLOW_ANON_COMMENTS') or not settings.BLOG_ALLOW_ANON_COMMENTS: if not request.user.is_authenticated(): return HttpResponseRedirect(entry.get_absolute_url()) if request.user.is_authenticated(): c.posted_by = request.user c.posted_by_ip = request.META['REMOTE_ADDR'] c.entry_id = entry_id c.save() else: return render_with_context(request, template_name, {'title': entry.title, 'entry': entry, 'new_comment': f}) return HttpResponseRedirect(entry.get_absolute_url())
def archive_year(request, year, template_name='blog/defaults/default.html'): start = check_date(year, 1, 1) if not start: return blog_404() end = check_date(int(year)+1, 1, 1) entries, has_next, has_prev = determine_entries(request, start, end) return render_with_context(request, template_name, {'title': _('Archive: %(year)s') % {'year': year}, 'entries': entries, 'has_next': has_next, 'has_prev': has_prev })
def detail(request, entry_id, slug, template_name='blog/defaults/entry_detail.html', **kwargs): try: entry = Entry.objects.get(pk=entry_id, slug=slug, visible=1, members_only__lte=request.user.is_authenticated(), created_at__lte=datetime.datetime.now()) except Entry.DoesNotExist: return blog_404() f = None params = {'title': entry.title, 'entry': entry} if entry.allow_comments: if request.GET.has_key('edit'): comment_id = request.GET['edit'] try: comment = Comment.objects.get(pk=comment_id) if comment.posted_by == request.user or request.user.has_perm("blog.change_comment"): params['comment_id'] = comment_id f = CommentForm(instance=comment) except Comment.DoesNotExist: pass elif request.GET.has_key('delete'): comment_id = request.GET['delete'] try: comment = Comment.objects.get(pk=comment_id) if comment.posted_by == request.user or request.user.has_perm("blog.delete_comment"): comment.delete() except Comment.DoesNotExist: pass return HttpResponseRedirect(entry.get_absolute_url()) if f is None: if request.user.is_authenticated() or not hasattr(settings, 'BLOG_ALLOW_ANON_COMMENTS') or settings.BLOG_ALLOW_ANON_COMMENTS: f = CommentForm() params['new_comment'] = f return render_with_context(request, template_name, params)
def archive_day(request, year, month, day, template_name='blog/defaults/default.html'): start = check_date(year, month, day) if not start: return blog_404() end = check_date(year, month, int(day)+1) entries, has_next, has_prev = determine_entries(request, start, end) months = (_('January'), _('February'), _('March'), _('April'), _('May'), _('June'), _('July'), _('August'), _('September'), _('October'), _('November'), _('December')) return render_with_context(request, template_name, {'title': _('Archive: %(month)s %(day)s, %(year)s') % {'month': months[int(month)-1], 'day': day, 'year': year}, 'entries': entries, 'has_next': has_next, 'has_prev': has_prev })
def by_tag(request, tag_id, template_name='blog/defaults/default.html'): start = datetime.datetime.min end = datetime.datetime.now() try: tag = Tag.objects.get(pk=tag_id) except Tag.DoesNotExist: return blog_404() entries, has_next, has_prev = determine_entries(request, start, end, tag_id=tag_id) return render_with_context(request, template_name, {'title': _('Tag: %(tag)s') % {'tag': tag}, 'entries': entries, 'has_next': has_next, 'has_prev': has_prev })
def by_category(request, category_id, template_name='blog/defaults/default.html'): start = datetime.datetime.min end = datetime.datetime.now() try: category = EntryCategory.objects.get(pk=category_id) except EntryCategory.DoesNotExist: return blog_404() entries, has_next, has_prev = determine_entries(request, start, end, category_id=category_id) return render_with_context(request, template_name, {'title': _('Category: %(category)s') % {'category': category}, 'entries': entries, 'has_next': has_next, 'has_prev': has_prev })
def week_view(request, year, month, day, template_name='cal/defaults/week_view.html'): check_date(year, month, day) year = int(year) month = int(month) day = int(day) start = datetime.date(year, month, day) start = start + datetime.timedelta(days=-start.weekday()) end = start + datetime.timedelta(days=6) dayList = events_for_range(request, start, end) return render_with_context(request, template_name, {'days':dayList, 'year':year, 'month':month, 'day':day, 'title': _('Week View')})
def year_view(request, year, template_name='cal/defaults/year_view.html'): check_date(year, 1, 1) year = int(year) start = datetime.date(year, 1, 1) end = datetime.date(year+1, 1, 1) + datetime.timedelta(days=-1) dayList = events_for_range(request, start, end) months = (_('January'), _('February'), _('March'), _('April'), _('May'), _('June'), _('July'), _('August'), _('September'), _('October'), _('November'), _('December')) monthList = [] while len(monthList) < 12: day = dayList[0] day = datetime.date(day[0], day[1], day[2]) if day.month == 12: days = dayList else: endTemp = datetime.date(day.year, day.month+1, 1) + datetime.timedelta(days=-1) days = dayList[0:endTemp.day] del(dayList[0:endTemp.day]) monthList.append([months[day.month-1], day.weekday(), day.month, days_to_weeks(days)]) monthList = [monthList[0:4], monthList[4:8], monthList[8:12]] years = range(min(year-2,datetime.datetime.today().year-4),max(year+3,datetime.date.today().year+5)) return render_with_context(request, template_name, {'months': monthList,'year':year, 'years':years, 'title': _('Year View'), 'hide_page_title': True})
def month_view(request, year, month, template_name='cal/defaults/month_view.html'): year = int(year) month = int(month) if month < 1: year = year - 1 month = 12 if month > 12: year = year + 1 month = 1 check_date(year, month, 1) start = datetime.date(year, month, 1) if month == 12: end = datetime.date(year+1, 1, 1) + datetime.timedelta(days=-1) else: end = datetime.date(year, month+1, 1) + datetime.timedelta(days=-1) start = start + datetime.timedelta(days=-start.weekday()) end = end + datetime.timedelta(days=(6-end.weekday())) dayList = events_for_range(request, start, end) weeks = days_to_weeks(dayList) months = (_('January'), _('February'), _('March'), _('April'), _('May'), _('June'), _('July'), _('August'), _('September'), _('October'), _('November'), _('December')) years = range(min(year-2,datetime.datetime.today().year-4),max(year+3,datetime.date.today().year+5)) return render_with_context(request, template_name, {'weeks': weeks, 'year': year, 'month': month, 'years': years, 'months': months, 'title': _('Month View'), 'hide_page_title': True})
def day_view(request, year, month, day, template_name='cal/defaults/day_view.html'): check_date(year, month, day) dayList = events_for_range_split(request, year, month, day, year, month, day) return render_with_context(request, template_name, {'days':dayList, 'year':year, 'month':month, 'day':day, 'title': _('Day View'), 'hide_page_title': True })
def default(request, template_name='blog/defaults/default.html'): start = datetime.datetime.min end = datetime.datetime.now() entries, has_next, has_prev = determine_entries(request, start, end) return render_with_context(request, template_name, {'entries': entries, 'has_next': has_next, 'has_prev': has_prev })