Exemplo n.º 1
0
def post_detail(request, slug, year, month, day, **kwargs):
    '''
    Displays post detail. If user is superuser, view will display 
    unpublished post detail for previewing purposes.
    
    '''
    if request.user.is_superuser:
        return date_based.object_detail(
            request,
            year = year,
            month = month,
            day = day,
            date_field = 'publish',
            slug = slug,
            queryset = Post.objects.all(),
            **kwargs
        )
    else:
        return date_based.object_detail(
            request,
            year = year,
            month = month,
            day = day,
            date_field = 'publish',
            slug = slug,
            queryset = Post.objects.published(),
            **kwargs
        )
Exemplo n.º 2
0
def article_detail(request, year, month, day, object_id):
    kwargs = {
        'queryset': Article.objects.published(),
        'date_field': 'publish_at',
        'month_format': '%m',
    }
    return date_based.object_detail(request, year=year, month=month, day=day, object_id=object_id, **kwargs)
Exemplo n.º 3
0
def post_details(request, year, month, day, slug):
    if request.user.is_authenticated():
        commentformclass = forms.SimpleCommentForm
    else:
        commentformclass = forms.CommentForm
    def _get_remote_ip(request):
        try:
            return request.META['HTTP_X_FORWARDED_FOR']
        except KeyError:
            return request.META['REMOTE_ADDR']
    date_field = 'post_date'
    queryset = models.Post.objects.filter(slug=slug)
    tags = Tag.objects.all()
    comment_form = commentformclass()
    if request.method == 'POST':
        comment_form = commentformclass(request.POST)
        if comment_form.is_valid():
            comment = comment_form.save(commit=False)
            comment.post = models.Post.objects.get(slug=slug)
            comment.ip_address = _get_remote_ip(request)
            if request.user.is_authenticated():
                comment.user = request.user
            comment.save()
            comment_form = commentformclass()
    
    return object_detail(request, queryset=queryset, year=year, month=month, day=day, slug=slug, date_field=date_field, template_object_name='post', extra_context=dict(page='blog', tags=tags, comment_form=comment_form))
Exemplo n.º 4
0
def post_detail(request, slug, year, month, day, edition=None, category=None, code=None, project_slug=None, **kwargs):
    if project_slug:
        project = get_object_or_404(Project, slug=project_slug)
    else:
        project = get_object_or_404(Project, edition=edition, category=category, code=code)

    if not request.user.is_anonymous():
        visitor = request.user.get_profile()
        student_list = project.students.all()
        advisor_list = project.advisors.all()

        users = list(student_list) + list(advisor_list)
        is_owner = visitor in users
    else:
        is_owner = False

    post_url = request.path

    return date_based.object_detail(
        request,
        year=year,
        month=month,
        day=day,
        date_field="publish",
        slug=slug,
        queryset=Post.objects.published(project),
        extra_context={"is_owner": is_owner, "project": project, "month": month, "post_url": post_url},
        **kwargs
    )
Exemplo n.º 5
0
def view(request, year, month, day, slug):
    try:
        news = News.objects.all().get(slug=slug)
    except News.DoesNotExist:
        raise Http404
    news.views += 1
    news.save()

    most_viewed_list = News.objects.get_published().order_by('-views')[:10]
    recommended_news = News.objects.get_recommended()[:5]

    the_category = get_object_or_404(Category.objects.all(),
                                     slug=news.category.slug)

    the_parent = the_category.parent

    if the_parent:
        child_categories = the_parent.get_children()
    else:
        child_categories = the_category.get_children()

    return object_detail(request,
                         year,
                         month,
                         day,
                         queryset=News.objects.all(),
                         date_field='pub_date',
                         slug=slug,
                         extra_context={
                             "most_viewed_list": most_viewed_list,
                             "recommended_news": recommended_news,
                             "child_categories": child_categories,
                         })
