kopia lustrzana https://github.com/jedie/PyInventory
46 wiersze
1.3 KiB
Python
46 wiersze
1.3 KiB
Python
"""
|
|
Work-a-round for:
|
|
https://github.com/radiac/django-tagulous/issues/164
|
|
"""
|
|
from django import forms
|
|
from django.contrib.admin.widgets import AutocompleteMixin
|
|
from tagulous import settings as tagulous_settings
|
|
from tagulous.forms import AdminTagWidget, BaseTagField
|
|
from tagulous.models import SingleTagField, TagField
|
|
|
|
|
|
class AdminTagWidget2(AdminTagWidget):
|
|
@property
|
|
def media(self):
|
|
# Get the media from the AutocompleteMixin - this will give us Django's
|
|
# vendor jQuery and select2
|
|
class GetMedia(AutocompleteMixin, forms.Select):
|
|
pass
|
|
|
|
dependency_media = GetMedia(None, None).media
|
|
tagulous_media = forms.Media(
|
|
js=tagulous_settings.ADMIN_AUTOCOMPLETE_JS,
|
|
css=tagulous_settings.ADMIN_AUTOCOMPLETE_CSS,
|
|
)
|
|
all_media = dependency_media + tagulous_media
|
|
|
|
return all_media
|
|
|
|
|
|
class BaseTagField2(BaseTagField):
|
|
widget = AdminTagWidget2
|
|
|
|
|
|
class TagulousModelAdminFix:
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
|
|
self.formfield_overrides[SingleTagField] = {
|
|
'form_class': BaseTagField2,
|
|
'widget': AdminTagWidget2,
|
|
}
|
|
self.formfield_overrides[TagField] = {
|
|
'form_class': BaseTagField2,
|
|
'widget': AdminTagWidget2,
|
|
}
|