From 2a50d6c5932c8d58fa7e6d81e47c16eff3f5a6a1 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Tue, 18 Oct 2022 17:28:47 +0530 Subject: [PATCH] fix(ux): add better home for blog category, cleanup forms --- .../doctype/blog_category/blog_category.json | 33 +++++- .../website/doctype/blog_post/blog_post.json | 6 +- frappe/website/doctype/blog_post/blog_post.py | 30 +++--- .../blog_post/templates/blog_post_list.html | 41 +++---- .../doctype/blog_settings/blog_settings.json | 17 ++- frappe/website/doctype/blogger/blogger.json | 5 +- .../website_settings/website_settings.json | 100 +++++++++++++----- frappe/website/path_resolver.py | 14 +-- 8 files changed, 170 insertions(+), 76 deletions(-) diff --git a/frappe/website/doctype/blog_category/blog_category.json b/frappe/website/doctype/blog_category/blog_category.json index a65a7cba29..1c2f535605 100644 --- a/frappe/website/doctype/blog_category/blog_category.json +++ b/frappe/website/doctype/blog_category/blog_category.json @@ -8,9 +8,12 @@ "document_type": "Setup", "engine": "InnoDB", "field_order": [ - "title", "published", - "route" + "title", + "description", + "column_break_4", + "route", + "preview_image" ], "fields": [ { @@ -35,6 +38,20 @@ "label": "Route", "read_only": 1, "unique": 1 + }, + { + "fieldname": "description", + "fieldtype": "Small Text", + "label": "Description" + }, + { + "fieldname": "column_break_4", + "fieldtype": "Column Break" + }, + { + "fieldname": "preview_image", + "fieldtype": "Attach Image", + "label": "Preview Image" } ], "has_web_view": 1, @@ -42,8 +59,15 @@ "idx": 1, "index_web_pages_for_search": 1, "is_published_field": "published", - "links": [], - "modified": "2020-09-29 10:48:36.886753", + "links": [ + { + "group": "Posts", + "link_doctype": "Blog Post", + "link_fieldname": "blog_category" + } + ], + "make_attachments_public": 1, + "modified": "2022-10-18 15:43:39.789982", "modified_by": "Administrator", "module": "Website", "name": "Blog Category", @@ -71,6 +95,7 @@ "quick_entry": 1, "sort_field": "modified", "sort_order": "DESC", + "states": [], "title_field": "title", "track_changes": 1 } \ No newline at end of file diff --git a/frappe/website/doctype/blog_post/blog_post.json b/frappe/website/doctype/blog_post/blog_post.json index dff5daf752..8b5ab54ba8 100644 --- a/frappe/website/doctype/blog_post/blog_post.json +++ b/frappe/website/doctype/blog_post/blog_post.json @@ -94,11 +94,11 @@ "label": "Blog Intro" }, { - "default": "Rich Text", + "default": "Markdown", "fieldname": "content_type", "fieldtype": "Select", "label": "Content Type", - "options": "Rich Text\nMarkdown\nHTML", + "options": "Markdown\nRich Text\nHTML", "reqd": 1 }, { @@ -215,7 +215,7 @@ "is_published_field": "published", "links": [], "make_attachments_public": 1, - "modified": "2022-08-24 07:10:08.620136", + "modified": "2022-10-18 10:09:10.550734", "modified_by": "Administrator", "module": "Website", "name": "Blog Post", diff --git a/frappe/website/doctype/blog_post/blog_post.py b/frappe/website/doctype/blog_post/blog_post.py index a3c302e01b..9175ed6246 100644 --- a/frappe/website/doctype/blog_post/blog_post.py +++ b/frappe/website/doctype/blog_post/blog_post.py @@ -204,13 +204,19 @@ def get_list_context(context=None): title=_("Blog"), ) - category = frappe.utils.escape_html( + blog_settings = frappe.get_doc("Blog Settings").as_dict(no_default_fields=True) + list_context.update(blog_settings) + + category_name = frappe.utils.escape_html( frappe.local.form_dict.blog_category or frappe.local.form_dict.category ) - if category: - category_title = get_blog_category(category) - list_context.sub_title = _("Posts filed under {0}").format(category_title) - list_context.title = category_title + if category_name: + category = frappe.get_doc("Blog Category", category_name) + list_context.blog_introduction = category.description or _("Posts filed under {0}").format( + category.title + ) + list_context.blog_title = category.title + list_context.preview_image = category.preview_image elif frappe.local.form_dict.blogger: blogger = frappe.db.get_value("Blogger", {"name": frappe.local.form_dict.blogger}, "full_name") @@ -225,12 +231,16 @@ def get_list_context(context=None): else: list_context.parents = [{"name": _("Home"), "route": "/"}] - blog_settings = frappe.get_doc("Blog Settings").as_dict(no_default_fields=True) - list_context.update(blog_settings) - if blog_settings.browse_by_category: list_context.blog_categories = get_blog_categories() + list_context.metatags = { + "name": list_context.blog_title, + "title": list_context.blog_title, + "description": list_context.blog_introduction, + "image": list_context.preview_image, + } + return list_context @@ -265,10 +275,6 @@ def clear_blog_cache(): clear_cache("writers") -def get_blog_category(route): - return frappe.db.get_value("Blog Category", {"name": route}, "title") or route - - def get_blog_list( doctype, txt=None, filters=None, limit_start=0, limit_page_length=20, order_by=None ): diff --git a/frappe/website/doctype/blog_post/templates/blog_post_list.html b/frappe/website/doctype/blog_post/templates/blog_post_list.html index 4cb53d065c..dcc3901d74 100644 --- a/frappe/website/doctype/blog_post/templates/blog_post_list.html +++ b/frappe/website/doctype/blog_post/templates/blog_post_list.html @@ -12,29 +12,30 @@

{{ blog_introduction or '' }}

- -
+ {%- if browse_by_category -%} - - +
+ + +
{%- endif -%}
-
+
{% if not result -%}
{{ no_result_message or _("Nothing to show") }} @@ -54,10 +55,10 @@ {% block script %}