Exemplo n.º 6
0
def post_detail(request, year, month, day, slug, template_name="nadb/post_detail.html", extra_context=None, **kwargs):
    """
    Display a blog post.
    
    **Template:**
    
    nadb/post_detail.html or ``template_name`` keyword argument.
    
    **Template context:**
    
    In addition to extra_context, the template's context will be:
    
        ``object``
            The Post object.
    
    """
    return date_based.object_detail(
        request,
        year=year,
        month=month,
        day=day,
        slug=slug,
        date_field="published",
        queryset=Post.objects.published(),
        template_name=template_name,
        extra_context=extra_context,
        **kwargs
    )
Exemplo n.º 7
0
def post_detail(request, slug, **kwargs):
    '''
    Displays post detail. If user is superuser, view will display
    unpublished post detail for previewing purposes.

    '''


    #grab the post and update view count
    from django.db.models import F
    post = Post.objects.get(slug=slug)


    if not request.user.is_superuser and post.status != 2:
        raise Http404

    post.visits = F('visits') + 1
    post.save()

    return date_based.object_detail(
        request,
        year = post.publish.year,
        month = post.publish.strftime('%b'),
        day = post.publish.day,
        date_field = 'publish',
        slug = slug,
        queryset = Post.objects.all(),
        **kwargs
    )
Exemplo n.º 8
0
def view(request,year, month, day,slug):
	try:
		news=News.objects.all().get(slug=slug)
	except News.DoesNotExist:
		raise Http404
	news.views += 1
	news.save()
	
	most_viewed_list = News.objects.get_published().order_by('-views')[:10]
	recommended_news     = News.objects.get_recommended()[:5]
		
	the_category = get_object_or_404(Category.objects.all(), slug=news.category.slug)
	
	the_parent=the_category.parent
	
	if the_parent:
		child_categories=the_parent.get_children()
	else:
		child_categories=the_category.get_children()
		
	return object_detail(request, year, month, day, queryset=News.objects.all(), date_field='pub_date',slug=slug,
						extra_context={
						"most_viewed_list":most_viewed_list,
						"recommended_news":recommended_news,
						"child_categories":child_categories,})
Exemplo n.º 9
0
def tumble_archive_object_detail(request, year, month, day, tumblr_id, content_type=None, template_name=None, **kwargs):
    queryset = TumbleItem.objects.all()

    if content_type:
        queryset = queryset.filter(content_type__name=content_type)

    select_template_name = select_template([
        template_name or '',
        'djumblr/%s_detail.html' % (content_type),
        'djumblr/tumbleitem_detail.html',
    ])
    template_name = select_template_name.name

    if 'extra_context' not in kwargs:
        kwargs['extra_context'] = {}
    kwargs['extra_context']['content_type'] = content_type

    return date_based.object_detail(
        request,
        year = year,
        month = month,
        day = day,
        date_field = 'pub_date',
        slug_field = 'tumblr_id',
        slug = tumblr_id,
        queryset = queryset,
        template_name = template_name,
        **kwargs
    )
Exemplo n.º 10
0
def post_detail(request, year, month, day, slug,
                template_name='nadb/post_detail.html',
                extra_context=None,
                **kwargs):
    """
    Display a blog post.
    
    **Template:**
    
    nadb/post_detail.html or ``template_name`` keyword argument.
    
    **Template context:**
    
    In addition to extra_context, the template's context will be:
    
        ``object``
            The Post object.
    
    """    
    return date_based.object_detail(
        request,
        year=year,
        month=month,
        day=day,
        slug=slug,
        date_field='published',
        queryset=Post.objects.published(),
        template_name=template_name,
        extra_context=extra_context,
        **kwargs
    )
