implemented dropdowns for fk fields in product and company admin

This commit is contained in:
Sam
2021-03-09 11:30:54 +00:00
parent 2a731b3c3b
commit 0fee0a2f6d
4 changed files with 13 additions and 2 deletions

View File

@@ -57,6 +57,7 @@ INSTALLED_APPS = [
'anymail', 'anymail',
'storages', 'storages',
'mapwidgets', 'mapwidgets',
'django_admin_listfilter_dropdown',
# local apps # local apps
'core', 'core',

View File

@@ -1,6 +1,7 @@
from django.contrib import admin from django.contrib import admin
from django.contrib.gis.db.models import PointField from django.contrib.gis.db.models import PointField
from django_admin_listfilter_dropdown.filters import DropdownFilter, RelatedDropdownFilter
from mapwidgets.widgets import GooglePointFieldWidget from mapwidgets.widgets import GooglePointFieldWidget
from . import models from . import models
@@ -10,7 +11,7 @@ from . import models
class CompanyAdmin(admin.ModelAdmin): class CompanyAdmin(admin.ModelAdmin):
list_display = ('short_name', 'city', 'email', 'shop', 'platform', 'sync', 'is_validated', 'is_active', 'link') list_display = ('short_name', 'city', 'email', 'shop', 'platform', 'sync', 'is_validated', 'is_active', 'link')
list_filter = ('platform', 'sync', 'is_validated', 'is_active', 'city') list_filter = ('platform', 'sync', 'is_validated', 'is_active', 'city')
search_fields = ('short_name', 'company_name', 'email', 'web_link') search_fields = ('short_name', 'company_name', 'email', 'web_link', ('city', RelatedDropdownFilter))
formfield_overrides = { formfield_overrides = {
PointField: {"widget": GooglePointFieldWidget} PointField: {"widget": GooglePointFieldWidget}

View File

@@ -1,5 +1,7 @@
from django.contrib import admin from django.contrib import admin
from django_admin_listfilter_dropdown.filters import DropdownFilter, RelatedDropdownFilter, ChoiceDropdownFilter
from . import models from . import models
from . import forms from . import forms
@@ -12,7 +14,13 @@ def model_admin_callable(co):
class ProductAdmin(admin.ModelAdmin): class ProductAdmin(admin.ModelAdmin):
form = forms.ProductTagForm form = forms.ProductTagForm
list_display = ('name', 'category', 'sourcing_date', 'company', 'active' ) list_display = ('name', 'category', 'sourcing_date', 'company', 'active' )
list_filter = ('company', 'tags', 'category', 'attributes') list_filter = (
('company', RelatedDropdownFilter),
('tags', RelatedDropdownFilter),
('category', RelatedDropdownFilter),
('attributes', RelatedDropdownFilter)
)
search_fields = ('name', 'sku', 'description') search_fields = ('name', 'sku', 'description')

View File

@@ -17,6 +17,7 @@ woocommerce==2.1.1
django-autocomplete-light==3.8.2 django-autocomplete-light==3.8.2
# manually install `pip install --default-timeout=100 future` to avoid wcapi to timeout # manually install `pip install --default-timeout=100 future` to avoid wcapi to timeout
django-map-widgets==0.3.0 django-map-widgets==0.3.0
django-admin-list-filter-dropdown==1.0.3
# required for production # required for production
django-anymail[amazon_ses]==8.2 django-anymail[amazon_ses]==8.2
boto3==1.17.11 boto3==1.17.11