From c4e53496895e5753c40095cb323e329b6c1ed7a9 Mon Sep 17 00:00:00 2001 From: Barunes Padhy Date: Tue, 25 Jun 2024 13:31:10 +0300 Subject: [PATCH] Added ability to toggle full width of cover image in blogs --- .../migrations/0016_blog_full_with_image.py | 18 ++++++++++++++++++ ..._with_image_blog_full_width_cover_image.py | 18 ++++++++++++++++++ backend/apimanager/models.py | 1 + backend/apimanager/publish_views.py | 1 + backend/apimanager/serializers.py | 2 ++ frontend/editable-ui/src/components/blog.jsx | 19 +++++++++++++++++-- frontend/viewable-ui/src/components/blog.jsx | 6 +++--- 7 files changed, 60 insertions(+), 5 deletions(-) create mode 100644 backend/apimanager/migrations/0016_blog_full_with_image.py create mode 100644 backend/apimanager/migrations/0017_rename_full_with_image_blog_full_width_cover_image.py diff --git a/backend/apimanager/migrations/0016_blog_full_with_image.py b/backend/apimanager/migrations/0016_blog_full_with_image.py new file mode 100644 index 0000000..9ab1a8d --- /dev/null +++ b/backend/apimanager/migrations/0016_blog_full_with_image.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-06-25 09:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('apimanager', '0015_alter_userdata_dark_theme_alter_userdata_light_theme'), + ] + + operations = [ + migrations.AddField( + model_name='blog', + name='full_with_image', + field=models.BooleanField(default=True), + ), + ] diff --git a/backend/apimanager/migrations/0017_rename_full_with_image_blog_full_width_cover_image.py b/backend/apimanager/migrations/0017_rename_full_with_image_blog_full_width_cover_image.py new file mode 100644 index 0000000..12778d6 --- /dev/null +++ b/backend/apimanager/migrations/0017_rename_full_with_image_blog_full_width_cover_image.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-06-25 10:00 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('apimanager', '0016_blog_full_with_image'), + ] + + operations = [ + migrations.RenameField( + model_name='blog', + old_name='full_with_image', + new_name='full_width_cover_image', + ), + ] diff --git a/backend/apimanager/models.py b/backend/apimanager/models.py index 917f257..f170125 100644 --- a/backend/apimanager/models.py +++ b/backend/apimanager/models.py @@ -26,5 +26,6 @@ class Blog(models.Model): description = models.CharField(null=False, blank=False, max_length=200) tagline = models.CharField(null=False, blank=False, max_length=200) cover_image = models.CharField(null=True, blank=True, max_length=500) + full_width_cover_image = models.BooleanField(default=True) content_body = models.CharField(default='

', null=False, blank=False, max_length=100000) parent_category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name="blogs") \ No newline at end of file diff --git a/backend/apimanager/publish_views.py b/backend/apimanager/publish_views.py index ef692e5..a7c413a 100644 --- a/backend/apimanager/publish_views.py +++ b/backend/apimanager/publish_views.py @@ -134,6 +134,7 @@ class Publish(APIView): "name": eachBlog.name, "description": eachBlog.description, "coverImage": self.sanitize_media_link(eachBlog.cover_image), + "fullWidthCoverImage": eachBlog.full_width_cover_image, "tagLine": eachBlog.tagline, "parentCategory": str(eachBlog.parent_category.category_id), "contentBody": self.sanitize_media_link(eachBlog.content_body, 'content_media') diff --git a/backend/apimanager/serializers.py b/backend/apimanager/serializers.py index 47b1e12..545adee 100644 --- a/backend/apimanager/serializers.py +++ b/backend/apimanager/serializers.py @@ -49,6 +49,7 @@ class BlogSerializer(serializers.ModelSerializer): 'description', 'tagline', 'cover_image', + 'full_width_cover_image', 'content_body', 'parent_category' ] @@ -76,6 +77,7 @@ class UnifiedCategoryBlogSerializer(serializers.ModelSerializer): 'name': blog.name, 'description': blog.description, 'cover_image': blog.cover_image, + 'full_width_cover_image': blog.full_width_cover_image, 'tagline': blog.tagline, 'parent_category': blog.parent_category.category_id } for blog in blogs] diff --git a/frontend/editable-ui/src/components/blog.jsx b/frontend/editable-ui/src/components/blog.jsx index 7d64151..476e91e 100755 --- a/frontend/editable-ui/src/components/blog.jsx +++ b/frontend/editable-ui/src/components/blog.jsx @@ -60,6 +60,17 @@ function Blog(props) { toggle() } + const setCoverImageWidth = () => { + EditableDataService.updateData(`/data/blog/update/${blogID}/`,{ + 'full_width_cover_image': !blogData.fullWidthCoverImage + }).then(() => { + props.notificationToggler('Blog data saved!'); + getInfo() + }).catch(() => { + props.notificationToggler('Failed to update blog!', 'danger'); + }); + } + const deleteResource = () => { EditableDataService.deleteData(`/data/blog/delete/${blogData.id}/`).then(() => { props.notificationToggler('Blog successfully deleted') @@ -79,6 +90,7 @@ function Blog(props) { 'description': responseData['description'], 'tagLine': responseData['tagline'], 'coverImage': responseData['cover_image'], + 'fullWidthCoverImage': responseData['full_width_cover_image'], 'parentCategory': responseData['parent_category'] }) setBlogContent(responseData['content_body']) @@ -110,8 +122,8 @@ function Blog(props) { Banner:'' } @@ -136,6 +148,9 @@ function Blog(props) { Remove Cover Image + Name diff --git a/frontend/viewable-ui/src/components/blog.jsx b/frontend/viewable-ui/src/components/blog.jsx index afa3fe6..a3ba4cc 100755 --- a/frontend/viewable-ui/src/components/blog.jsx +++ b/frontend/viewable-ui/src/components/blog.jsx @@ -93,9 +93,9 @@ function Blog(props) { blogData.coverImage ? Banner:'' }