from base.viewsets import BaseTable, BaseViewset from django_tables2 import Column, DateColumn import django_filters from . import models class DailyFeedItemLogEntryFilterSet(django_filters.FilterSet): from_date = django_filters.DateFilter(name='request_date', label='From', lookup_expr='gte') to_date = django_filters.DateFilter(name='request_date', label='To', lookup_expr='lte') category_name = django_filters.CharFilter(label='Category', lookup_expr='icontains') message_text = django_filters.CharFilter(label='Message', lookup_expr='icontains') class Meta: fields = ['from_date', 'to_date', 'category_name', 'message_text'] model = models.DailyFeedItemLogEntry class DailyFeedItemLogEntryTable(BaseTable): request_date = DateColumn(verbose_name="Date") category_name = Column(verbose_name="Category") request_count = Column(verbose_name="Requests") class Meta(BaseTable.Meta): fields = ('request_date', 'category_name', 'message_text', 'request_count') order_by = ('-request_date', 'category_name') class DailyFeedItemLogEntryViewset(BaseViewset): filter_class = DailyFeedItemLogEntryFilterSet tables2_class = DailyFeedItemLogEntryTable exclude_views = ['create', 'detail', 'update', 'delete'] def get_queryset(self, view): return models.DailyFeedItemLogEntry.objects.all()