diff --git a/CHANGES.rst b/CHANGES.rst
index 8876de1..aa3c807 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -4,6 +4,9 @@ Changelog
1.1b3 (unreleased)
------------------
+- Liveblogs are now added to the list of linkable objects in TinyMCE at installation time.
+ [hvelarde]
+
- Fix URL of AJAX call to get latest updates of a Liveblog (fixes `#32`_).
[rodfersou]
diff --git a/src/collective/liveblog/profiles/default/tinymce.xml b/src/collective/liveblog/profiles/default/tinymce.xml
new file mode 100644
index 0000000..3f1892f
--- /dev/null
+++ b/src/collective/liveblog/profiles/default/tinymce.xml
@@ -0,0 +1,8 @@
+
+
diff --git a/src/collective/liveblog/tests/test_setup.py b/src/collective/liveblog/tests/test_setup.py
index c7752ad..89bd9cc 100644
--- a/src/collective/liveblog/tests/test_setup.py
+++ b/src/collective/liveblog/tests/test_setup.py
@@ -48,6 +48,11 @@ def test_add_permissions(self):
roles = [r['name'] for r in roles if r['selected']]
self.assertListEqual(roles, permission['expected'])
+ @unittest.skipIf(IS_PLONE_5, 'Not needed in Plone 5')
+ def test_tinymce_is_linkable(self):
+ tinymce = self.portal['portal_tinymce']
+ self.assertIn('Liveblog', tinymce.linkable.split('\n'))
+
class UninstallTestCase(unittest.TestCase):
diff --git a/src/collective/liveblog/tests/test_upgrades.py b/src/collective/liveblog/tests/test_upgrades.py
index 0b354b2..9d6b1b9 100644
--- a/src/collective/liveblog/tests/test_upgrades.py
+++ b/src/collective/liveblog/tests/test_upgrades.py
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
from collective.liveblog.testing import INTEGRATION_TESTING
+from collective.liveblog.testing import IS_PLONE_5
from plone import api
import unittest
@@ -55,7 +56,7 @@ def test_profile_version(self):
def test_registered_steps(self):
steps = len(self.setup.listUpgrades(self.profile_id)[0])
- self.assertEqual(steps, 1)
+ self.assertEqual(steps, 2)
def test_remove_workflow(self):
title = u'Migrate liveblog workflow'
@@ -74,3 +75,21 @@ def test_remove_workflow(self):
wtool.getChainForPortalType('Liveblog'),
('simple_publication_workflow',)
)
+
+ @unittest.skipIf(IS_PLONE_5, 'Not needed in Plone 5')
+ def test_make_liveblog_linkable(self):
+ title = u'Make Liveblog linkable on TinyMCE'
+ step = self._get_upgrade_step_by_title(title)
+ assert step is not None
+
+ # simulate state on previous version
+ tinymce = api.portal.get_tool('portal_tinymce')
+ linkable = tinymce.linkable.split('\n')
+ linkable.remove('Liveblog')
+ tinymce.linkable = '\n'.join(linkable)
+ assert 'Liveblog' not in tinymce.linkable.split('\n')
+
+ # execute upgrade step and verify changes were applied
+ self._do_upgrade(step)
+
+ self.assertIn('Liveblog', tinymce.linkable.split('\n'))
diff --git a/src/collective/liveblog/upgrades/v1002/configure.zcml b/src/collective/liveblog/upgrades/v1002/configure.zcml
index fa133c5..e29bd03 100644
--- a/src/collective/liveblog/upgrades/v1002/configure.zcml
+++ b/src/collective/liveblog/upgrades/v1002/configure.zcml
@@ -14,6 +14,13 @@
handler=".migrate_liveblog_workflow"
/>
+
+