def short_url_view(request, pk): """ Redirects to detail view """ item = get_object_or_404(Case.get_queryset(request).only('slug'), pk=pk) return redirect(item.get_absolute_url(), permanent=True)
class CaseAnnotationSerializer(serializers.ModelSerializer): belongs_to = serializers.PrimaryKeyRelatedField( queryset=Case.get_queryset().defer( *Case.defer_fields_list_view).select_related('court'), html_cutoff=10, ) label = serializers.PrimaryKeyRelatedField( queryset=AnnotationLabel.objects.all().select_related('owner'), html_cutoff=10, ) class Meta: model = CaseAnnotation fields = '__all__' def validate(self, attrs): instance = self.Meta.model(**attrs) # Work-around to show fields in error response try: instance.clean() except ValidationError as e: raise serializers.ValidationError(e.args[0]) return attrs
def case_view(request, case_slug): """ Case detail view """ qs = Case.get_queryset(request).select_related('court').select_related( 'source') item = get_object_or_404(qs, slug=case_slug) # Load annotations for staff users if request.user.is_staff: marker_labels = item.get_markers(request)\ .values('label__id', 'label__name', 'label__color', 'label__private')\ .annotate(count=Count('label'))\ .order_by('count') annotation_labels = item.get_annotation_labels(request) else: marker_labels = None annotation_labels = None return render( request, 'cases/case.html', { 'title': item.get_title(), 'item': item, 'content': item.get_content_as_html(request), 'annotation_labels': annotation_labels, 'marker_labels': marker_labels, 'line_counter': Counter(), 'nav': 'cases', })
def get_queryset(self): # Get cases that belong to court queryset = Case.get_queryset(self.request)\ .select_related('court')\ .defer(*Case.defer_fields_list_view)\ .filter(court=self.court)\ .order_by('-date') return queryset
def index_view(request): law_books = LawBook.objects.filter(latest=True).order_by('-order') cases = Case.get_queryset(request)\ .defer(*Case.defer_fields_list_view)\ .select_related('court')\ .order_by('-updated_date') laws_count = '{:,}'.format(Law.objects.all().count()) cases_count = '{:,}'.format(Case.get_queryset(request).count()) return render(request, 'homepage/index.html', { 'title': _('Free Access to Legal Data'), 'nav': 'homepage', 'law_books': law_books, 'cases': cases, 'laws_count': laws_count, 'cases_count': cases_count, })
def case_view(request, case_slug): item = get_object_or_404(Case.get_queryset(request), slug=case_slug) return render(request, 'cases/case.html', { 'title': item.get_title(), 'item': item, 'content': item.get_content_as_html(request), 'annotation_labels': item.get_annotation_labels(request) if request.user.is_staff else None, 'line_counter': Counter(), 'nav': 'cases', })
def case_view(request, case_slug): item = get_object_or_404(Case.get_queryset(request), slug=case_slug) return render( request, 'cases/case.html', { 'title': item.get_title(), 'item': item, 'line_counter': Counter(), 'nav': 'cases', 'is_read_more': is_read_more })
def __init__(self): super().__init__( { 'queryset': Case.get_queryset().select_related('court').defer( *Case.defer_fields_list_view).order_by('-updated_date'), 'date_field': 'updated_date' }, priority=1.0, changefreq='daily')
def index_view(request): k = 10 books = LawBook.objects.filter(latest=True).order_by('-revision_date')[:k] cases = Case.get_queryset(request).order_by('-updated_date')[:k] return render( request, 'homepage/index.html', { 'title': _('Free Access to Legal Data'), 'nav': 'homepage', 'books': books, 'cases': cases })
def index_view(request): items = Case.get_queryset(request).order_by('-date') paginator = Paginator(items, 50) # 50 items per page page = request.GET.get('page') try: items = paginator.page(page) except PageNotAnInteger: items = paginator.page(1) except EmptyPage: items = paginator.page(paginator.num_pages) return render(request, 'cases/index.html', { 'title': _('Cases'), 'items': items, 'nav': 'cases' })
def view_law(request, law_slug, book_slug): book = get_law_book(request, book_slug) item = get_object_or_404(Law.objects.select_related('book', 'previous'), slug=law_slug, book=book) referencing_cases = item.get_referencing_cases( Case.get_queryset(request).defer(*Case.defer_fields_list_view)) return render( request, 'laws/law.html', { 'nav': 'laws', 'item': item, 'title': item.get_title(), 'referencing_cases': referencing_cases, })
class CaseViewSet(viewsets.ModelViewSet): """ List view for cases """ pagination_class = SmallResultsSetPagination # limit page (other content field blows up response size) queryset = Case.get_queryset() serializer_class = CaseSerializer # lookup_field = 'slug' filter_backends = (OrderingFilter, DjangoFilterBackend, ) filterset_class = CaseAPIFilter ordering_fields = ('date', ) @method_decorator(cache_page(60)) def dispatch(self, *args, **kwargs): return super().dispatch(*args, **kwargs) def get_queryset(self): return Case.get_queryset()\ .select_related('court')\ .only(*CASE_API_FIELDS)
def get_queryset(self): return Case.get_queryset(self.request).select_related('court').defer( *Case.defer_fields_list_view)
def get_queryset(self): return Case.get_queryset()\ .select_related('court')\ .only(*CASE_API_FIELDS)
class CaseViewSet(viewsets.ModelViewSet): queryset = Case.get_queryset() serializer_class = CaseSerializer filter_backends = (DjangoFilterBackend, ) filter_fields = ('slug', 'file_number', 'court_id')
def get_queryset(self): # Get cases that belong to court queryset = Case.get_queryset( self.request).filter(court_id=self.court.pk).order_by('date') return queryset
def index_queryset(self, using=None): return Case.get_queryset().select_related('court', 'court__state')