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 )
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)
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))
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 )
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, })
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 )
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 )
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,})
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 )
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 )
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)
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 )
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])
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)
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)
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)
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)
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)
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 )
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))
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)
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(), )
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() )
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(), )
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,)
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(), )
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, )
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)
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())
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')
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)
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(), )
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, )
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')
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))
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 ) )
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 )
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))
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)})
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)
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})
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 })
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)
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)
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)
def entry_detail(request, *args, **kwargs): return date_based.object_detail(request, *args, **kwargs)
def blog_detail(request, **kwargs): kwargs['queryset'] = kwargs['queryset'].published() return object_detail(request, **kwargs)