Skip to content
Go to file
Latest commit 56b1cfa Oct 13, 2020 History
3 contributors

Users who have contributed to this file

@jpic @gagarski @glogiotatidis
1165 lines (815 sloc) 41.6 KB
Fix #1175: Rebuild js
A LOT of fixes, but they come at a price ...
You now MUST register your custom init functions as per
#1171 data-html and object creation bugfix by @syserr0r
#1182 fix production with select2 upgrade by @MarkRunWu
#1169 implement search_fields and split_words by @MuckRock
#1145 fix post method parameters by @erdnax123
#1162 JS load order issues by @danielmorell
#1157 jQuery loading by @danielmorell
#1162 fix by @danielmorell this one introduces the breaking changes
#1129 fix rtfd autobuild by @jpic
#1158 remove calculated width by @nad2000
#1159 Fix UUID for GFK models by @sayeghr
#1138 Replace DOMNodeInserted with MutationObserver by @CristopherH95
#1144 doc typo fix by @timgates42
Flake8, Tox, Travis CI, tests ... fix by @jpic
3.7.0 & 3.6.0
Well, Pypi won't let me upload there, it says:
HTTPError: 400 Client Error: This filename has already been used, use a different version. See for more information. for url:
But I only see 3.6.0.dev0 and 3.6.0.dev1 and 3.7.0.dev0, I suppose I should
have done pre-releases on 3.6.dev0 and 3.7.dev0.
Anyway, it lets me upload on 3.8.0, one of the last 3.x releases !
But don't worry, 4.0 will not break anything, it will merely add a new
autocomplete script for people who want out of select2 or want something
more like what we had in DAL 1 & 2, it's here:
For those who remember, this solves *exactly* the same problems that
jquery-autocomplete-light did, except it's a lightweight StencilJS
WebComponent now.
This release actually never hit Pypi.
jquery.js was still loaded by the widget, fixed by @timthelion
- jquery.js has been **removed** from, this means that you are
now responsible for ensuring that jquery is loaded in your page prior to
displaying the form (
- trailing dash was replaced by underscore in forward conf, ie.
dal-forward-conf-for-id_test becomes dal-forward-conf-for_id_test
#1115: Compatibility with Django 3.0 by Alexandr Artemyev @mogost
#1079: Fixed access to $.fn.select2 by David @dwasyl
#1118: Highlight select field with error to match Django style by @tchatow
#1099: django-nested-admin forwarded field fix by @akshenc
Also, tests now run fine on Travis thanks to @jorrit-wehelp
3.4.1 Fix #1108: i18n path (thanks @philgyford for report)
3.4.0 Python 2 and Django < 2.0 support
3.3.4 re-release without dirty source
3.3.3 django < 2.0 support with dal_static contributed by @andybak
3.3.2 django.contrib.admin fix static files by @coredumperror
- Fixed a bug in the way jquery.init.js was being used by @coredumperror
- Set select2 container CSS class to :all: @hbielenia
- Added missing renderer parameter to render method for django 2.1 @monim67
- Fix ImportError with SELECT2_TRANSLATIONS in Django 1.x @hugorodgerbrown
- Forward argument should always be a tuple @jihoon796
- Fixed exception thrown from Select2QuerySEtView when paginate_by is set
- use admin statics
- #981: create option behaviour
- #995: automatically generated views for generic foreign key fields
- Getting placeholder and minimumInputLength from dal select
- #1017: Initial migrations and database
- Turkish translation
- Added support for forwarded fields to Select2GenericForeignKeyModelField
#895: Self() and JavaScript() forward features
#843: Forward logic refactored. Specifications for types of forwarded values.
#957 remove reference to deleted script (rebase issue introduced in
Revert 5b37f8661, fixes tests.
This version supports Django 2.0 and Python 3.6, perhaps more but I have not
tested, please submit compatibility patches for older versions if needed.
Please test them with tox -e base-py36-django20-sqlite before pushing.
To install 3.3.0-rc1, use `pip install django-autocomplete-light==3.3.0-rc1`.
New features:
#953: Select2 update to by @jpic
#917: django-nested-admin support by @loicteixeira
#815: Simplify customization of autocomplete views by @EvaSDK
#746: Select2 Language and dynamic Media by @luzfcb
#883: Allow overwriting the results by @eayin2
Bug fixes:
#874: Fix Django 1.11.3 error by @ikcam
#933: Python 3.6 and Django 2.0 support by @jpic
#930: QuerySetSequence querysets order is not preserved by @melvyn-sopacua
#909: Prevent initilization of other selects by @loicteixeira
#904: Fix KeyError when id is not in attrs by @dwheaton
#885: Prevent rendering of empty option on multi select by @johandc
#892: Enable different item label for selected item by @maximpetrov
#926: Atomic create_object by @jpic
#718: Remove temp hack for select2 by @FuzzAU
#860: dal: widgets: use the name if we don't have the id by @xrmx
#849: Don't create a new option if an iexact-matching one already exists by @liwenyip
Also thanks to the many documentation contributors.
#874: Fix Django 1.11.3 error by @ikcam
#937: Update tutorial.rst to fix XSS in the example by @hangtwenty
#919: Better create new object example by @davideghz
#928: Add note about slim jqueries by @melvyn-sopacua
Test notes:
I have not tested this release with other Python and Django versions,
and also tests don't pass on travis despite the effort. It's working
on all browsers here and i've chased many seleniumish race conditions
but it's not enough for travis.
So, there's no docker image available with python and selenium that
looks good i'm probably going to make one at some point but it's not
today's priority as far as I'm concerned.
So, tests are run locally which means manual action, but i've left the QA
checks on travis as mandatory because i've fixed so many PEP8 mistakes
during this release ...
Congratulations for this release my friends, because a lot of great work has
been contributed by the community since last release 4 months ago.
#877: Return proper content type for json by @mpasternak
#819: Fixed JS autocomplete initializer by @apinsard
#871: Add many translations by @dima-kov
#879: Add classifiers in by @ad-m
#868: Fix selector used to allow clearing non-required fields.
#861: prefer pristine jQuery to the django one by @xrmx
HEAD is now at a44a2ed Fixed JS autocomplete initializer (#819) (#820) by
#823: Optgroup list support with Select2GroupListView by @jsurloppe
#841: Allow boolean "data-html" attribute for widget on python side by @gagarski
#839: Support for forwarding radio buttons properly by @gagarski
#839: Add checkbox handling in forwards by @marekjedrzejewski
#833: Add functional tests for rename_forward app by @gagarski
Remove forward.js from Select2WidgetMixin.Media by @gagarski
#838: Use namespaced jQuery in `get_forwards` by @ryan-copperleaf
#836: Queryset sequence view to display actual model name by @jsoa
3.2.5 and 3.2.6 were removed from PyPi but are the same.
#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
#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
#743: Fix placeholder not working when URL is not given to autocomplete
widget (#743) by @thauk-copperleaf
#756: Forward Capabilities Outside Admin by @gagarski
#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
#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.1.8 #727 Add missing static files
#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
#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
#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
#656: Use http.JsonResponse() to return json by @guettli
#638: System check for dal_select2 to raise an error if select2 is not
#662: Examples for setting placeholder and minimum input length options in
#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
- #634: Select2 Upgrade
- #628: Do not rely on ids to fix container text
- #631: Initializing GFKs with values from forms
- #623: Fix extras by @ticosax
- #610: Cancel out Django's style on lists
3.1.1 Forgot vendor files in 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
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.
- #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.
- #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
#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.
#478, #472: "change related button" isn't clickable when it shouldn't.
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
jquery-autocomplete-light/#8: Positionning bug fix by @marianobianchi,
jquery-autocomplete-light/#6: Bugfix: Firefox won't hide input after
when option was selected by @marianobianchi,
#483: German translation by Mounir Messelmeni
#476, #474, #482, documentation improvements by Mounir, Visgean Skeloru and
Florentin Hennecker.
#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.
#463 Update jquery-autocomplete-light which contains IE8 fixes.
yourlabs/jquery-autocomplete-light#4 by @RaphaelKimmig.
#447: Ambiguous column names strikes again. This time we're using the
.column field attribute and covered a couple of cases including model
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
#422: Ambiguous column names in AutocompleteModelBase.
Also removed a generic exception expect/pass.
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.
- #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:
- #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.
- call fixPosition() on window resize if the autocomplete box is shown.
- #431 strikes again, default to body when it can't find a relevant
- Reduce default latency because hardware is better.
- #431: Dynamic evaluation of the autocomp box container.
@lucky-user contributed Opera/Chromium improved support.
- #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
- #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`.
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
from autocomplete_light import shortcuts as al
This will also make your scripts a lot shorter.
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.
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).
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).
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.
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
- #412: Support models with a pk different than "id" and non-numeric.
- #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
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
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.
- #331: Fixed reverse order of items in deck, by @smcoll.
- 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
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
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.
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
- #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
- #257: Got rid of RemovedInDjango18Warning deprecation warnings.
- #371: Skip unuseable virtualfields, like VoteManager for django-vote.
- #372: New PEP8 E731 support.
- 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
- #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.
- #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.
- 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.
- #241 IE11 compatibility fix on text autocomplete contributed by Jonathan
Wiklund (@MaZZly)
- 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.
- 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.
- Updated pt_BR translation contributed by Fábio C. Barrionuevo da Luz (@luzfcb).
- 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
- #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
- 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
- Simplified widget template selection.
- Support for Django 1.6's ModelForm.Meta.fields = '__all__', generic fk
and generic m2m autocomplete fields were not created.
- Fix #204: Restore AutocompleteModelBase as default,
- Fix #205: Support Python3 in views,
- Fixed 404 response in AutocompleteView.
- Do not interfere with non-autocomplete-enabled form fields,
- Ported taggit support to Python3,
- Renamed TaggitTagField to TaggitField and integrated TaggitField into
- 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.
- Fix #168: ensure that autocompletion inputs behaves like django
when it comes to values that were removed from the queryset.
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:
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.
- Fix #190: Remove Django 1.6 Depreciation Warning,
- Fix #189: Fixed support for USE_THOUSAND_SEPARATOR.
- Fix #188: Added debouncing in autocomplete.js,
- Fix #173: load static from staticfiles.
- 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
- 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.
- Fix #163: Use ._default_manager instead of .objects. Thanks @kakulukia
- 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.
- Support django 1.5 RelatedFieldWidgetWrapper in
- Support django-responsive-admin theme (and probably many
other customisations) by adding a div with clear:both after
the widget.
- BC Break: Default split_words to True, to match behaviour from
- Added split_words and improved search_fields support for
- 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
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
- 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
This fixes the default model template, see in test_project:
The test_project now includes demos created by Michał Pasternak. Thankssss !
1.1.27 Fix #117: django-grappelli support.
Contributed by Michał Pasternak.
- Fixed #114: Use widget_template attr only when set.
- Fixed #111: Support jQuery's clone(true).
1.1.25 Fixed #108: generic inline support.
- 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'
- 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().
- 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).
- Use explicit check for None value instead of trueness, allowing pk=0 (thanks
- 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
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.
- 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.
- 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
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
- 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,
- 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
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
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
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.
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.
You can’t perform that action at this time.