def test_render_option_non_ascii_issue_317(self): widget = MPTTFilteredSelectMultiple('test', False) option = widget.render_option([], 1, 'тест', (1, 1)) self.assertEqual( option, smart_text('<option value="1" data-tree-id="1"' ' data-left-value="1">тест</option>'))
def test_render_option(self): widget = MPTTFilteredSelectMultiple('test', False) option = widget.render_option([], 1, 'Test', (4, 5)) self.assertEquals( option, '<option value="1" data-tree-id="4"' ' data-left-value="5">Test</option>') option = widget.render_option(['0', '1', '2'], 1, 'Test', (4, 5)) self.assertEquals( option, '<option value="1" selected="selected" data-tree-id="4"' ' data-left-value="5">Test</option>')
class EntryAdminForm(forms.ModelForm): """ Form for Entry's Admin. """ categories = MPTTModelMultipleChoiceField( label=_('Categories'), required=False, queryset=Category.objects.all(), widget=MPTTFilteredSelectMultiple(_('categories'), False, attrs={'rows': '10'})) tags = TagField(label=_('Tags'), required=False, widget=TagAutoComplete()) def __init__(self, *args, **kwargs): super(EntryAdminForm, self).__init__(*args, **kwargs) rel = ManyToManyRel(Category, 'id') self.fields['categories'].widget = RelatedFieldWidgetWrapper( self.fields['categories'].widget, rel, self.admin_site) self.fields['sites'].initial = [Site.objects.get_current()] class Meta: """ EntryAdminForm's Meta. """ model = Entry fields = forms.ALL_FIELDS
def test_media(self): medias = MPTTFilteredSelectMultiple('test', False).media self.assertEquals(medias._css, {}) self.assertEquals(medias._js, [ '/s/admin/js/core.js', '/s/zinnia/admin/mptt/js/mptt_m2m_selectbox.js', '/s/admin/js/SelectFilter2.js'])
class ModelEntryAdminForm(_EntryAdminForm): """ Form for ModelEntry's Admin """ categories = MPTTModelMultipleChoiceField( label=_('Categories'), required=False, queryset=ModelCategory.objects.all(), widget=MPTTFilteredSelectMultiple(_('categories'))) content = forms.CharField( label=_('Content'), required=False, widget=CKEditor(config_name=CONFIG_NAME)) class Meta: """ EntryAdminForm's Meta. """ model = ModelEntry fields = forms.ALL_FIELDS widgets = { 'tags': TagAutoComplete, 'lead': MiniTextarea, 'excerpt': MiniTextarea, 'image_caption': MiniTextarea, } def __init__(self, *args, **kwargs): super(ModelEntryAdminForm, self).__init__(*args, **kwargs) self.fields['categories'].widget = RelatedFieldWidgetWrapper( self.fields['categories'].widget, ModelEntry.categories.field.rel, self.admin_site)
def test_render_option(self): widget = MPTTFilteredSelectMultiple('test', False) option = widget.render_option([], 1, 'Test', (4, 5)) self.assertEqual( option, '<option value="1" data-tree-id="4"' ' data-left-value="5">Test</option>') option = widget.render_option(['0', '1', '2'], 1, 'Test', (4, 5)) self.assertEqual( option, '<option value="1" selected="selected" data-tree-id="4"' ' data-left-value="5">Test</option>')
class EntryAdminForm(forms.ModelForm): """ Form for Entry's Admin. """ categories = MPTTModelMultipleChoiceField( label=_('Categories'), required=False, queryset=Category.objects.all(), widget=MPTTFilteredSelectMultiple(_('categories'))) def __init__(self, *args, **kwargs): super(EntryAdminForm, self).__init__(*args, **kwargs) self.fields['categories'].widget = RelatedFieldWidgetWrapper( self.fields['categories'].widget, Entry.categories.field.remote_field, self.admin_site) class Meta: """ EntryAdminForm's Meta. """ model = Entry fields = forms.ALL_FIELDS widgets = { 'tags': TagAutoComplete, 'lead': MiniTextarea, 'excerpt': MiniTextarea, 'image_caption': MiniTextarea, }
def test_render_options(self): widget = MPTTFilteredSelectMultiple('test', False) self.assertEquals(widget.render_options([], []), '') options = widget.render_options([(1, 'Category 1', (1, 1)), (2, '|-- Category 2', (1, 2))], []) self.assertEquals( options, '<option value="1" data-tree-id="1" data-left-value="1">' 'Category 1</option>\n<option value="2" data-tree-id="1" ' 'data-left-value="2">|-- Category 2</option>') options = widget.render_options([(1, 'Category 1', (1, 1)), (2, '|-- Category 2', (1, 2))], [2]) self.assertEquals( options, '<option value="1" data-tree-id="1" data-left-value="1">' 'Category 1</option>\n<option value="2" selected="selected" ' 'data-tree-id="1" data-left-value="2">|-- Category 2</option>')
def test_render_options(self): widget = MPTTFilteredSelectMultiple('test', False) self.assertEqual(widget.render_options([]), '') choices = [ (1, 'Category 1', (1, 1)), (2, '|-- Category 2', (1, 2))] widget = MPTTFilteredSelectMultiple('test', False, choices=choices) self.assertEqual( widget.render_options([]), '<option value="1" data-tree-id="1" data-left-value="1">' 'Category 1</option>\n<option value="2" data-tree-id="1" ' 'data-left-value="2">|-- Category 2</option>') self.assertEqual( widget.render_options([2]), '<option value="1" data-tree-id="1" data-left-value="1">' 'Category 1</option>\n<option value="2" selected="selected" ' 'data-tree-id="1" data-left-value="2">|-- Category 2</option>')
class ResourceEntryAdminForm(_EntryAdminForm): topics = MPTTModelMultipleChoiceField( label=_('Topics'), required=False, queryset=TopicCategory.objects.all(), widget=MPTTFilteredSelectMultiple(_('topics'))) types = MPTTModelMultipleChoiceField( label=_('Types'), required=False, queryset=TypeCategory.objects.all(), widget=MPTTFilteredSelectMultiple(_('types'))) industries = MPTTModelMultipleChoiceField( label=_('Industries'), required=False, queryset=IndustryCategory.objects.all(), widget=MPTTFilteredSelectMultiple(_('industries'))) class Meta: model = ResourceEntry fields = forms.ALL_FIELDS widgets = { 'tags': TagAutoComplete, 'lead': MiniTextarea, 'excerpt': MiniTextarea, 'image_caption': MiniTextarea, } def __init__(self, *args, **kwargs): super(ResourceEntryAdminForm, self).__init__(*args, **kwargs) self.fields['topics'].widget = RelatedFieldWidgetWrapper( self.fields['topics'].widget, ResourceEntry.topics.field.rel, self.admin_site) self.fields['types'].widget = RelatedFieldWidgetWrapper( self.fields['types'].widget, ResourceEntry.types.field.rel, self.admin_site) self.fields['industries'].widget = RelatedFieldWidgetWrapper( self.fields['industries'].widget, ResourceEntry.industries.field.rel, self.admin_site)
def test_optgroups(self): choices = [(1, 'Category 1', (1, 1)), (2, '|-- Category 2', (1, 2))] widget = MPTTFilteredSelectMultiple('test', False, choices=choices) optgroups = widget.optgroups('toto', '1') self.assertEqual(optgroups, [ (None, [{ 'index': '0', 'name': 'toto', 'template_name': 'django/forms/widgets/select_option.html', 'type': 'select', 'selected': True, 'attrs': { 'selected': True, 'data-tree-id': 1, 'data-left-value': 1 }, 'value': 1, 'label': 'Category 1', 'wrap_label': True }], 0), (None, [{ 'index': '1', 'name': 'toto', 'template_name': 'django/forms/widgets/select_option.html', 'type': 'select', 'selected': False, 'attrs': { 'data-tree-id': 1, 'data-left-value': 2 }, 'value': 2, 'label': '|-- Category 2', 'wrap_label': True }], 1) ]) optgroups = widget.optgroups('toto', ['2']) self.assertEqual( optgroups, [(None, [{ 'index': '0', 'name': 'toto', 'template_name': 'django/forms/widgets/select_option.html', 'type': 'select', 'selected': False, 'attrs': { 'data-tree-id': 1, 'data-left-value': 1 }, 'value': 1, 'label': 'Category 1', 'wrap_label': True }], 0), (None, [{ 'index': '1', 'name': 'toto', 'template_name': 'django/forms/widgets/select_option.html', 'type': 'select', 'selected': True, 'attrs': { 'selected': True, 'data-tree-id': 1, 'data-left-value': 2 }, 'value': 2, 'label': '|-- Category 2', 'wrap_label': True }], 1)]) optgroups = widget.optgroups('toto', '1', {'attribute': 'value'}) self.assertEqual(optgroups, [ (None, [{ 'index': '0', 'name': 'toto', 'template_name': 'django/forms/widgets/select_option.html', 'type': 'select', 'selected': True, 'attrs': { 'selected': True, 'attribute': 'value', 'data-tree-id': 1, 'data-left-value': 1 }, 'value': 1, 'label': 'Category 1', 'wrap_label': True }], 0), (None, [{ 'index': '1', 'name': 'toto', 'template_name': 'django/forms/widgets/select_option.html', 'type': 'select', 'selected': False, 'attrs': { 'attribute': 'value', 'data-tree-id': 1, 'data-left-value': 2 }, 'value': 2, 'label': '|-- Category 2', 'wrap_label': True }], 1) ])
def test_optgroups(self): choices = [ (1, 'Category 1', (1, 1)), (2, '|-- Category 2', (1, 2)) ] widget = MPTTFilteredSelectMultiple( 'test', False, choices=choices) optgroups = widget.optgroups('toto', '1') self.assertEquals( optgroups, [ ( None, [ { 'index': '0', 'name': 'toto', 'template_name': 'django/forms/widgets/select_option.html', 'type': 'select', 'selected': True, 'attrs': { 'selected': True, 'data-tree-id': 1, 'data-left-value': 1 }, 'value': 1, 'label': 'Category 1' } ], 0 ), ( None, [ { 'index': '1', 'name': 'toto', 'template_name': 'django/forms/widgets/select_option.html', 'type': 'select', 'selected': False, 'attrs': { 'data-tree-id': 1, 'data-left-value': 2 }, 'value': 2, 'label': '|-- Category 2' } ], 1 ) ] ) optgroups = widget.optgroups('toto', ['2']) self.assertEquals( optgroups, [ ( None, [ { 'index': '0', 'name': 'toto', 'template_name': 'django/forms/widgets/select_option.html', 'type': 'select', 'selected': False, 'attrs': { 'data-tree-id': 1, 'data-left-value': 1 }, 'value': 1, 'label': 'Category 1' } ], 0 ), ( None, [ { 'index': '1', 'name': 'toto', 'template_name': 'django/forms/widgets/select_option.html', 'type': 'select', 'selected': True, 'attrs': { 'selected': True, 'data-tree-id': 1, 'data-left-value': 2 }, 'value': 2, 'label': '|-- Category 2' } ], 1 ) ] ) optgroups = widget.optgroups('toto', '1', {'attribute': 'value'}) self.assertEquals( optgroups, [ ( None, [ { 'index': '0', 'name': 'toto', 'template_name': 'django/forms/widgets/select_option.html', 'type': 'select', 'selected': True, 'attrs': { 'selected': True, 'attribute': 'value', 'data-tree-id': 1, 'data-left-value': 1 }, 'value': 1, 'label': 'Category 1' } ], 0 ), ( None, [ { 'index': '1', 'name': 'toto', 'template_name': 'django/forms/widgets/select_option.html', 'type': 'select', 'selected': False, 'attrs': { 'attribute': 'value', 'data-tree-id': 1, 'data-left-value': 2 }, 'value': 2, 'label': '|-- Category 2' } ], 1 ) ] )