|
1 | 1 | import json |
2 | 2 |
|
3 | | -from django import forms |
| 3 | +from django.forms import widgets, Media |
4 | 4 | from wagtail.admin.staticfiles import versioned_static |
5 | | -from wagtail.utils.widgets import WidgetWithScript |
6 | 5 |
|
7 | 6 | from .views import render_page |
8 | 7 |
|
9 | 8 |
|
10 | | -class Autocomplete(WidgetWithScript): |
| 9 | +class Autocomplete(widgets.TextInput): |
11 | 10 | template_name = 'wagtailautocomplete/autocomplete.html' |
12 | 11 |
|
13 | 12 | def __init__(self, target_model, can_create=False, is_single=True, attrs=None): |
14 | 13 | super().__init__(attrs) |
15 | | - |
16 | 14 | self.target_model = target_model |
17 | 15 | self.can_create = can_create |
18 | 16 | self.is_single = is_single |
@@ -49,16 +47,14 @@ def value_from_datadict(self, data, files, name): |
49 | 47 | return value.get('pk', None) |
50 | 48 | return None |
51 | 49 |
|
52 | | - def render_js_init(self, id_, name, value): |
53 | | - return "initAutoCompleteWidget({id});".format( |
54 | | - id=json.dumps(id_), |
55 | | - ) |
56 | | - |
57 | 50 | @property |
58 | 51 | def media(self): |
59 | | - return forms.Media( |
| 52 | + return Media( |
60 | 53 | css={ |
61 | 54 | 'all': [versioned_static('wagtailautocomplete/dist.css')], |
62 | 55 | }, |
63 | | - js=[versioned_static('wagtailautocomplete/dist.js')], |
| 56 | + js=[ |
| 57 | + versioned_static('wagtailautocomplete/dist.js'), |
| 58 | + versioned_static('wagtailautocomplete/controller.js'), |
| 59 | + ], |
64 | 60 | ) |
0 commit comments