working to fix tag widgets in admin

This commit is contained in:
Sam
2021-03-04 12:37:15 +00:00
parent c99b81b751
commit 657b717c07
7 changed files with 50 additions and 4 deletions

View File

@@ -34,8 +34,11 @@ SECRET_KEY = 'td*#7t-(1e9^(g0cod*hs**dp(%zvg@=$cug_-dtzcj#i2mrz@'
# Application definition
INSTALLED_APPS = [
'dal',
'dal_select2',
'suit',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
@@ -54,7 +57,6 @@ INSTALLED_APPS = [
'anymail',
'storages',
# local apps
'core',
'geo',

View File

@@ -42,5 +42,6 @@ urlpatterns = [
path('api/v1/my_company/', company_views.my_company , name='my-company'),
path('api/v1/my_products/', product_views.my_products, name='my-products'),
path('api/v1/stats/me/', stat_views.track_user, name='user-tracker'),
path('api/v1/autocomplete/category-tag/', product_views.CategoryTagAutocomplete.as_view(), name='category-autocomplete'),
path('api/v1/', include(router.urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View File

@@ -1,10 +1,21 @@
from django.contrib import admin
from . import models
from . import forms
# Register your models here.
class CagtegoryAdmin(admin.ModelAdmin):
form = forms.CategoryTagForm
class CategoryInline(admin.TabularInline):
model = models.CategoryTag
form = forms.CategoryTagForm
admin.site.register(models.Product)
admin.site.register(models.TreeTag)
admin.site.register(models.CategoryTag)
admin.site.register(models.CategoryTag, CagtegoryAdmin)
admin.site.register(models.AttributeTag)

14
products/forms.py Normal file
View File

@@ -0,0 +1,14 @@
from dal import autocomplete
from django import forms
from .models import CategoryTag
class CategoryTagForm(forms.ModelForm):
class Meta:
model = CategoryTag
fields = ('__all__')
widgets = {
'category': autocomplete.ModelSelect2(url='cagtegory-autocomplete')
}

View File

@@ -34,7 +34,6 @@ class AttributeTag(TagTreeModel):
# autocomplete_view = 'myapp.views.hobbies_autocomplete'
class Product(models.Model):
SYNCHRONIZED = 'SYNCHRONIZED'

View File

@@ -16,10 +16,11 @@ from rest_framework.filters import OrderingFilter
from django_filters.rest_framework import DjangoFilterBackend
import requests
from products.models import Product
from products.models import Product, CategoryTag
from products.serializers import ProductSerializer, TagFilterSerializer, SearchResultSerializer
from companies.models import Company
from history.models import HistorySync
from dal import autocomplete
from back_latienda.permissions import IsCreator
from .utils import extract_search_filters, find_related_products_v3, find_related_products_v6, product_loader
@@ -214,3 +215,20 @@ def product_search(request):
return Response(data={"filters": filters, "count": total_results, "products": result_list, 'prices': prices})
except Exception as e:
return Response({"errors": {"details": str(e)}}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
class CategoryTagAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
# Get the tag model dynamically
Tag = Product.category.tag_model
# Return nothing if not auth
if not self.request.is_authenticated():
return Tag.objects.none()
qs = Tag.objects.all()
if self.q:
qs = qs.filter(name__istartswith=self.q)
return self.q

View File

@@ -14,6 +14,7 @@ drf-extra-fields==3.0.4
django-ipware==3.0.2
geoip2==4.1.0
woocommerce==2.1.1
django-autocomplete-light==3.8.2
# manually install `pip install --default-timeout=100 future` to avoid wcapi to timeout
# required for production
django-anymail[amazon_ses]==8.2