forked from yourlabs/django-autocomplete-light
-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG
958 lines (670 loc) · 34.1 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
3.2.4
#813: Return 400 on invalid input by @EvaSDK
3.2.3 Two seriously good community contributed bugfixes
#799: Support serializing UUIDs and add tests for models with UUIDs as PKs
by @blag
#826: Prevent rendering of empty option on multi select
by @beruic
3.2.2 Test fixes, Django 1.10 and 1.11
3.2.1
#737: TaggitSelect2: insure there's a comma when there's only one tag, or
tag "Multi word" would end up as "Multi" and "word" by
@Ixxy-Open-Source
#743: Fix placeholder not working when URL is not given to autocomplete
widget (#743) by @thauk-copperleaf
#756: Forward Capabilities Outside Admin by @gagarski
3.2.0
#745: Add list autocomplete by @dmosberger, @jpic and @thecardcheat
#754: dal_queryset_sequence documentation update by @chubz
#734: Move create_option functionality into it's own method @andybak
#741: Fix initial value not set when selected choices aren't strings
@thauk-copperleaf
#733: Advanced forward features @gagarski
#752: Add doc test to CI by @jpic
#730: Resolve SystemCheckError fields.E304 @thecardcheat
#721: Note about placement of DAL before grappelli by @chubz
#748: Update docs example about loading jquery outside the admin @jpic
Mid version number bumped as a tribute to the new major features that were
added, however, there is no know backward compatibility break from 3.1 to
3.2.
3.1.8 #727 Add missing static files
3.1.7
#714: Update select2 by @meesterguyman
#705: Improve compat with dj1.9 by @9nix00
#706: Fix extra require by @blueyed
#710: Added note for static files not checked by @geekashu
#708: Provide path with dal_select2.E001 by @blueyed
#700: Enable HTML markup in select2 item labels by @njoyard
3.1.6
#671: Create_field support with querysetsequence
#679: Allow create message translation by @maisim
#682: Extend 'forward' attribute to creating objects as well by @toudi
#666: Improved missing 'created_field' error by @guettli
#670: Javascript loading documentation
#678: Added example to update autocompletes in JS
3.1.5
#661: Field forwarding: support form prefix, and formsets at the same time.
#628: Improve option rename hook used until the patch is merged upstream in
select2.
#656: Use http.JsonResponse() to return json by @guettli
#638: System check for dal_select2 to raise an error if select2 is not
available.
#662: Examples for setting placeholder and minimum input length options in
select2.
#619: From django-sbo-selenium to pytest+splinter.
3.1.4 #646: Released way too much node_modules in select2, sorry !
3.1.3 #640: Bugfix: Taggit select2 widget in invalid forms
3.1.2
- #634: Select2 Upgrade
- #628: Do not rely on ids to fix container text
- #631: Initializing GFKs with values from forms
- #623: Fix setup.py extras by @ticosax
- #610: Cancel out Django's style on lists
3.1.1 Forgot vendor files in 3.1.0
3.1.0
- ! BC BREAK ! CreateModelField is gone, it didn't work when another field
of the form didn't validate. There isn't a really sane way to create the
option in the form field field. Instead, this is done in the view, like
in DAL v2.
- ! BC BREAK ! dal_tagulous was removed in favor of django-tagging, because
tagulous already provides its implementation of a select2 widget.
- #610 Fixed a rendering issue with multiple selects. Upstream patch
proposed but not merged yet: select2/select2#4226
For details about the current status and plan, please consult the
announcement:
http://blog.yourlabs.org/post/140477620808/django-autocomplete-light-v3-whats-going-on
3.0.4 #586 Prune select2 docs by @eraldo
3.0.3 #586 Include all in MANIFEST by @eraldo
3.0.2 #575 Prevent Django admin from setting up jQuery with noConflict
3.0.1 #573 Updated MANIFEST to include static files.
3.0.0 Rewrite: easier to use, test, maintain and support.
2.3.3
- #563 Don't disable multiplechoicewidgets if select is [multiple]
- Don't import anything in __init__ anymore if on django 1.9
- test_project fixes, for the above.
2.3.2 JAL#20 Don't disable multiplechoicewidgets by @JaHicks
2.3.1 Forgot the static files in 2.3.0.
2.3.0
- #555 Django 1.4, 1.5 and 1.6 deprecation
- #497 Enable registration by model-name by @luzfcb
- #536 #551 Support proxy models by @onrik
- #553 improved jQuery integration by @blueyed
- #516 Corrected french transation by @apinsard
- #541 Use error_messages on FieldBase to allow overrides by @dsanders11
- #505 Ordering alias clash fix by @sandroden
- #515 Polish translation update by @mpasternak
- #543 ModelChoiceField requires the queryset argument
- #494 ModelChoiceField Watch changes to 'queryset' by @jonashaag
- #514 Fixed deprecation warning on Django 1.8 by @spookylukey
- #498 #548 improved i18n support
- #547 prevents loading genericm2m if not in INSTALLED_APPS
- JAL#18 Fix: Get value.length while value is null by @hongquan
- JAL#19 Clarify license by @stevellis, all MIT
- JAL#17 Disable the widget input when it is not in use @dsanders11
- JAL#15 Support openning results in new tab @thebao
- JAL#14 Don't autohilight first choice by default @pandabuilder
- JAL#13 Add option for box aligning with right edge of input @dsanders11
IMPORTANT
#536 At this point, proxy model support is untested, this is because I intend
to refactor the test suite and documentation during the 2.3.x serie.
#494 Updating the queryset from outside the autocomplete class may lead to a
security problem, ie. if you don't replicate filters you apply manually on the
autocomplete object choices into choices_for_request() then a malicious user
could see choices which they shouldn't by querying the autocomplete directly.
3.0.0 will have automatic widget and / or field (in cases like gfk/gm2m)
registration to the view like in django-select2 using queryset.query caching
which would resolve that use-case.
It's a pretty big release and I waited a while because I wanted all
contributors to benefit from it and work on the same codebase instead of
privileging one to another, not sure if it was the best way, let me know !
2.2.9, 2.2.10
[JAL] #12: Use exisiting input value for initial autocomplete query
#503: Fix Django 1.9 import error.
2.2.9 release has not the updated AUTHORS and lacks note about #503 in
CHANGELOG, re-uploading as 2.2.10.
2.2.8
#478, #472: "change related button" isn't clickable when it shouldn't.
2.2.7
yourlabs/jquery-autocomplete-light#11: jqXHR.abort considered harmful,
@dsanders11 fixes BrokenPipe.
yourlabs/jquery-autocomplete-light#10: consistency fix: use $ instead
of jQuery for new functions by @dsanders11
yourlabs/jquery-autocomplete-light#9: New parameter to disable
auto-hilighting on first choice #9 by @superzazu, should fix #495 too.
#477: Widget's render should use attrs even when created wthing __init__ by
@sandroden.
2.2.6
jquery-autocomplete-light/#8: Positionning bug fix by @marianobianchi,
jquery-autocomplete-light/#6: Bugfix: Firefox won't hide input after
reload
when option was selected by @marianobianchi,
#483: German translation by Mounir Messelmeni
#476, #474, #482, documentation improvements by Mounir, Visgean Skeloru and
Florentin Hennecker.
2.2.5
#452 Fix the case where there is a cap in the pg table or column name
#454: AutocompleteModel.order_by being a list would crash.
2.2.4
#463 Update jquery-autocomplete-light which contains IE8 fixes.
yourlabs/jquery-autocomplete-light#4 by @RaphaelKimmig.
2.2.3
#447: Ambiguous column names strikes again. This time we're using the
.column field attribute and covered a couple of cases including model
inheritance.
yourlabs/jquery-autocomplete-light#4 fixed clearInputOnSelectChoice
behaviour by @RaphaelKimmig:
- by clearing autocomplete.value as well as input.val we make sure that
subsequent clicks will not open the autocomplete filtered by a value that
is no longer visible to the user
- by clearing the input before triggering the focus we make sure the
minimumCharacters settings is honored
2.2.2
#422: Ambiguous column names in AutocompleteModelBase.
Also removed a generic exception expect/pass.
2.2.1
Django 1.8 admin support hacks broke create_choices_on_the_fly example and
probably some other wicked JS things in user projects.
Note that we have also extracted django admin specific hooks from widget.js
into django_admin.js. So if you have custom JS loading in the admin instead
of `{% include 'autocomplete_light/static.html' %}` then you should update
it to include django_admin.js in django admin.
2.2.0
- #318: Remove extra spaces rendered in choices.
- #438: Hide autocomplete on scroll in Firefox because it bugs (temp fix).
- #432: New bootstrap_modal test_app by @lucky-user.
- #118: Extracted JS into a standalone jquery-plugin:
https://github.com/yourlabs/jquery-autocomplete-light
2.2.0rc8
- #408: Django admin's new edit link was implemented in such a way that
it's unable to generate itself properly server-side on initial rendering.
2.2.0rc7
- call fixPosition() on window resize if the autocomplete box is shown.
2.2.0rc6
- #431 strikes again, default to body when it can't find a relevant
container.
2.2.0rc5
- Reduce default latency because hardware is better.
- #431: Dynamic evaluation of the autocomp box container.
2.2.0rc4
@lucky-user contributed Opera/Chromium improved support.
2.2.0rc3
- #429: handle required=True in form fields again, regression introduced
in rc1's python BC break.
- #426: handle z-index since we're absolutely-positioning in 2.2.x
Thanks a lot to the rc tester community
2.2.0rc2
- #425: fixed blunt JS errors.
- Do not add pip debug log (~/.cache/pip/log/debug.log) to Travis cache.
- Just install 'pip>7', potentially using an updated version on Travis.
- Use travis_retry with "pip install", and also for `npm install`.
2.2.0rc1
PENDING BREAK WARNING, Django >= 1.9.
The good old ``import autocomplete_light`` API support will be dropped with
Django 1.9. All imports have moved to ``autocomplete_light.shortcuts`` and
importing ``autocomplete_light`` will work until the project is used with
Django 1.9.
To be forward compatible with Django master (>=1.9) support, replace::
import autocomplete_light
By:
from autocomplete_light import shortcuts as al
This will also make your scripts a lot shorter.
CSS BREAK
We've moved back to pre-1.1.10 CSS positioning. This means appending the
autocomplete box to an arbitrary DOM element (body by default) and using
calculating the ``top`` and ``bottom`` attribute in javascript with
``yourlabs.Autocomplete.fixPosition()`` pretty much like Django admin's
calendar widget does. While blunt, this change should help the widget being
more compatible across Django admin themes.
While this positioning system has been used since around 2005 in Django
when Adrian Holovaty open sourced admin media in commit dd5320d, it has
never been documented that's it's a good system that works well and there's
no reason to break backward compatibility in Django admin for that
- note to Django admin template customizers.
JS BREAK
Javascript ``yourlabs.Autocomplete`` object does not bind to the same
events as it used too. Event handling has been backported from twitter
typeahead and tested on firefox and android (#411).
PYTHON BREAK
The form field doesn't call ``super().validate()`` anymore and now
completely relies on ``AutocompleteInterface.validate_values()``. This was
how ``django-autocomplete-light`` was initially designed for, kudos to
@zhiyajun11 for pointing it out ! This optimises code which was doing
validation twice and gives the flexibility it was initially designed for
from within the Autocomplete class (#410).
SQL BREAK
Model Autocompletes now generate custom SQL be able to save the order in
which users have filled an autocomplete field. This actually comes from the
last 2.x version.
CHANGES
Most users won't notice the break except maybe the CSS ones and of course
also for Django 1.9 users.
- #419: ANSI SQL compliance (@sbaum)
- #413: Exception when using models having primary key names different from
id.
- #412: Support models with a pk different than "id" and non-numeric.
(@mhuailin)
- #411: Android compatibility (js bind changes).
- #410: Removed double validation by not calling suport of ``Field.validate()``.
- #408: Support Django 1.8 change-link.
- #409: Compatibility with non-autocomplete inputs present in the widget
(@SebCorbin)
CONTRIBUTING CHANGES
Pip wheel has been temporarely disabled because django-autoslug broke it,
any help here is welcome, I did my best in the various fix/*wheel*
branches but Travis won xD
There's a mission to extract the JS part and package it as a standalone
jQuery library to get more pull requests on the JS / CSS part. It sounds
like a pretty good start in the JS / UI testing and packaging world. Any
help there is welcome.
CI now has tests against MySQL and PostgreSQL since we're generating custom
SQL.
Again welcome to new contributors @mhuailin and @SebCorbin and thanks all
for reporting issues on GitHub with all needed details and forks which make
it easy to reproduce.
And thanks to @blueyed who helped sinking this year's backlog like crazy.
2.1.1 Not sure how the 2.1.0 release got on PyPi, marked "hidden", bumping and
uploading a new version rather than removing it as it might have already
been deployed somewhere.
2.1.0 Final release.
2.1.0rc4
- #331: Fixed reverse order of items in deck, by @smcoll.
2.1.0rc3
- PEP396: autocomplete_light.__version__.
- #401: Easy to subclass FieldBase for custom ModelChoiceField (@smcoll),
- #397: Support defining Meta in a ModelForm's parent.
- #394: Add comment about keyCode issue with Webkit; check for charCode==0
2.1.0rc2: Maintain BC again in autocomplete_light ns until dj19
2.1.0rc1: Friendship release
BACKWARD COMPATIBILITY BREAK
There was a bug which caused registering an autocomplete with a model
attribute to be renamed by the registry to prefix the autocomplete name
with the model name. This should not be the case anymore, but some
autocomplete names might have changed in your project if you've been
working around that bug by using the buggy name rather than forcing name=
uppon registration. Example:
class Foo(YourBaseAutocomplete):
model = Bar
autocomplete_light.register(Foo)
The above example Would cause 'FooBar' to be registered, but now it's just
'Foo' as expected. So if you're using 'FooBar' instead of 'Foo' anywhere it
should break. See #323 / 255263e61 for gory details.
DEPRECATION WARNING
Because Django 1.9 is so sharp on import, ``import autocomplete_light``
should become ``import autocomplete_light.shortcuts as autocomplete_light``
in your projects. Backward compatibility will be maintained, but you don't
get all the shortcuts from ``import autocomplete_light`` anymore starting
Django 1.9.
- Django 1.8, 1.9 support: fixed warnings, use pytest-django
- #383: Support ModelForms without Meta.model
- #313: Model not acquired from AutocompleteModelBase
- #323: Only derivate the autocomplete name if both model and autocomplete
are passed
- #378: Be friendly with special html chars in values (David Aurelio)
- #381: The "open parentheses" (shift+9) cannot be typed on autocomplete
field.
- #380: PyPy support: PyPy2 tests passes without genericm2m and without
taggit. PyPy3 tests won't run because lxml won't install. (Piet Delport)
- #374: Update clear-fix with latest version,
- Also Daniel Hahler made an outstanding job in the test area, builds are a
lot faster, using tox, pytest-django.
- Daniel Hahler is the second owner of YourLabs org, way to go !
So we got 7 bugs fixed, PyPy support, Django 1.8 and Django 1.9 support (we
support 1.4 to 1.9 now).
Thanks a lot to Daniel Hahler for having couch-hosted me the last 7 days in
Berlin, we've been hacking like crazy, it was really awesome, I went there
for some hacking and now I know I have a friend for life.
See you for the next django-autocomplete-light sprint ;) Who's hosting BTW
?
2.0.9:
- #257: Got rid of RemovedInDjango18Warning deprecation warnings.
- #371: Skip unuseable virtualfields, like VoteManager for django-vote.
- #372: New PEP8 E731 support.
2.0.7:
- Removed unused module (autocomplete_light.generic),
- choices_for_request: assert that search_fields is not a string
- #354: Choices=[] should not crash.
- also: cleaned 2.x, code coverage increase
- also: stable/2.x.x deprecated in favor of master
- also: tests against django (1.8) master enabled but allowed to fail
- also: promoted @blueyed to core-dev, rock'on B)
2.0.6: #282: add-another in admin too (see message for 02a555cef3d)
2.0.5: Code removal
2.0.4: #347: Django 1.7 AppConfig support
2.0.3: #337: Fixed error in text_widget.js
2.0.2
- #334: Fixed display of autocomplete with clearfix (by @madEng84)
- #336: Added compiled po files
- #335: Removed debug statement
2.0.1: Initial stable release
2.0.0a18: #292: Enable clear-ing nullable GFKs with the form.
2.0.0a17: #280: Do not depend on django on install.
2.0.0a16:
- #252: Not all INSTALLED_APPS are modules (Django 1.7),
- #270: SelectMultipleHelpTextRemovalMixin multiple language support,
- #267: Delegate add-another url generation to Autocomplete class,
- #269: make build_widget_attrs thread-safe,
- #250: Fix ChoiceField.get_choices(),
- #192: Auto-load local jquery if not loaded already,
- Django 1.7b2 support.
2.0.0a15:
- Honor Meta.widgets,
- Added .modern-style class for autocomplete widget,
2.0.0a14: Added missing extensions to MANIFEST
2.0.0a13: Fix #244: Added ajax loading in input.autocomplete.
2.0.0a12: !! BC BREAK !! Renamed input_attrs to attrs to be consistent
with django.
2.0.0a11:
- #241 IE11 compatibility fix on text autocomplete contributed by Jonathan
Wiklund (@MaZZly)
2.0.0a10:
- Implemented autocomplete_names support to override the default
Autocomplete class used for a given model form field,
- Make the first Autocomplete class the default autocomplete (for generic
and model).
- Implemented lazy autocompletes: you can refer to an autocomplete class
before it is discovered.
- Import TaggitField and TaggitWidget in autocomplete_light.
2.0.0a9:
- Fix #219: autocompletes now convert None value to an empty list, as
Autocomplete promises that values is a list. (Fixed gfk in inlines)
- Fix #226: improved css/js positioning.
- Fix #231: widget.js was re-initializing widgets.
- Fixed taggit support
- Fix: label was not set for gmtm and gfk in inlines.
2.0.0a8:
- Updated pt_BR translation contributed by Fábio C. Barrionuevo da Luz (@luzfcb).
2.0.0a7:
- Removed a layer of complexity by trading autocomplete_js_attributes and
widget_js_attributes for attrs (for input/autocomplete object) and widget_attrs
(for widget container/widget js object).
- Fixed naming conventions issues:
- #124: css class .choiceDetail should be .choice-detail, same for
.choiceUpdate
- #97: rename .div css class to .block,
- Fixed #84: data-autocomplete-placeholder is gone in favor of the
placeholder attribute.
- Fixed #82: data-* is not parsed anymore by yourlabs.Widget, data-widget-*
is parsed for options instead.
- Fixed #81: js Autocomplete object now parses data-autocomplete-* for
options,
- Fixed #80: js maxValues is now maximumValues.
- Fixed #27: refactored selenium tests to be able to test any example app.
- Bugfix: get_autocomplete_from_arg returned wrong autocomplete in two cases
2.0.0a6:
- Simplified widget template selection.
2.0.0a5:
- Support for Django 1.6's ModelForm.Meta.fields = '__all__', generic fk
and generic m2m autocomplete fields were not created.
2.0.0a4:
- Fix #204: Restore AutocompleteModelBase as default,
- Fix #205: Support Python3 in views,
- Fixed 404 response in AutocompleteView.
2.0.0a3:
- Do not interfere with non-autocomplete-enabled form fields,
- Ported taggit support to Python3,
- Renamed TaggitTagField to TaggitField and integrated TaggitField into
autocomplete_light.ModelForm,
2.0.0a2:
- Make AutocompleteModelTemplate the default autocomplete base for models.
- Added ChoiceField and MultipleChoiceField.
- Renamed .div class to .block, backward compatibility is preserved.
- BC Break: Restyled autocomplete widget to look more modern. If you want
the old style back, include autocomplete_light/old_style.css.
2.0.0a1:
- Fix #168: ensure that autocompletion inputs behaves like django
when it comes to values that were removed from the queryset.
2.0.0pre:
There are minor backward compatibility breaks due to the
reorganization of form classes. The best way to upgrade is to
inherit from autocomplete_light.ModelForm.
- autocomplete_light.FixedModelForm was renamed to
autocomplete_light.SelectMultipleHelpTextRemovalMixin and is now
a mixin for ModelForm. Inherit from both that and
django.forms.ModelForm to get the same.
- GenericModelForm was renamed to
GenericM2MRelatedObjectDescriptorHandlingMixin and is now a mixin
for ModelForm. Inherit from both that and django.forms.ModelForm
to get the same.
- get_widgets_dict is gone, because we now favor using form fields
which do validation where it's due: on POST.
- using widgets should still work, but using the new form fields is
better because it enables DRY validation: you don't have to
hardcode the queryset on the form field definition anymore.
To fix those, just inherit from autocomplete_light.ModelForm if
possible, else check the form API details in the source or
generated API documentation:
- https://django-autocomplete-light.readthedocs.io/en/v2/form.html#module-autocomplete_light.forms
New features:
- Added form fields, which are now in charge of validation,
- Added ModelForm which includes all features previously provided as
separated tools (generic m2m support, django issue #9321, etc, etc ...)
and overrides django's form field generator to automatically use
autocomplete fields when possible, even for generic relations.
- Python3 support.
- Tests rely on apps provided in the autocomplete_light.tests.apps
submodule instead of those provided by test_project. This make tests
potentially runnable on a user project (except that the user project
still needs to add those apps in INSTALLED_APPS).
1.4.9: Fix #193: IE8 support hacks.
1.4.8: Fix #195: RegistryView got broken on recent Django versions.
1.4.7:
- Fix #190: Remove Django 1.6 Depreciation Warning,
- Fix #189: Fixed support for USE_THOUSAND_SEPARATOR.
1.4.6:
- Fix #188: Added debouncing in autocomplete.js,
- Fix #173: load static from staticfiles.
1.4.5:
- Fix #180: Support HTTPS in remote.js,
- Fix #184: Mouse support upgrade in focus management,
- Fix #182: Removed hard-coded class="" attribute.
1.4.4: Improved IE7 and IE8 support, thanks @rhunwicks
1.4.3:
- Fix Added option clearInputOnSelectChoice, patch by @vosi
- Fix uninitialized js key, patch by @vosi
- Escape choices before putting them in html, patch by @voidus
- Added Simon Kohlmeyer to AUTHORS (Volodymyr was there already).
1.4.2 Fix #164: Support iterables in AutocompleteModel.order_by.
1.4.1
- Fix #163: Use ._default_manager instead of .objects. Thanks @kakulukia
1.4.0
- BC Break: Default split_words to False again, to **not** match behaviour
from django.contrib.admin which is definitively too naive. (Thanks
kezabelle for helping in this decision). This means that the default
behaviour is like pre-1.3.0 again.
- Enable split_words='or' to use "OR" conditions on splitted words.
- Set order_by=None by default in AutocompleteModel.
- Added missing docstrings.
- Made it easier to spot failing tests.
- Covered all combinations with tests.
1.3.1
- Support django 1.5 RelatedFieldWidgetWrapper in
FixedModelForm,
- Support django-responsive-admin theme (and probably many
other customisations) by adding a div with clear:both after
the widget.
1.3.0
- BC Break: Default split_words to True, to match behaviour from
django.contrib.admin.
- Added split_words and improved search_fields support for
AutocompleteGeneric.
- Fix #161: Avoid focusing on next field on widget initialization.
1.2.6 Fixed wrong docstring.
1.2.5 Raise AutocompleteNotRegistered instead of KeyError in
Registry.__getitem__.
1.2.4 @g1itch: Support hyphens in generic autocomplete object pks.
1.2.3 @mislavcimpersak: Croatian i18n
1.2.2 @g1itch: Rusisan i18n
1.2.1 @jojax: Fix innefective test on is popup, in autocomplete CreateView
1.2.0
- Fix #132: removed dead line of code, and restored compatibility with
autocomplete-light <1.1.29,
- Implement #136: AutocompleteModel.split_words
- Auto-hilight the first choice.
- Fix #135: AutocompleteModel is not compatible with Django 1.3
1.1.31 Fix #129: Firefox support in JS positioning code.
1.1.30 Polish translation contributed by Michał Pasternak.
1.1.29 Fix #126: support .clone(true) with values.
WARNING: This version broke cloning widgets in some cases. This was reported in
#132 and fixed in 1.2.0.
1.1.28 Regression fix: hide choiceDetail and choiceUpdate from the autocomplete
box.
This fixes the default model template, see in test_project:
http://localhost:8000/admin/default_template_autocomplete/testmodel/add/
The test_project now includes demos created by Michał Pasternak. Thankssss !
1.1.27 Fix #117: django-grappelli support.
Contributed by Michał Pasternak.
1.1.26
- Fixed #114: Use widget_template attr only when set.
- Fixed #111: Support jQuery's clone(true).
1.1.25 Fixed #108: generic inline support.
1.1.24
- Allow to override the default AutocompleteModelBase class used by register()
- Implemented django-hvad support
1.1.23: Removed django from install_requires, fixes pip install -U
1.1.22: Fixed DeprecationWarning for Django 1.5.
1.1.21 Bugfix: box was not re-shown after inputing twice the same string
of minimumCharacters length.
1.1.20 Click on modal overlay closes the popup windo
1.1.19 Make add-another popup a modality
1.1.18 Center add-another popup on screen
1.1.17 Update fr locale
1.1.16 Django 1.5 compatibility. Credit: Patrick Taylor
1.1.15 Fix #99: choices kwarg was ignored
1.1.14 Bugfix: fetchComplete now ready for textStatus == 'abort'
1.1.13
- Enhancement #78: search_fields more like admin,
- Bugfix: closed brackets in style.css (thanks papalagichen)
1.1.12 Enabled CSRF.
1.1.11 Fixed dynamic initialisation (ie. inlines).
Bug was caused by a wrong attempt at migrating from jq17 live() to jq19 on().
1.1.10
- Partial autocomplete.js rewrite using ideas from bootstrap-typeahead.js,
- Use of $.proxy() which allowed to get rid of many scope hacks like: var
autocomplete = this;
- When the maximum number of choices has been selected and the input goes,
automatically focus on next visible field,
- Do not show autocomplete if input has below minCharacters,
- CSS rewrite/debloat (~-50% SLOCs),
- Backported typeahead CSS,
- Backported typeahead autocomplete box placement strategy, hoping to fix IE10
mobile support,
- jQuery 1.9 support (thanks Nicolas Seinlet for the heads up).
1.1.9
- Use explicit check for None value instead of trueness, allowing pk=0 (thanks
@ekohl).
- Widget requires proper url setup (thanks @emesik).
- Rewrote keypress handler using recent contributions.
Also credits to @ekohl and @emesik for working on keypress handling (added to
AUTHORS).
1.1.8 (was not released on PyPi)
- Alias autocomplete_light.FixedModelForm to autocomplete_light.ModelForm.
1.1.7 Reset default hideAfter to 500, or click support is half broken.
1.1.6
- Fix #77: autocomplete.js "was not as good as bootstrap typeahea",
- Fix #72: use prototypes in JS to make code faster
Credit to Gennady (@geaden) for having the guts to criticize autocomplete.js.
1.1.5
- Added blocks in autocomplete_light/widget.html which makes it easier to
extend - without boilerplate.
- Refactor CreateView to make it easier to extend.
- Added widget.extra_context to make it easier to add context to the widget
template.
1.1.4 Enter submits the form is there is no selected choice.
Added to AUTHORS: Ewoud Kohl van Wijngaarden
1.1.3 Fix #71: Refactor HTML generation parts in widget.js
1.1.2
- Fix #68: bug when using TextInput with a custom class,
- Fix #30: exclude already selected items from model autocomplete,
- Fix #60: got rid of updateWidgets(),
- Fix #63: default template for AutocompleteModelTemplate,
1.1.1
- Added option to disable watch of autocompletes hidden selects,
- Performance improvement on inlines,
- Provide: autocomplete_light.FixedModelForm,
- Allow override of form kwarg in modelform_factory,
- taggit support: warn that commit=False is not supported by TagField,
- Optimize updateWidgets with the help of DOMNodeInserted,
- Avoid ImproperlyConfigured when using CreateView directly for popups only,
- Mentioned python 2.6 support,
- Django 1.5 support in test project
1.1.0 BC break in templates.
- Fix #51, replaced <div> tags by <span class="div">, this
enables rendering the widget in inline tags such as with {{
form.as_p }}, and also makes it valid HTML.
- Fix #58, remove restrictions in choices_for_values.
- Added to AUTHORS: Marc Hörsken.
1.0.26 Fix #25: Prevent accidental inclusion of autocomplete_light/static.html
1.0.25 Added support for django-taggit in django.contrib.taggit_fields.
1.0.24 Added pt_BR translation, thanks Fábio C. Barrionuevo da Luz.
1.0.23 Added FixedModelForm, workaround django issue #9321.
1.0.22 Fix #46: $.data striped leading zeros from data-value
1.0.21 Added addanother.js, allowing to 'add another' even outside the admin.
1.0.20 Added AutocompleteBase.empty_html_format and spanish translation.
1.0.19 Locale/UX improvements suggested by vibragiel.
1.0.18 CSS Improvements by Michal Pasternak
1.0.17 Fixed a bug with cache concerning keyboard navigation and dependent
autocompletes.
1.0.16 Added CharField autocompletion for comma separated values.
1.0.15 Holliday release
- Fix #31: Workaround firefox form tempering attitude on reload
- Fix #33: Rename LICENSE.txt to LICENSE
- Fix #34: STATIC_PREFIX changed to {% static %} in templates
- Fix #34: Added readme in russian
- Fix #36: Removed old javascript-placeholder code from widget.js
- Fix #38: Invalid CSS background property
- Added to AUTHORS: @balmaster, @vosi, Brant Young (I hope i didn't
forget anyone, if so please let me know)
Note that except for #31, fixes were provided by the community, thanks a
lot !
1.0.14 Added support for custom javascript initialization on autocomplete
creation, ie. inlines.
It is backward compatible, but you should migrate your custom javascript
to:
0) Use $(document).bind('yourlabsWidgetReady', ...) instead of
$(document).ready(...) to initialize autocomplete widgets
1) Use
$('.autocomplete-light-widget[data-bootstrap=...]').live('initialize', ...)
to instanciate autocomplete widgets instead of
$('.autocomplete-light-widget[data-bootstrap=...]').each(...)
See docs or remote.js for an example.
1.0.13 Use HTML5 placeholder, javascript API support for cloned widgets.
1.0.12 Fixed a crash when yourlabsAutocomplete was called on no element, fixed
div id and removed debug statement.
1.0.11 Fugbix AutocompleteRestModel could not rely only on uniques, so it
relies on get_or_create_by in that case
1.0.10 Fugbix models with a non numerical pk where not accepted anymore by a
spec, the spec was removed from tests and this case is fixed.
1.0.9 Bugfix in remote autocomplete
1.0.8 Fixed keyboard navigation, 1.0.7 broke tests
1.0.7 Tested support for autocompletes that depend on each other.
1.0.6 Enhancement: set class 'autocomplete-light-widget' to autocomplete outer
containers created by widget.js
1.0.5 Enhancement: made rest model local object fetcher less harsh when trying
to find a local object
1.0.4 Bugfix: registering a generic autocomplete with a custom name did not
use the custom name
1.0.3 Default search_names to 'name' if the model has a name field
1.0.2 Bugfix & refactor django admin + popup
1.0.1 Slight ergonomy improvement
1.0.0 (Almost) full rewrite
- "Channel" is gone in favor of "Autocomplete"
- More unit tests and new selenium tests
- Javascript rewrite, for consistency and documentation
- New view on /autocomplete_light/ allows admins to view the registry
0.6 No pity for insane bloat removal
Backward compatibility break: {% autocomplete_light_static %} was removed.
Instead, use {% include 'autocomplete_light/static.html' %} as demonstrated
in the "Quick start" documentation.
Note that autocomplete_light/static.html does not include
cities_light/autocomplete.js, so you have to load it yourself now.
0.5
No backward compatibility break.
- Bugfix in generic channel example: demonstrate how to query_filter on
multiple queryset types.
- Bugfix in GenericForeignKeyField: allow none value.
- Enhancement: autocomplete_light.contrib.generic_m2m supports generic many
to many relations.
- Enhancement: allow registration of model with custom channel attributes,
this allows to register a model with another "search_name" than "name"
without subclassing.
- Documentation improvements.