Exemplo n.º 11
0
def event_detail(request, category_slug, event_id, *args, **kwargs):
    if request.user.is_authenticated() and request.user.events.filter(
            id=event_id).exists():
        event_visit_state = 'active'
    else:
        event_visit_state = 'inactive'
    category = get_object_or_404(EventCategory, slug=category_slug)
    kwargs['queryset'] = obj_by_perm(Event, request.user, category=category)
    kwargs['object_id'] = event_id
    kwargs['template_object_name'] = 'event'
    is_voted = 0
    if request.user.is_authenticated():
        is_voted = list(
            Vote.objects.filter(user=request.user, object_id=event_id))

    is_subscribed = 0
    content_type = ContentType.objects.get(model='event')
    if request.user.is_authenticated():
        is_subscribed = len(
            ObjectSubscribe.objects.filter(user=request.user,
                                           object_pk=event_id,
                                           content_type=content_type.id))

    kwargs['extra_context'] = {
        'event_visit_state': event_visit_state,
        'is_voted': is_voted,
        'is_subscribed': is_subscribed,
    }

    denormalize_comments_async({'content_type': content_type, 'id': event_id})

    return object_detail(request, **kwargs)
Exemplo n.º 12
0
def latest_post(request, **kwargs):
    """
    Displays last posted article.
    """

    #from django.http import HttpResponse

    latest = Post.objects.published().latest()

    #return HttpResponse(
    #    "%s/%s/%s/%s" % (
    #    latest.publish.year,
    #    latest.publish.strftime('%b').lower(),
    #    latest.publish.day,
    #    latest.slug,
    #    )
    #)


    posts = Post.objects.published()
    return date_based.object_detail(
        request,
        year=latest.publish.year,
        month=latest.publish.strftime('%b').lower(),
        day=latest.publish.day,
        date_field='publish',
        slug=latest.slug,
        queryset=posts,
        **kwargs
    )
Exemplo n.º 13
0
def post_detail(request, slug, year=None, month=None, day=None, section=None):
    template_list = ["blog/post_detail.html"]
    if section:
        template_list = ["%s/post_detail.html" % (section.lower())] + template_list

    queryset = Post.objects.published()

    if request.user.has_perm("notsobasic_blog.change_post"):
        queryset = Post.objects.all()

    if year:
        for template_name in template_list:
            try:
                return date_based.object_detail(
                    request,
                    template_name=template_name,
                    year=year,
                    month=month,
                    day=day,
                    date_field="publish",
                    slug=slug,
                    queryset=queryset,
                )
            except TemplateDoesNotExist:
                continue
    for template_name in template_list:
        try:
            return list_detail.object_detail(request, template_name=template_name, slug=slug, queryset=queryset)
        except TemplateDoesNotExist:
            continue

    get_template(template_list[0])
Exemplo n.º 14
0
def post_detail(request, *args, **kwargs):
    kwargs.update({
        'queryset': Post.objects.published(),
        'date_field': 'publish_date',
        'slug_field': 'slug',
        'template_object_name': 'post',
    })
    return object_detail(request, **kwargs)
Exemplo n.º 15
0
def note_detail(request, *args, **kwargs):
    kwargs.update({
        'queryset': Note.objects.all(),
        'date_field': 'publish_date',
        'slug_field': 'slug',
        'template_object_name': 'note',
    })
    return object_detail(request, **kwargs)
Exemplo n.º 16
0
def postdate(request, year=None, month=None, day=None, slug=None):
    # muestra un post, por su fecha y slug
    extra_context = {}
    qs = Post.objects.get_blog_posts()
    qs = _resolve_lang(request, qs)

    return date_based.object_detail(request, queryset=qs, year=year, month=month, day=day, slug=slug, 
            date_field='publication_date', month_format='%m', extra_context=extra_context)
Exemplo n.º 17
0
def post_detail(request, slug, year, month, day, **kwargs):
    return date_based.object_detail(request,
                                    year=year,
                                    month=month,
                                    day=day,
                                    date_field='publish',
                                    slug=slug,
                                    queryset=Post.objects.published(),
                                    **kwargs)
Exemplo n.º 18
0
def view(request,year, month, day,slug):
	try:
		news=News.objects.all().get(slug=slug)
	except News.DoesNotExist:
		raise Http404
	news.views += 1
	news.save()

	return object_detail(request, year, month, day, queryset=News.objects.all(), date_field='pub_date',slug=slug)
