helper/dal

This commit is contained in:
Tobias Lindenberg
2021-01-10 13:41:09 +01:00
parent 4dad26102a
commit f5b456018d

View File

@ -1,14 +1,16 @@
from cookbook.models import Food, Keyword, Recipe, Unit
from dal import autocomplete from dal import autocomplete
from cookbook.models import Keyword, Recipe, Unit, Food
class BaseAutocomplete(autocomplete.Select2QuerySetView):
model = None
class KeywordAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self): def get_queryset(self):
if not self.request.user.is_authenticated: if not self.request.user.is_authenticated:
return Keyword.objects.none() return self.model.objects.none()
qs = Keyword.objects.all() qs = self.model.objects.all()
if self.q: if self.q:
qs = qs.filter(name__istartswith=self.q) qs = qs.filter(name__istartswith=self.q)
@ -16,40 +18,17 @@ class KeywordAutocomplete(autocomplete.Select2QuerySetView):
return qs return qs
class IngredientsAutocomplete(autocomplete.Select2QuerySetView): class KeywordAutocomplete(BaseAutocomplete):
def get_queryset(self): model = Keyword
if not self.request.user.is_authenticated:
return Food.objects.none()
qs = Food.objects.all()
if self.q:
qs = qs.filter(name__icontains=self.q)
return qs
class RecipeAutocomplete(autocomplete.Select2QuerySetView): class IngredientsAutocomplete(BaseAutocomplete):
def get_queryset(self): model = Food
if not self.request.user.is_authenticated:
return Recipe.objects.none()
qs = Recipe.objects.all()
if self.q:
qs = qs.filter(name__icontains=self.q)
return qs
class UnitAutocomplete(autocomplete.Select2QuerySetView): class RecipeAutocomplete(BaseAutocomplete):
def get_queryset(self): model = Recipe
if not self.request.user.is_authenticated:
return Unit.objects.none()
qs = Unit.objects.all()
if self.q: class UnitAutocomplete(BaseAutocomplete):
qs = qs.filter(name__icontains=self.q) model = Unit
return qs