예제 #1
0
class GetCategoriesNode(BlogAssignmentOrInclusionNode):
    """
    Query the entries in the database, and render them.
    This template tag supports the following syntax:

    .. code-block:: html+django

        {% get_categories as categories %}
        {% for category in categories %}...{% endfor %}

    The allowed query parameters are:

    * ``order``: Which field to order on, this can be:

     * ``slug``: The URL name of the entry.
     * ``name``: The category name.

    * ``orderby``: can be ASC/ascending or DESC/descending. The default depends on the ``order`` field.
    * ``limit``: The maximum number of entries to return.
    """
    template_name = "fluent_blogs/templatetags/entries.html"
    context_value_name = 'entries'
    allowed_kwargs = (
        'orderby',
        'order',
        'limit',
    )
    model = get_category_model()

    def get_value(self, context, *tag_args, **tag_kwargs):
        only_ids = GetEntriesNode.model.objects.published().values(
            'categories').order_by().distinct()
        qs = self.model.objects.filter(id__in=only_ids)
        return qs
예제 #2
0
 def get_queryset(self):
     self.category = get_object_or_404(get_category_model(),
                                       slug=self.kwargs['slug'])
     return super(EntryCategoryArchive,
                  self).get_queryset().filter(categories=self.category)
예제 #3
0
from django.conf import settings
from django.contrib.contenttypes.models import ContentType
from django.contrib.sitemaps import Sitemap
from fluent_blogs.models import get_entry_model, get_category_model
from fluent_blogs.urlresolvers import blog_reverse
from fluent_utils.django_compat import get_user_model
from parler.models import TranslatableModel

User = get_user_model()
EntryModel = get_entry_model()
CategoryModel = get_category_model()


class EntrySitemap(Sitemap):
    """
    The sitemap definition for the pages created with django-fluent-blogs.
    """
    def items(self):
        qs = EntryModel.objects.published().order_by('-publication_date')

        if issubclass(EntryModel, TranslatableModel):
            # Note that .active_translations() can't be combined with other filters for translations__.. fields.
            qs = qs.active_translations()
            return qs.order_by('-publication_date', 'translations__language_code')
        else:
            return qs.order_by('-publication_date')


    def lastmod(self, urlnode):
        """Return the last modification of the entry."""
        return urlnode.modification_date
예제 #4
0
from django.conf import settings
from django.contrib.contenttypes.models import ContentType
from django.contrib.sitemaps import Sitemap
from fluent_blogs.models import get_entry_model, get_category_model
from fluent_blogs.urlresolvers import blog_reverse
from fluent_utils.django_compat import get_user_model
from parler.models import TranslatableModel

User = get_user_model()
EntryModel = get_entry_model()
CategoryModel = get_category_model()


class EntrySitemap(Sitemap):
    """
    The sitemap definition for the pages created with django-fluent-blogs.
    """
    def items(self):
        qs = EntryModel.objects.published().order_by('-publication_date')

        if issubclass(EntryModel, TranslatableModel):
            # Note that .active_translations() can't be combined with other filters for translations__.. fields.
            qs = qs.active_translations()
            return qs.order_by('-publication_date',
                               'translations__language_code')
        else:
            return qs.order_by('-publication_date')

    def lastmod(self, urlnode):
        """Return the last modification of the entry."""
        return urlnode.modification_date
예제 #5
0
 def get_queryset(self):
     self.category = get_object_or_404(get_category_model(), slug=self.kwargs['slug'])
     return super(EntryCategoryArchive, self).get_queryset().filter(categories=self.category)