From 1894735c1e3453fd882da07acd83b995dd3bd1b7 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Tue, 7 Feb 2017 08:52:55 +0100 Subject: [PATCH] [FIX] website_blog: Correct migration (#755) Take into account empty covers and background_image contains an URL, not the image itself. --- .../migrations/9.0.1.0/post-migration.py | 39 ++++++++++--------- .../9.0.1.0/tests/test_website_blog.py | 6 +-- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/addons/website_blog/migrations/9.0.1.0/post-migration.py b/addons/website_blog/migrations/9.0.1.0/post-migration.py index bf14a7bd8a42..059b99c50397 100644 --- a/addons/website_blog/migrations/9.0.1.0/post-migration.py +++ b/addons/website_blog/migrations/9.0.1.0/post-migration.py @@ -6,29 +6,32 @@ def convert_blog_post_cover(env): - """Upload image as attachment and change cover_properties for using it.""" - attachment_obj = env['ir.attachment'] - base_url = env['ir.config_parameter'].get_param('web.base.url') - for post in env['blog.post'].search([]): - env.cr.execute( - """SELECT {} FROM blog_post WHERE id=%s""".format( - openupgrade.get_legacy_name('background_image') - ), (post.id, ) + """Put default value for posts without cover image and put URL of the + cover in field cover_properties for using it for the rest.""" + post_obj = env['blog.post'] + # Without cover image + env.cr.execute( + "SELECT id FROM blog_post WHERE {} IS NULL".format( + openupgrade.get_legacy_name('background_image') ) - row = env.cr.fetchone() - attachment = attachment_obj.create({ - 'name': 'blog_post_{}_cover'.format(post.id), - 'type': 'binary', - 'db_datas': row[0], - 'res_model': 'ir.ui.view', - 'public': True, - }) + ) + posts = post_obj.browse([x[0] for x in env.cr.fetchall()]) + posts.write({'cover_properties': post_obj._defaults['cover_properties']}) + # With cover image + env.cr.execute( + "SELECT id, {0} FROM blog_post WHERE {0} IS NOT NULL".format( + openupgrade.get_legacy_name('background_image') + ) + ) + for row in env.cr.fetchall(): + post = post_obj.browse(row[0]) post.cover_properties = ( - '{{"background-image": "url({}/web/image/{})",' + '{{"background-image": "url({})",' ' "opacity": "1",' ' "background-color": "oe_none",' ' "resize_class": "cover cover_full"}}' - ).format(base_url, attachment.id) + ).format(row[1]) + break @openupgrade.migrate(use_env=True) diff --git a/addons/website_blog/migrations/9.0.1.0/tests/test_website_blog.py b/addons/website_blog/migrations/9.0.1.0/tests/test_website_blog.py index e928be6c03d9..13b75485c06e 100644 --- a/addons/website_blog/migrations/9.0.1.0/tests/test_website_blog.py +++ b/addons/website_blog/migrations/9.0.1.0/tests/test_website_blog.py @@ -8,8 +8,4 @@ def test_blog_post_cover(self): ('name', '=', 'The Future of Emails'), ]) self.assertTrue(post.cover_properties) - self.assertIn('/web/image', post.cover_properties) - attachment = self.env['ir.attachment'].search([ - ('name', '=', 'blog_post_{}_cover'.format(post.id)), - ]) - self.assertTrue(attachment) + self.assertIn('url(', post.cover_properties)