mirror of
https://github.com/Hopiu/django-select2.git
synced 2026-05-13 07:43:08 +00:00
Merge pull request #161 from bcail/master
Fixed Select2Mixin hashedSelector
This commit is contained in:
commit
3126434a8f
4 changed files with 34 additions and 3 deletions
|
|
@ -184,8 +184,9 @@ class Select2Mixin(object):
|
|||
"""
|
||||
options = json.dumps(self.get_options())
|
||||
options = options.replace('"*START*', '').replace('*END*"', '')
|
||||
# selector variable must already be passed to this
|
||||
return '$(hashedSelector).select2(%s);' % (options)
|
||||
js = 'var hashedSelector = "#" + "%s";' % id_
|
||||
js += '$(hashedSelector).select2(%s);' % (options)
|
||||
return js
|
||||
|
||||
def render(self, name, value, attrs=None, choices=()):
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
# -*- coding:utf-8 -*-
|
||||
from __future__ import print_function, unicode_literals
|
||||
|
||||
import pytest
|
||||
from django.core.urlresolvers import reverse
|
||||
from selenium.common.exceptions import NoSuchElementException
|
||||
|
||||
|
||||
class TestWidgets(object):
|
||||
url = ""
|
||||
|
|
@ -14,3 +18,18 @@ class TestWidgets(object):
|
|||
from django_select2.widgets import HeavySelect2Widget
|
||||
new_widget = HeavySelect2Widget(data_url="/")
|
||||
assert new_widget.is_hidden is False
|
||||
|
||||
|
||||
class TestSelect2Widget(object):
|
||||
url = reverse('select2_widget')
|
||||
|
||||
def test_selecting(self, db, client, live_server, driver):
|
||||
driver.get(live_server + self.url)
|
||||
dropdown = driver.find_element_by_css_selector('.select2-results')
|
||||
assert dropdown.is_displayed() is False
|
||||
elem = driver.find_element_by_css_selector('.select2-choice')
|
||||
elem.click()
|
||||
assert dropdown.is_displayed() is True
|
||||
with pytest.raises(NoSuchElementException):
|
||||
error = driver.find_element_by_xpath('//body[@JSError]')
|
||||
pytest.fail(error.get_attribute('JSError'))
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ from __future__ import absolute_import, unicode_literals
|
|||
from django import forms
|
||||
|
||||
from django_select2.fields import Select2MultipleWidget
|
||||
from django_select2.widgets import Select2Widget
|
||||
|
||||
from tests.testapp import models
|
||||
from . import fields
|
||||
|
|
@ -51,3 +52,11 @@ class AlbumModelForm(forms.ModelForm):
|
|||
class AlbumForm(forms.Form):
|
||||
title = forms.CharField(max_length=255)
|
||||
artist = fields.ArtistField()
|
||||
|
||||
|
||||
class Select2WidgetForm(forms.Form):
|
||||
NUMBER_CHOICES = [ (1, 'One'),
|
||||
(2, 'Two'),
|
||||
(3, 'Three'),
|
||||
(4, 'Four') ]
|
||||
number = forms.ChoiceField(widget=Select2Widget(), choices=NUMBER_CHOICES)
|
||||
|
|
|
|||
|
|
@ -3,11 +3,13 @@ from __future__ import absolute_import, unicode_literals
|
|||
|
||||
from django.conf.urls import include, patterns, url
|
||||
|
||||
from .forms import ArtistForm
|
||||
from .forms import ArtistForm, Select2WidgetForm
|
||||
from .views import TemplateFormView
|
||||
|
||||
urlpatterns = patterns(
|
||||
'',
|
||||
url(r'select2_widget',
|
||||
TemplateFormView.as_view(form_class=Select2WidgetForm), name='select2_widget'),
|
||||
url(r'single_value_model_field',
|
||||
TemplateFormView.as_view(form_class=ArtistForm), name='single_value_model_field'),
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue