added search defaults mimicing old search behavior
This commit is contained in:
parent
856c34a3bf
commit
12afb3eaa6
@ -14,7 +14,7 @@ from .models import (Comment, CookLog, Food, Ingredient, InviteLink, Keyword,
|
||||
ShoppingList, ShoppingListEntry, ShoppingListRecipe,
|
||||
Space, Step, Storage, Sync, SyncLog, Unit, UserPreference,
|
||||
ViewLog, Supermarket, SupermarketCategory, SupermarketCategoryRelation,
|
||||
ImportLog, TelegramBot, BookmarkletImport, UserFile)
|
||||
ImportLog, TelegramBot, BookmarkletImport, UserFile, SearchPreference)
|
||||
|
||||
from cookbook.managers import DICTIONARY
|
||||
|
||||
@ -54,6 +54,19 @@ class UserPreferenceAdmin(admin.ModelAdmin):
|
||||
admin.site.register(UserPreference, UserPreferenceAdmin)
|
||||
|
||||
|
||||
class SearchPreferenceAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'search', 'trigram_threshold',)
|
||||
search_fields = ('user__username',)
|
||||
list_filter = ('search',)
|
||||
|
||||
@staticmethod
|
||||
def name(obj):
|
||||
return obj.user.get_user_name()
|
||||
|
||||
|
||||
admin.site.register(SearchPreference, SearchPreferenceAdmin)
|
||||
|
||||
|
||||
class StorageAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'method')
|
||||
search_fields = ('name',)
|
||||
|
33
cookbook/migrations/0157_alter_searchpreference_trigram.py
Normal file
33
cookbook/migrations/0157_alter_searchpreference_trigram.py
Normal file
@ -0,0 +1,33 @@
|
||||
# Generated by Django 3.2.7 on 2021-09-29 06:37
|
||||
from django_scopes import scopes_disabled
|
||||
|
||||
from django.db import migrations, models
|
||||
from cookbook.models import nameSearchField
|
||||
|
||||
|
||||
def add_default_trigram(apps, schema_editor):
|
||||
with scopes_disabled():
|
||||
SearchFields = apps.get_model('cookbook', 'SearchFields')
|
||||
SearchPreference = apps.get_model('cookbook', 'SearchPreference')
|
||||
|
||||
name_field = SearchFields.objects.get(name='Name')
|
||||
|
||||
for p in SearchPreference.objects.all():
|
||||
if not p.trigram.all() and p.search == 'plain':
|
||||
p.trigram.add(name_field)
|
||||
p.save()
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
('cookbook', '0156_searchpreference_trigram_threshold'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='searchpreference',
|
||||
name='trigram',
|
||||
field=models.ManyToManyField(blank=True, default=nameSearchField, related_name='trigram_fields', to='cookbook.SearchFields'),
|
||||
),
|
||||
migrations.RunPython(add_default_trigram),
|
||||
]
|
@ -843,7 +843,7 @@ class SearchFields(models.Model, PermissionModelMixin):
|
||||
|
||||
|
||||
def allSearchFields():
|
||||
return SearchFields.objects.values_list('id')
|
||||
return list(SearchFields.objects.values_list('id', flat=True))
|
||||
|
||||
|
||||
def nameSearchField():
|
||||
@ -871,7 +871,7 @@ class SearchPreference(models.Model, PermissionModelMixin):
|
||||
unaccent = models.ManyToManyField(SearchFields, related_name="unaccent_fields", blank=True, default=allSearchFields)
|
||||
icontains = models.ManyToManyField(SearchFields, related_name="icontains_fields", blank=True, default=nameSearchField)
|
||||
istartswith = models.ManyToManyField(SearchFields, related_name="istartswith_fields", blank=True)
|
||||
trigram = models.ManyToManyField(SearchFields, related_name="trigram_fields", blank=True)
|
||||
trigram = models.ManyToManyField(SearchFields, related_name="trigram_fields", blank=True,default=nameSearchField)
|
||||
fulltext = models.ManyToManyField(SearchFields, related_name="fulltext_fields", blank=True)
|
||||
trigram_threshold = models.DecimalField(default=0.1, decimal_places=2, max_digits=3)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user