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
+
+ {% for category in categories %}
+ - {{ category }}
+ {% if not loop.last %}/{% endif %}
+ {% endfor %}
+ {% endif %}
+
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 }}
-
+
-
- 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 %}
+{% 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)
- +