From a2deb68776ce9cd85fab93ae9695820a2f3034e7 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 8 Mar 2013 10:44:25 +0530 Subject: [PATCH] added blog category and other updates to website module --- website/doctype/blog/blog.py | 11 ++++ website/doctype/blog/blog.txt | 9 +++- website/doctype/blog_category/__init__.py | 0 .../doctype/blog_category/blog_category.py | 8 +++ .../doctype/blog_category/blog_category.txt | 51 +++++++++++++++++++ .../style_settings/custom_template.css | 5 ++ .../doctype/style_settings/style_settings.py | 8 ++- .../doctype/style_settings/style_settings.txt | 9 +++- .../website_settings/website_settings.py | 3 -- website/helpers/blog.py | 10 +++- website/page/website_home/website_home.js | 22 ++++++-- website/templates/html/blog_footer.html | 12 +++++ website/templates/html/blog_page.html | 15 +++--- website/templates/js/blog.js | 9 +++- website/templates/pages/blog.html | 2 +- website/utils.py | 9 +++- 16 files changed, 157 insertions(+), 26 deletions(-) create mode 100644 website/doctype/blog_category/__init__.py create mode 100644 website/doctype/blog_category/blog_category.py create mode 100644 website/doctype/blog_category/blog_category.txt create mode 100644 website/templates/html/blog_footer.html diff --git a/website/doctype/blog/blog.py b/website/doctype/blog/blog.py index 2e96f4868b..d7ffdac567 100644 --- a/website/doctype/blog/blog.py +++ b/website/doctype/blog/blog.py @@ -18,6 +18,7 @@ from __future__ import unicode_literals import webnotes import website.utils +from webnotes import _ class DocType: def __init__(self, d, dl): @@ -73,6 +74,16 @@ class DocType: self.doc.blogger_info = webnotes.doc("blogger", self.doc.blogger).fields if self.doc.blogger_info.avatar and not "/" in self.doc.blogger_info.avatar: self.doc.blogger_info.avatar = "files/" + self.doc.blogger_info.avatar + + self.doc.categories = webnotes.conn.sql_list("select name from `tabBlog Category` order by name") + + self.doc.texts = { + "comments": _("Comments"), + "first_comment": _("Be the first one to comment"), + "add_comment": _("Add Comment"), + "submit": _("Submit"), + "all_posts_by": _("All posts by"), + } comment_list = webnotes.conn.sql("""\ select comment, comment_by_fullname, creation diff --git a/website/doctype/blog/blog.txt b/website/doctype/blog/blog.txt index cdc7018f1e..e4c92c2e2d 100644 --- a/website/doctype/blog/blog.txt +++ b/website/doctype/blog/blog.txt @@ -2,7 +2,7 @@ { "creation": "2013-01-25 11:35:09", "docstatus": 0, - "modified": "2013-03-07 16:32:13", + "modified": "2013-03-08 09:41:37", "modified_by": "Administrator", "owner": "Administrator" }, @@ -62,6 +62,13 @@ "options": "Blogger", "reqd": 1 }, + { + "doctype": "DocField", + "fieldname": "blog_category", + "fieldtype": "Link", + "label": "Blog Category", + "options": "Blog Category" + }, { "doctype": "DocField", "fieldname": "section_break_5", diff --git a/website/doctype/blog_category/__init__.py b/website/doctype/blog_category/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/website/doctype/blog_category/blog_category.py b/website/doctype/blog_category/blog_category.py new file mode 100644 index 0000000000..928aa9ff9f --- /dev/null +++ b/website/doctype/blog_category/blog_category.py @@ -0,0 +1,8 @@ +# For license information, please see license.txt + +from __future__ import unicode_literals +import webnotes + +class DocType: + def __init__(self, d, dl): + self.doc, self.doclist = d, dl \ No newline at end of file diff --git a/website/doctype/blog_category/blog_category.txt b/website/doctype/blog_category/blog_category.txt new file mode 100644 index 0000000000..cf8cad66bf --- /dev/null +++ b/website/doctype/blog_category/blog_category.txt @@ -0,0 +1,51 @@ +[ + { + "creation": "2013-03-08 09:41:11", + "docstatus": 0, + "modified": "2013-03-08 09:41:11", + "modified_by": "Administrator", + "owner": "Administrator" + }, + { + "autoname": "field:category_name", + "doctype": "DocType", + "document_type": "Master", + "module": "Website", + "name": "__common__" + }, + { + "doctype": "DocField", + "fieldname": "category_name", + "fieldtype": "Data", + "label": "Category Name", + "name": "__common__", + "parent": "Blog Category", + "parentfield": "fields", + "parenttype": "DocType", + "permlevel": 0, + "reqd": 1 + }, + { + "cancel": 1, + "create": 1, + "doctype": "DocPerm", + "name": "__common__", + "parent": "Blog Category", + "parentfield": "permissions", + "parenttype": "DocType", + "permlevel": 0, + "read": 1, + "role": "Website Manager", + "write": 1 + }, + { + "doctype": "DocType", + "name": "Blog Category" + }, + { + "doctype": "DocField" + }, + { + "doctype": "DocPerm" + } +] \ No newline at end of file diff --git a/website/doctype/style_settings/custom_template.css b/website/doctype/style_settings/custom_template.css index d5283ffbce..e625f95856 100644 --- a/website/doctype/style_settings/custom_template.css +++ b/website/doctype/style_settings/custom_template.css @@ -32,6 +32,11 @@ div.outer { {% if doc.google_web_font_for_heading or doc.heading_font %} h1, h2, h3, h4, h5 { font-family: '{{ doc.google_web_font_for_heading or doc.heading_font }}', Arial, 'Helvetica Neue' !important; +} +{% endif %} +{% if doc.heading_text_as %} +h1, h2, h3, h4, h5 { + text-transform: {{ doc.heading_text_as }}; } {% endif %} diff --git a/website/doctype/style_settings/style_settings.py b/website/doctype/style_settings/style_settings.py index 95bba74182..46aa971150 100644 --- a/website/doctype/style_settings/style_settings.py +++ b/website/doctype/style_settings/style_settings.py @@ -57,10 +57,16 @@ class DocType: fonts = list(set(fonts)) + if self.doc.heading_text_as: + self.doc.heading_text_as = { + "UPPERCASE": "uppercase", + "Title Case":"capitalize", + "lowercase": "lowercase" + }[self.doc.heading_text_as] + self.doc.at_import = "" for f in fonts: self.doc.at_import += "\n@import url(http://fonts.googleapis.com/css?family=%s);" % f.replace(" ", "+") - def on_update(self): diff --git a/website/doctype/style_settings/style_settings.txt b/website/doctype/style_settings/style_settings.txt index ebdc35a181..e58ae09e95 100644 --- a/website/doctype/style_settings/style_settings.txt +++ b/website/doctype/style_settings/style_settings.txt @@ -2,7 +2,7 @@ { "creation": "2013-01-25 11:35:10", "docstatus": 0, - "modified": "2013-03-07 16:06:22", + "modified": "2013-03-08 09:58:49", "modified_by": "Administrator", "owner": "Administrator" }, @@ -119,6 +119,13 @@ "label": "Font Size (Text)", "options": "\n12px\n13px\n14px\n15px\n16px" }, + { + "doctype": "DocField", + "fieldname": "heading_text_as", + "fieldtype": "Select", + "label": "Heading Text As", + "options": "\nUPPERCASE\nTitle Case\nlowercase" + }, { "doctype": "DocField", "fieldname": "column_break_13", diff --git a/website/doctype/website_settings/website_settings.py b/website/doctype/website_settings/website_settings.py index 88af6348ac..714b75a75d 100644 --- a/website/doctype/website_settings/website_settings.py +++ b/website/doctype/website_settings/website_settings.py @@ -31,9 +31,6 @@ class DocType: from website.utils import clear_cache clear_cache() - from webnotes.sessions import clear_cache - clear_cache('Guest') - def set_home_page(self): import webnotes diff --git a/website/helpers/blog.py b/website/helpers/blog.py index dcb15cbd17..69aa62156e 100644 --- a/website/helpers/blog.py +++ b/website/helpers/blog.py @@ -6,11 +6,13 @@ import webnotes import website.utils @webnotes.whitelist(allow_guest=True) -def get_blog_list(start=0, by=None): +def get_blog_list(start=0, by=None, category=None): import webnotes condition = "" if by: condition = " and t1.blogger='%s'" % by.replace("'", "\'") + if category: + condition += " and t1.blog_category='%s'" % category.replace("'", "\'") query = """\ select t1.title, t1.name, t1.page_name, t1.creation as creation, @@ -115,4 +117,8 @@ def get_blog_content(blog_page_name): import webnotes.utils content = webnotes.utils.escape_html(content) return content - \ No newline at end of file + +def get_blog_template_args(): + return { + "categories": webnotes.conn.sql_list("select name from `tabBlog Category` order by name") + } \ No newline at end of file diff --git a/website/page/website_home/website_home.js b/website/page/website_home/website_home.js index d770586070..40e29e87a4 100644 --- a/website/page/website_home/website_home.js +++ b/website/page/website_home/website_home.js @@ -11,23 +11,35 @@ wn.module_page["Website"] = [ description: wn._("Content web page."), doctype:"Web Page" }, - { - label: wn._("Blog"), - description: wn._("Blog entry."), - doctype:"Blog" - }, { label: wn._("Website Slideshow"), description: wn._("Embed image slideshows in website pages."), doctype:"Website Slideshow" }, + ] + }, + { + title: wn._("Blog"), + icon: "icon-edit", + items: [ + { + label: wn._("Blog"), + description: wn._("Blog post."), + doctype:"Blog" + }, { label: wn._("Blogger"), description: wn._("Profile of a blog writer."), doctype:"Blogger" }, + { + label: wn._("Blog Category"), + description: wn._("Categorize blog posts."), + doctype:"Blogger" + }, ] }, + { title: wn._("Website Overall Settings"), icon: "icon-wrench", diff --git a/website/templates/html/blog_footer.html b/website/templates/html/blog_footer.html new file mode 100644 index 0000000000..81b92ab0c5 --- /dev/null +++ b/website/templates/html/blog_footer.html @@ -0,0 +1,12 @@ +
+
+

Show posts by everyone

+ {% if categories %} +
Explore posts by categories
+
diff --git a/website/templates/html/blog_page.html b/website/templates/html/blog_page.html index 6f7796b0b6..e669642a11 100644 --- a/website/templates/html/blog_page.html +++ b/website/templates/html/blog_page.html @@ -14,7 +14,7 @@
- {{ blogger_info and blogger_info.full_name or full_name }} wrote this on {{ updated }}
+ {{ blogger_info and blogger_info.full_name or full_name }} / {{ updated }}
{{ content_html }} @@ -30,23 +30,23 @@

{{ blogger_info.full_name }}

{{ blogger_info.bio }}

- All posts by {{ blogger_info.full_name }}

+ {{ texts.all_posts_by }} {{ blogger_info.full_name }}

{% endif %}
-

Comments


+

{{ texts.comments }}


{% if not comment_list %}
-

Be the first one to comment

+

{{ texts.first_comment }}

{% endif %} {% include 'html/comment.html' %}
-
+
-
- Show posts by everyone

+{% include 'html/blog_footer.html' %} {% endblock %} \ No newline at end of file diff --git a/website/templates/js/blog.js b/website/templates/js/blog.js index 70df99c34a..3cfb234549 100644 --- a/website/templates/js/blog.js +++ b/website/templates/js/blog.js @@ -26,8 +26,12 @@ $(document).ready(function() { if(get_url_arg("by_name")) { $("#blog-title").html("Posts by " + get_url_arg("by_name")); - $("#blog-link").toggle(true); } + + if(get_url_arg("category")) { + $("#blog-title").html("Posts filed under " + get_url_arg("category")); + } + }); var blog = { @@ -39,7 +43,8 @@ var blog = { data: { cmd: "website.helpers.blog.get_blog_list", start: blog.start, - by: get_url_arg("by") + by: get_url_arg("by"), + category: get_url_arg("category") }, dataType: "json", success: function(data) { diff --git a/website/templates/pages/blog.html b/website/templates/pages/blog.html index def83fe037..05302c63de 100644 --- a/website/templates/pages/blog.html +++ b/website/templates/pages/blog.html @@ -13,7 +13,6 @@ {% block content %}

Blog

-

@@ -23,4 +22,5 @@ style="display:none;">More...
+{% include 'html/blog_footer.html' %} {% endblock %} \ No newline at end of file diff --git a/website/utils.py b/website/utils.py index 97c03bc049..eac9f0e2fa 100644 --- a/website/utils.py +++ b/website/utils.py @@ -41,7 +41,8 @@ page_map = { page_settings_map = { "about": "About Us Settings", - "contact": "Contact Us Settings" + "contact": "Contact Us Settings", + "blog": "website.helpers.blog.get_blog_template_args" } def render(page_name): @@ -155,7 +156,11 @@ def prepare_args(page_name): 'name': page_name, }) if page_name in page_settings_map: - args.obj = webnotes.bean(page_settings_map[page_name]).obj + target = page_settings_map[page_name] + if "." in target: + args.update(webnotes.get_method(target)()) + else: + args.obj = webnotes.bean(page_settings_map[page_name]).obj else: args = get_doc_fields(page_name)