rebuild recipe index from admin site

This commit is contained in:
smilerz 2021-04-11 19:42:22 -05:00
parent fd24117c27
commit 556f74cc2b
2 changed files with 16 additions and 1 deletions

View File

@ -1,6 +1,9 @@
from django.conf import settings
from django.contrib import admin
from django.contrib.postgres.search import SearchVector
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User, Group
from django_scopes import scopes_disabled
from .models import (Comment, CookLog, Food, Ingredient, InviteLink, Keyword,
MealPlan, MealType, NutritionInformation, Recipe,
@ -91,6 +94,15 @@ class StepAdmin(admin.ModelAdmin):
admin.site.register(Step, StepAdmin)
@admin.action(description='Rebuild index for selected recipes')
def rebuild_index(modeladmin, request, queryset):
with scopes_disabled():
search_vector = (
SearchVector('name', weight='A')
+ SearchVector('description', weight='B'))
queryset.update(search_vector=search_vector)
class RecipeAdmin(admin.ModelAdmin):
list_display = ('name', 'internal', 'created_by', 'storage')
search_fields = ('name', 'created_by__username')
@ -101,6 +113,9 @@ class RecipeAdmin(admin.ModelAdmin):
def created_by(obj):
return obj.created_by.get_user_name()
if settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql']:
actions = [rebuild_index]
admin.site.register(Recipe, RecipeAdmin)

View File

@ -1,6 +1,6 @@
from django.conf import settings
from django.contrib.postgres.search import SearchVector
from django.core.management.base import BaseCommand, CommandError
from django.core.management.base import BaseCommand
from django_scopes import scopes_disabled
from django.utils.translation import gettext_lazy as _