Brak opisu

viewsets.py 1.3KB

123456789101112131415161718192021222324252627282930313233
  1. from base.viewsets import BaseTable, BaseViewset
  2. from django_tables2 import Column, DateColumn
  3. import django_filters
  4. from . import models
  5. class DailyFeedItemLogEntryFilterSet(django_filters.FilterSet):
  6. from_date = django_filters.DateFilter(name='request_date', label='From', lookup_expr='gte')
  7. to_date = django_filters.DateFilter(name='request_date', label='To', lookup_expr='lte')
  8. category_name = django_filters.CharFilter(label='Category', lookup_expr='icontains')
  9. message_text = django_filters.CharFilter(label='Message', lookup_expr='icontains')
  10. class Meta:
  11. fields = ['from_date', 'to_date', 'category_name', 'message_text']
  12. model = models.DailyFeedItemLogEntry
  13. class DailyFeedItemLogEntryTable(BaseTable):
  14. request_date = DateColumn(verbose_name="Date")
  15. category_name = Column(verbose_name="Category")
  16. request_count = Column(verbose_name="Requests")
  17. class Meta(BaseTable.Meta):
  18. fields = ('request_date', 'category_name', 'message_text', 'request_count')
  19. order_by = ('-request_date', 'category_name')
  20. class DailyFeedItemLogEntryViewset(BaseViewset):
  21. filter_class = DailyFeedItemLogEntryFilterSet
  22. tables2_class = DailyFeedItemLogEntryTable
  23. exclude_views = ['create', 'detail', 'update', 'delete']
  24. def get_queryset(self, view):
  25. return models.DailyFeedItemLogEntry.objects.all()