Exemplo n.º 1
0
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())
Exemplo n.º 2
0
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 })
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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 })
Exemplo n.º 5
0
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 })
Exemplo n.º 6
0
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 })
Exemplo n.º 7
0
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')})
Exemplo n.º 8
0
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})
Exemplo n.º 9
0
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})
Exemplo n.º 10
0
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 })
Exemplo n.º 11
0
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 })