diff --git a/cmsplugin_cascade/generic/text_image.py b/cmsplugin_cascade/generic/text_image.py index f11db988b..e6d784c4a 100644 --- a/cmsplugin_cascade/generic/text_image.py +++ b/cmsplugin_cascade/generic/text_image.py @@ -63,8 +63,7 @@ class TextImagePlugin(LinkPluginBase): allow_children = False require_parent = False form = type('TextImageForm', (LinkFormMixin, TextImageFormMixin), {'require_link': False}) - html_tag_attributes = LinkPluginBase.html_tag_attributes - html_tag_attributes.update({'image_title': 'title', 'alt_tag': 'alt'}) + html_tag_attributes = {'image_title': 'title', 'alt_tag': 'alt'} class Media: js = ['admin/js/jquery.init.js', 'cascade/js/admin/textimageplugin.js'] diff --git a/cmsplugin_cascade/link/plugin_base.py b/cmsplugin_cascade/link/plugin_base.py index 9af0c8aff..b66ad7cc8 100644 --- a/cmsplugin_cascade/link/plugin_base.py +++ b/cmsplugin_cascade/link/plugin_base.py @@ -13,7 +13,7 @@ class LinkPluginBase(CascadePluginBase): require_parent = False ring_plugin = 'LinkPluginBase' raw_id_fields = ['download_file'] - html_tag_attributes = {'title': 'title', 'target': 'target'} + html_tag_attributes = {'link_title': 'title', 'link_target': 'target'} class Media: css = {'all': ['cascade/css/admin/linkplugin.css']} diff --git a/cmsplugin_cascade/templates/cascade/plugins/simpleicon.html b/cmsplugin_cascade/templates/cascade/plugins/simpleicon.html index 5c1f88396..41897cf4a 100644 --- a/cmsplugin_cascade/templates/cascade/plugins/simpleicon.html +++ b/cmsplugin_cascade/templates/cascade/plugins/simpleicon.html @@ -3,11 +3,11 @@ {% spaceless %} {% with instance_link=instance.link tag_type=instance.tag_type css_classes=instance.css_classes inline_styles=instance.inline_styles %} {% if instance_link %} - + {% elif css_classes or inline_styles %} {% endif %} {% if instance_link %}{% elif css_classes or inline_styles %}{% endif %} {% endwith %} -{% endspaceless %} \ No newline at end of file +{% endspaceless %} diff --git a/tests/test_iconfont.py b/tests/test_iconfont.py index 5a7ca58a6..382461a6d 100644 --- a/tests/test_iconfont.py +++ b/tests/test_iconfont.py @@ -14,6 +14,7 @@ from cmsplugin_cascade.models import CascadeElement, IconFont from cmsplugin_cascade.icon.forms import IconFormMixin from cmsplugin_cascade.icon.simpleicon import SimpleIconPlugin +from cmsplugin_cascade.link.forms import LinkForm from .conftest import UserFactory @@ -82,7 +83,7 @@ def test_iconfont_change_view(admin_client, icon_font): @pytest.mark.django_db def simple_icon(admin_site, cms_placeholder, icon_font): """Create and edit a SimpleIconPlugin""" - class IconFontForm(IconFormMixin, ModelForm): + class IconFontForm(IconFormMixin, LinkForm, ModelForm): class Meta(IconFormMixin.Meta): model = CascadeElement @@ -91,7 +92,8 @@ class Meta(IconFormMixin.Meta): assert isinstance(simple_icon_model, CascadeElement) # edit simple icon plugin - data = {'icon_font': str(icon_font.id), 'symbol': 'icon-skiing'} + data = {'icon_font': str(icon_font.id), 'symbol': 'icon-skiing', + 'link_type': 'exturl', 'ext_url': 'http://test.ru/test', 'link_target': '_blank', 'link_title': 'test title'} form = IconFontForm(data=data, instance=simple_icon_model) assert form.is_valid() simple_icon_model = form.save() @@ -110,4 +112,4 @@ def test_simple_icon(rf, simple_icon): context = RequestContext(request) content_renderer = ContentRenderer(request) html = content_renderer.render_plugin(simple_icon_model, context).strip() - assert html == '' + assert html == '' diff --git a/tests/test_text_link_plugin.py b/tests/test_text_link_plugin.py new file mode 100644 index 000000000..cbdd4556b --- /dev/null +++ b/tests/test_text_link_plugin.py @@ -0,0 +1,41 @@ +import pytest +from django.forms.models import ModelForm +from django.template.context import RequestContext +from cms.api import add_plugin +from cms.plugin_rendering import ContentRenderer +from cmsplugin_cascade.models import CascadeElement +from cmsplugin_cascade.link.forms import LinkForm +from cmsplugin_cascade.link.cms_plugins import TextLinkPlugin + + +@pytest.fixture +@pytest.mark.django_db +def link(admin_site, cms_placeholder): + """Create and edit a TextLinkPlugin""" + class LinkModelForm(LinkForm, ModelForm): + class Meta(LinkForm.Meta): + model = CascadeElement + + # add text link plugin + link_model = add_plugin(cms_placeholder, TextLinkPlugin, 'en') + assert isinstance(link_model, CascadeElement) + + # edit text link plugin + data = {'link_type': 'exturl', 'ext_url': 'http://test.ru/test', 'link_target': '_blank', 'link_title': 'test title'} + form = LinkModelForm(data=data, instance=link_model) + assert form.is_valid() + link_model = form.save() + link_plugin = link_model.get_plugin_class_instance(admin_site) + assert isinstance(link_plugin, TextLinkPlugin) + return link_plugin, link_model + + +@pytest.mark.django_db +def test_link_plugin(rf, link): + """Render a LinkPluginBase""" + link_plugin, link_model = link + request = rf.get('/') + context = RequestContext(request) + content_renderer = ContentRenderer(request) + html = content_renderer.render_plugin(link_model, context).strip() + assert html == ''