Exemplo n.º 19
0
def post_detail(request, slug, year, month, day, **kwargs):
    '''
    Displays post detail. If user is superuser, view will display
    unpublished post detail for previewing purposes.
    '''

    # This logic completely duplicates date_based.object_detail but allows us
    # to increment the view count for each post at the cost of a duplicate
    # query and some extra parsing.

    # handle legacy abbreviated locale month name
    month_format = '%b'
    if len(month) < 3:
        month_format = '%m'

    # Extract the date from the URL:
    try:
        tt = time.strptime(
            '%s-%s-%s' % (year, month, day),
            '%%Y-%s-%%d' % month_format
        )
    except ValueError:
        raise Http404

    # Now we can avoid MultipleObjectsReturned exceptions if the same slug was
    # used on multiple dates:
    post = get_object_or_404(Post,
        slug=slug,
        publish__year=tt.tm_year,
        publish__month=tt.tm_mon,
        publish__day=tt.tm_mday
    )

    #if user is not superuser then don't allow viewing of non-public posts
    if not request.user.is_superuser and post.status != 2:
        raise Http404

    # Avoid incrementing the view count for our requests:
    if not (
        request.user.is_staff
        or request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS
    ):
        post.visits = F('visits') + 1
        post.save()

    return date_based.object_detail(
        request,
        year = year,
        month = month,
        month_format = month_format,
        day = day,
        date_field = 'publish',
        slug = slug,
        queryset = Post.objects.all(),
        **kwargs
    )
Exemplo n.º 20
0
def event_detail(request, year, month, day, slug):
    return date_based.object_detail(
                request,
                year=year,
                month=month, month_format='%m',
                day=day,
                slug=slug,
                date_field='start_date',
                allow_future=True,
                queryset=Event.objects.filter(is_public=True))
Exemplo n.º 21
0
def  show_gallery(request, slug):
    """ Shows selected gallery thumbnail. 
    Extended to support users.
    """
    user_gallery =  {'slug_field': 'title_slug', 
                    'slug': slug,
                    'queryset': Gallery.objects.filter(is_public=True,  author=request.user), 
                    'extra_context':{'sample_size':SAMPLE_SIZE}
                    }
    return object_detail(request,  **user_gallery)
Exemplo n.º 22
0
def bookmark_detail(request, object_id, year, month, day):
    return date_based.object_detail(
        request,
        year=year,
        month=month,
        day=day,
        date_field="created",
        object_id=object_id,
        queryset=Bookmark.objects.all(),
    )
Exemplo n.º 23
0
def article_detail(request, year, month, day, slug):
    return date_based.object_detail(
        request,
        year=year,
        month=month,
        day=day,
        date_field='release_date',
        slug=slug,
        queryset=models.Article.objects.get_published()
    )
Exemplo n.º 24
0
def post_detail(request, slug, year, month, day):
    return date_based.object_detail(
        request,
        year = year,
        month = month,
        day = day,
        date_field = 'publish',
        slug = slug,
        queryset = Post.objects.published(),
    )
Exemplo n.º 25
0
def detail(request, slug, year, month, day):
    """ Show the details of an article """
    articles = Article.publish.all()
    return date_based.object_detail(request,
                                    year=year,
                                    month=month,
                                    day=day,
                                    date_field='published_at',
                                    slug=slug,
                                    queryset=articles,)
Exemplo n.º 26
0
def bookmark_detail(request, object_id, year, month, day):
    return date_based.object_detail(
        request,
        year=year,
        month=month,
        day=day,
        date_field='created',
        object_id=object_id,
        queryset=Bookmark.objects.all(),
    )
Exemplo n.º 27
0
def event_detail(request, slug, year, month, day, event_id):
    return date_based.object_detail(
        request,
        year=year,
        month=month,
        day=day,
        date_field='start',
        object_id=event_id,
        queryset=EventTime.objects.all(),
        allow_future=True,
    )
Exemplo n.º 28
0
def article_detail(request, *args, **kwargs):
  from django.views.generic.date_based import object_detail
  # category = get_object_or_404(Category, slug=kwargs.pop('category'))
  kwargs.update({
	'queryset': Article.objects.published(),
	'date_field': 'publish_date',
	'slug_field': 'slug',
	'template_object_name': 'article',
	'month_format': '%m',
  })
  return object_detail(request, *args, **kwargs)
