Use stock manager as default for Tag model

This commit is contained in:
Jeremy Stretch 2020-07-07 12:18:14 -04:00
parent 15f5719f44
commit a2d957ba0d
6 changed files with 12 additions and 14 deletions

View File

@ -110,7 +110,7 @@ class ExportTemplateViewSet(ModelViewSet):
# #
class TagViewSet(ModelViewSet): class TagViewSet(ModelViewSet):
queryset = Tag.objects.annotate( queryset = Tag.restricted_objects.annotate(
tagged_items=Count('extras_taggeditem_items', distinct=True) tagged_items=Count('extras_taggeditem_items', distinct=True)
) )
serializer_class = serializers.TagSerializer serializer_class = serializers.TagSerializer

View File

@ -1,5 +1,4 @@
from django.db import models from django.db import models
from django.urls import reverse
from django.utils.text import slugify from django.utils.text import slugify
from taggit.models import TagBase, GenericTaggedItemBase from taggit.models import TagBase, GenericTaggedItemBase
@ -22,7 +21,8 @@ class Tag(TagBase, ChangeLoggedModel):
blank=True, blank=True,
) )
objects = RestrictedQuerySet.as_manager() objects = models.Manager()
restricted_objects = RestrictedQuerySet.as_manager()
csv_headers = ['name', 'slug', 'color', 'description'] csv_headers = ['name', 'slug', 'color', 'description']

View File

@ -2,12 +2,10 @@ import time
from django import template from django import template
from django.conf import settings from django.conf import settings
from django.contrib import messages
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.db.models import Count, Prefetch, Q from django.db.models import Count, Prefetch, Q
from django.http import Http404, HttpResponseForbidden from django.http import Http404, HttpResponseForbidden
from django.shortcuts import get_object_or_404, redirect, render from django.shortcuts import get_object_or_404, redirect, render
from django.utils.safestring import mark_safe
from django.views.generic import View from django.views.generic import View
from django_tables2 import RequestConfig from django_tables2 import RequestConfig
@ -33,7 +31,7 @@ from .scripts import get_scripts, run_script
# #
class TagListView(ObjectListView): class TagListView(ObjectListView):
queryset = Tag.objects.annotate( queryset = Tag.restricted_objects.annotate(
items=Count('extras_taggeditem_items', distinct=True) items=Count('extras_taggeditem_items', distinct=True)
).order_by( ).order_by(
'name' 'name'
@ -44,23 +42,23 @@ class TagListView(ObjectListView):
class TagEditView(ObjectEditView): class TagEditView(ObjectEditView):
queryset = Tag.objects.all() queryset = Tag.restricted_objects.all()
model_form = forms.TagForm model_form = forms.TagForm
template_name = 'extras/tag_edit.html' template_name = 'extras/tag_edit.html'
class TagDeleteView(ObjectDeleteView): class TagDeleteView(ObjectDeleteView):
queryset = Tag.objects.all() queryset = Tag.restricted_objects.all()
class TagBulkImportView(BulkImportView): class TagBulkImportView(BulkImportView):
queryset = Tag.objects.all() queryset = Tag.restricted_objects.all()
model_form = forms.TagCSVForm model_form = forms.TagCSVForm
table = tables.TagTable table = tables.TagTable
class TagBulkEditView(BulkEditView): class TagBulkEditView(BulkEditView):
queryset = Tag.objects.annotate( queryset = Tag.restricted_objects.annotate(
items=Count('extras_taggeditem_items', distinct=True) items=Count('extras_taggeditem_items', distinct=True)
).order_by( ).order_by(
'name' 'name'
@ -70,7 +68,7 @@ class TagBulkEditView(BulkEditView):
class TagBulkDeleteView(BulkDeleteView): class TagBulkDeleteView(BulkDeleteView):
queryset = Tag.objects.annotate( queryset = Tag.restricted_objects.annotate(
items=Count('extras_taggeditem_items') items=Count('extras_taggeditem_items')
).order_by( ).order_by(
'name' 'name'

View File

@ -102,7 +102,7 @@ class TagFilter(django_filters.ModelMultipleChoiceFilter):
kwargs.setdefault('field_name', 'tags__slug') kwargs.setdefault('field_name', 'tags__slug')
kwargs.setdefault('to_field_name', 'slug') kwargs.setdefault('to_field_name', 'slug')
kwargs.setdefault('conjoined', True) kwargs.setdefault('conjoined', True)
kwargs.setdefault('queryset', Tag.objects.unrestricted()) kwargs.setdefault('queryset', Tag.objects.all())
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)

View File

@ -596,7 +596,7 @@ class TagFilterField(forms.MultipleChoiceField):
def __init__(self, model, *args, **kwargs): def __init__(self, model, *args, **kwargs):
def get_choices(): def get_choices():
tags = model.tags.all().unrestricted().annotate( tags = model.tags.annotate(
count=Count('extras_taggeditem_items') count=Count('extras_taggeditem_items')
).order_by('name') ).order_by('name')
return [ return [

View File

@ -217,7 +217,7 @@ def prepare_cloned_fields(instance):
# Copy tags # Copy tags
if is_taggable(instance): if is_taggable(instance):
params['tags'] = ','.join([t.name for t in instance.tags.all().unrestricted()]) params['tags'] = ','.join([t.name for t in instance.tags.all()])
# Concatenate parameters into a URL query string # Concatenate parameters into a URL query string
param_string = '&'.join( param_string = '&'.join(