diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-05-17 12:15:46 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-05-17 12:15:46 +0200 |
commit | ca2a1d9f718a173a104fd08916ccbc6810d30e3b (patch) | |
tree | e8c2da5569c0a02183c7194942d580e6a31614f4 /ishtar_common | |
parent | 8fb2f3099e0a8e90fab1be3d9f7055581ffdf89a (diff) | |
parent | 2401a5a5a156c3189e556d5dc6a2b4491942f48e (diff) | |
download | Ishtar-ca2a1d9f718a173a104fd08916ccbc6810d30e3b.tar.bz2 Ishtar-ca2a1d9f718a173a104fd08916ccbc6810d30e3b.zip |
Merge branch 'master' into develop
Conflicts:
ishtar_common/views.py
version.py
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/fixtures/initial_importtypes-fr.json | 4 | ||||
-rw-r--r-- | ishtar_common/static/media/style.css | 4 | ||||
-rw-r--r-- | ishtar_common/views.py | 12 | ||||
-rw-r--r-- | ishtar_common/widgets.py | 18 |
4 files changed, 28 insertions, 10 deletions
diff --git a/ishtar_common/fixtures/initial_importtypes-fr.json b/ishtar_common/fixtures/initial_importtypes-fr.json index bd3330f7d..511a1fc7d 100644 --- a/ishtar_common/fixtures/initial_importtypes-fr.json +++ b/ishtar_common/fixtures/initial_importtypes-fr.json @@ -393,7 +393,7 @@ "required": true, "label": "Label mobilier", "importer_type": 20, - "export_field_name": null + "export_field_name": "label" } }, { @@ -718,7 +718,7 @@ "required": false, "label": "P\u00e9riodes", "importer_type": 20, - "export_field_name": null + "export_field_name": "datings__period__label" } }, { diff --git a/ishtar_common/static/media/style.css b/ishtar_common/static/media/style.css index 4e59b0f64..0016ca0e5 100644 --- a/ishtar_common/static/media/style.css +++ b/ishtar_common/static/media/style.css @@ -1483,6 +1483,10 @@ input.widget-oa{ /* select2 overload */ +.select2-container--default .full-width.select2-selection--multiple .select2-selection__choice{ + float: none; +} + .select2-container-multi .select2-choices .select2-search-field { min-width:233px; } diff --git a/ishtar_common/views.py b/ishtar_common/views.py index fe0693d7b..a70bb0c30 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -458,7 +458,7 @@ def autocomplete_person(request, person_types=None, attached_to=None, own_items = request.user.has_perm('ishtar_common.view_own_person', models.Person) if not all_items and not own_items or not request.GET.get('term'): - return HttpResponse(content_type='text/plain') + return HttpResponse('[]', content_type='text/plain') q = request.GET.get('term') limit = request.GET.get('limit', 20) try: @@ -494,7 +494,7 @@ def autocomplete_person(request, person_types=None, attached_to=None, def autocomplete_department(request): if not request.GET.get('term'): - return HttpResponse(content_type='text/plain') + return HttpResponse('[]', content_type='text/plain') q = request.GET.get('term') q = unicodedata.normalize("NFKD", q).encode('ascii', 'ignore') query = Q() @@ -1338,9 +1338,9 @@ def autocomplete_organization(request, orga_type=None): models.Organization) and not request.user.ishtaruser.has_right( 'person_search', session=request.session)): - return HttpResponse(content_type='text/plain') + return HttpResponse('[]', content_type='text/plain') if not request.GET.get('term'): - return HttpResponse(content_type='text/plain') + return HttpResponse('[]', content_type='text/plain') q = request.GET.get('term') query = Q() for q in q.split(' '): @@ -1364,9 +1364,9 @@ def autocomplete_author(request): if not request.user.has_perm('ishtar_common.view_author', models.Author)\ and not request.user.has_perm('ishtar_common.view_own_author', models.Author): - return HttpResponse(content_type='text/plain') + return HttpResponse('[]', content_type='text/plain') if not request.GET.get('term'): - return HttpResponse(content_type='text/plain') + return HttpResponse('[]', content_type='text/plain') q = request.GET.get('term') query = Q() for q in q.split(' '): diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index b00cad3d8..0a80bb895 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -58,7 +58,7 @@ class Select2Multiple(forms.SelectMultiple): css = { 'all': ('select2/css/select2.css',) } - js = ['select2/js/select2.min.js'] + js = ['select2/js/select2.full.min.js'] for lang_code, lang in settings.LANGUAGES: js.append('select2/js/i18n/{}.js'.format(lang_code)) media.add_css(css) @@ -82,12 +82,20 @@ class Select2Multiple(forms.SelectMultiple): self.remote = None if not choices and not self.remote and self.model: choices = self.get_choices() + new_attrs = self.attrs.copy() + new_attrs.update(attrs) + attrs = new_attrs klass = attrs and attrs.get('class') or '' klass += ' ' if klass else '' + 'js-select2' if not attrs: attrs = {} attrs['class'] = klass - attrs['style'] = "width: 370px" + if 'style' not in attrs: + if attrs.get('full-width', None): + attrs['style'] = "width: 100%" + else: + attrs['style'] = "width: 370px" + options = "" if self.remote: options = """{ @@ -120,6 +128,12 @@ class Select2Multiple(forms.SelectMultiple): except (self.model.DoesNotExist, ValueError): # an old reference? it should not happen pass + if attrs.get('full-width', None): + if options: + options = options[:-1] + ", " + else: + options = "{" + options += " containerCssClass: 'full-width'}" html = super(Select2Multiple, self).render(name, value, attrs, choices) html += """<script type="text/javascript"> |