Exemplo n.º 29
0
def blog_detail(request, year, month, day, slug):
    return date_based.object_detail(
        request,
        queryset=Post.objects.published(),
        date_field='published',
        year=year,
        month=month,
        day=day,
        slug=slug,
        template_object_name='post',
        extra_context=extra_context())
Exemplo n.º 30
0
def event_detail(request, language, year, month, day, slug):
    Event.lang = language
    translation.activate(language)
    base_url = '/%s/%s/%s' % (year, month, day)

    if language == 'fr':
        slug_field = 'slug_french'
    else:
        slug_field = 'slug_english'

    return object_detail(request, year, month, day, Event.objects.filter(draft=False), 'date', slug=slug, slug_field=slug_field, extra_context={'language':language, 'base_url':base_url}, template_name='events/event_detail.html', template_object_name='event')
Exemplo n.º 31
0
def detail(request, app, year, month, day, slug_or_id):
    app_dict, mod = get_app(request, app)
    if getattr(mod, 'USE_SLUG'):
        app_dict.update(slug=slug_or_id)
    else:
        app_dict.update(object_id=slug_or_id)
    app_dict.update(year=year)
    app_dict.update(month=month)
    app_dict.update(day=day)
    app_dict.update(extra_context=dict(form=CommentForm()))
    return date_based.object_detail(request, **app_dict)
Exemplo n.º 32
0
def event_detail(request, slug, year, month, day, event_id):
    return date_based.object_detail(
        request,
        year=year,
        month=month,
        day=day,
        date_field='start',
        object_id=event_id,
        queryset=EventTime.objects.all(),
        allow_future=True,
    )
Exemplo n.º 33
0
def bookmark_detail(request, slug, year, month, day):
    return date_based.object_detail(
        request,
        slug=slug,
        year=year,
        month=month,
        day=day,
        date_field="save_date",
        template_object_name="bookmark",
        queryset=Bookmark.shared_objects.all(),
    )
Exemplo n.º 34
0
def article_detail(request, *args, **kwargs):
  from django.views.generic.date_based import object_detail
  # category = get_object_or_404(Category, slug=kwargs.pop('category'))
  kwargs.update({
	'queryset': Article.objects.published(),
	'date_field': 'publish_date',
	'slug_field': 'slug',
	'template_object_name': 'article',
	'month_format': '%m',
  })
  return object_detail(request, *args, **kwargs)
Exemplo n.º 35
0
def event_object_detail(request, year, month, day, slug):
    return date_based.object_detail(
        request,
        year,
        month,
        day,
        Event.objects.for_user(request.user),
        DATEFIELD,
        month_format=MONTH_FORMAT,
        slug=slug,
        allow_future=True,
    )
Exemplo n.º 36
0
def blog_entry_detail(request, blog_slug, year, month, day, slug):
    blog = get_object_or_404(Blog, slug=blog_slug)
    return date_based.object_detail(request,
        year = year,
        month = month,
        day = day,
        queryset = blog.entry_set.all(),
        date_field = 'pub_date',
        slug_field = 'slug',
        slug = slug,
        extra_context = {'blog': blog},
        template_name = blog.template_name_entry or 'blogs/entry_detail.html')
Exemplo n.º 37
0
def article_detail(request, year, month, day, object_id):
    kwargs = {
        'queryset': Article.objects.published(),
        'date_field': 'publish_at',
        'month_format': '%m',
    }
    return date_based.object_detail(request,
                                    year=year,
                                    month=month,
                                    day=day,
                                    object_id=object_id,
                                    **kwargs)
Exemplo n.º 38
0
 def entry_detail(self, request, entry_queryset=None, *args, **kwargs):
     if entry_queryset is not None:
         queryset = entry_queryset
     else:
         queryset = self.entry_queryset
     info_dict = {
             'queryset': queryset,
             'date_field': 'pub_date',
             'template_name': '%s/entry_detail.html' % self.template_root_path,
             'template_object_name': 'entry',
         }
     return date_based.object_detail(request, *args, **dict(info_dict, month_format='%m', slug_field='slug', **kwargs))
Exemplo n.º 39
0
def post(request,year,month,day,slug):
    redirect = double_digit_checker(request,year,month,day)
    if redirect:
        return redirect
    
    try:
        d = date(int(year),int(month),int(day))
    except:
        raise Http404

    # Generate a preview code -- lets admin distribute a URL to nonprivieged users
    # to view non-published posts.
    preview_code = hashlib.sha512("%s%s%s%s%s%s"%(
        datetime.now().strftime("%Y%U"), # expire code based on week
        year,
        month,
        day,
        slug,
        settings.SECRET_KEY
    )).hexdigest()
    preview_code = hashlib.sha512("%s%s%s%s%s%s"%(preview_code,year,month,day,slug,settings.SECRET_KEY)).hexdigest()
    preview_code = hashlib.md5(preview_code+settings.SECRET_KEY).hexdigest()
    
    if request.user.is_authenticated() and request.user.is_superuser:
        # Superusers can view posts that are not yet live (so admin's "view on site" works to preview)
        qs = BlogPost.objects.all()
    elif 'code' in request.GET:
        # If we match the preview code, show any article regardless of publish status and date.
        if preview_code == request.GET['code']:
            qs = BlogPost.objects.all()
        else:
            qs = BlogPost.objects.filter(is_live=True,pubdate__lte=datetime.now())
    else:
        qs = BlogPost.objects.filter(is_live=True,pubdate__lte=datetime.now())
    
    return date_based.object_detail(
        request,
        year = year,
        month = month,
        month_format = "%m",
        day = day,
        queryset = qs,
        slug = slug,
        slug_field = 'slug',
        date_field = 'pubdate',
        template_name = 'blog/post_detail.html',
        template_object_name = 'post',
        extra_context = dict(
            preview_code=preview_code,
            request=request
        )
    )
Exemplo n.º 40
0
def post_detail(request, slug, year, month, day, **kwargs):
    """
    Displays post detail. If user is superuser, view will display 
    unpublished post detail for previewing purposes.
    """
    posts = None
    if request.user.is_superuser:
        posts = Post.objects.all()
    else:
        posts = Post.objects.published()
    return date_based.object_detail(
        request, year=year, month=month, day=day, date_field="publish", slug=slug, queryset=posts, **kwargs
    )
Exemplo n.º 41
0
 def entry_detail(self, request, *args, **kwargs):
     if 'entry_queryset' in kwargs:
         queryset = kwargs['entry_queryset']
         del kwargs['entry_queryset']
     else:
         queryset = self.entry_queryset
     info_dict = {
             'queryset': queryset,
             'date_field': self.publication_date_field,
             'template_name': '%s/entry_detail.html' % self.template_root_path,
             'template_object_name': 'entry',
         }
     return date_based.object_detail(request, *args, **dict(info_dict, month_format=self.month_format, slug_field=self.slug_field, **kwargs))
Exemplo n.º 42
0
def object_detail(request, year, month, day, slug):
    slug = urllib.quote(slug.encode('utf-8')).lower()
    return date_based.object_detail(
        request,
        queryset=Post.objects.published(),
        date_field='post_date',
        year=year,
        month=month,
        month_format="%m",
        day=day,
        slug=slug,
        template_object_name='post',
        allow_future=True,
        extra_context={'post_url': request.build_absolute_uri(request.path)})
Exemplo n.º 43
0
def view(request, year, month, day, slug):
    try:
        news = News.objects.all().get(slug=slug)
    except News.DoesNotExist:
        raise Http404
    news.views += 1
    news.save()

    return object_detail(request,
                         year,
                         month,
                         day,
                         queryset=News.objects.all(),
                         date_field='pub_date',
                         slug=slug)
Exemplo n.º 44
0
def story_detail(request, year, month, day, slug):
    queryset = Story.objects.for_user(request.user).filter(parent=None)
    date_field = "pub_date"
    month_format = "%m"
    content_type_id = ContentType.objects.get_for_model(Story).id
    return date_based.object_detail(
        request,
        year,
        month,
        day,
        queryset,
        date_field,
        month_format=month_format,
        slug=slug,
        allow_future=True,
        extra_context={'content_type_id': content_type_id})
Exemplo n.º 45
0
def archive_article_detail(request, year, month, day, slug, **kwargs):
    logger.info('archive an article, name ' +
                Article.objects.get(slug=slug).title)
    return date_based.object_detail(request,
                                    queryset=Article.objects.all(),
                                    year=year,
                                    month=month,
                                    day=day,
                                    slug=slug,
                                    date_field='publish_date',
                                    template_object_name='article',
                                    template_name='blog/article_detail.html',
                                    extra_context={
                                        'site_url':
                                        settings.SITE_URL,
                                        'shortname':
                                        settings.DISQUS_WEBSITE_SHORTNAME
                                    })
Exemplo n.º 46
0
def post_detail(request, slug, year, month, day, **kwargs):
    """
    Displays post detail. If user is superuser, view will display 
    unpublished post detail for previewing purposes.
    """
    posts = None
    if request.user.is_superuser:
        posts = Post.objects.all()
    else:
        posts = Post.objects.published()
    return date_based.object_detail(request,
                                    year=year,
                                    month=month,
                                    day=day,
                                    date_field='publish',
                                    slug=slug,
                                    queryset=posts,
                                    **kwargs)
Exemplo n.º 47
0
def post_detail(request, slug, year, month, day, **kwargs):
    '''
    Displays post detail. If user is superuser, view will display
    unpublished post detail for previewing purposes.
    '''

    #to handle legacy abbreviate locale month name
    month_format = '%b'
    if len(month) < 3:
        month_format = '%m'

    # This logic completely duplicates date_based.object_detail but allows us
    # to increment the view count for each post at the cost of a duplicate
    # query and some extra parsing:
    try:
        tt = time.strptime('%s-%s-%s' % (year, month, day),
                           '%%Y-%s-%%d' % month_format)
    except ValueError:
        raise Http404

    # Fixed bug loading multiple slugs differing only in date:
    post = get_object_or_404(Post,
                             slug=slug,
                             publish__year=tt.tm_year,
                             publish__month=tt.tm_mon,
                             publish__day=tt.tm_mday)

    #if user is not superuser then don't allow viewing of non-public posts
    if not request.user.is_superuser and post.status != 2:
        raise Http404

    if not request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS:
        post.visits = F('visits') + 1
        post.save()

    return date_based.object_detail(request,
                                    year=year,
                                    month=month,
                                    month_format=month_format,
                                    day=day,
                                    date_field='publish',
                                    slug=slug,
                                    queryset=Post.objects.all(),
                                    **kwargs)
Exemplo n.º 48
0
def flickr_photo_detail_in_set(request,
                               year,
                               month,
                               day,
                               slug,
                               set_id,
                               extra_context='',
                               *args,
                               **kwargs):
    """
    A thin wrapper around
    ``django.views.generic.date_based.object_detail`` which adds
    the selected photo set to the context variables: ``photoset``.

    """
    set = get_object_or_404(PhotoSet, pk=set_id)
    photo = get_object_or_404(Photo,
                              taken_date__year=year,
                              taken_date__month=month,
                              taken_date__day=day,
                              slug=slug)

    previous = photo.get_previous_in_set(set)
    next = photo.get_next_in_set(set)

    extra_context = dict(extra_context,
                         photoset=set,
                         previous_photo_in_set=previous,
                         next_photo_in_set=next)

    return object_detail(request,
                         year=year,
                         month=month,
                         day=day,
                         slug=slug,
                         extra_context=extra_context,
                         *args,
                         **kwargs)
Exemplo n.º 49
0
def entry_detail(request, *args, **kwargs):
    return date_based.object_detail(request, *args, **kwargs)
Exemplo n.º 50
0
def blog_detail(request, **kwargs):
    kwargs['queryset'] = kwargs['queryset'].published()
    return object_detail(request, **kwargs)