added blog

This commit is contained in:
Rushabh Mehta 2012-01-27 15:57:17 +05:30
parent 51e51da63f
commit c8d2e73ee6
14 changed files with 348 additions and 11 deletions

View File

@ -21,8 +21,8 @@ def cleanup():
reload_doc("core", "doctype", "control_panel")
# cleanup page
delete_doc("DocType", "Control Panel")
reload_doc("core", "doctype", "control_panel")
delete_doc("DocType", "Page")
reload_doc("core", "doctype", "page")
webnotes.conn.sql("""delete from tabSingles
where field like 'startup_%' and doctype='Control Panel'""")

View File

@ -9,13 +9,18 @@ def execute():
cleanup_file_data()
update_patch_log()
from webnotes.modules import reload_doc
reload_doc('website', 'Module Def', 'Website')
reload_doc('website', 'Role', 'Website Manager')
reload_doc('website', 'Module Def', 'Website')
reload_doc('website', 'doctype', 'home_settings')
reload_doc('website', 'doctype', 'top_bar_settings')
reload_doc('website', 'doctype', 'top_bar_item')
reload_doc('website', 'page', 'home')
reload_doc('website', 'doctype', 'contact_us_settings')
reload_doc('website', 'doctype', 'about_us_settings')
reload_doc('website', 'page', 'home')
reload_doc('website', 'page', 'contact')
reload_doc('website', 'page', 'about')
def add_website_manager():
"""add website manager to system manager"""
for i in webnotes.conn.sql("""select distinct parent from tabUserRole

View File

@ -5,13 +5,14 @@
{
'creation': '2012-01-23 17:05:32',
'docstatus': 0,
'modified': '2012-01-27 10:14:58',
'modified': '2012-01-27 14:30:06',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
# These values are common for all Module Def Role
{
'__islocal': 1,
'doctype': 'Module Def Role',
'name': '__common__',
'parent': 'Website',
@ -21,7 +22,7 @@
# These values are common for all Module Def Item
{
'doc_type': 'Single DocType',
'__islocal': 1,
'doctype': 'Module Def Item',
'name': '__common__',
'parent': 'Website',
@ -49,6 +50,15 @@
{
'display_name': 'Top Bar Settings',
'doc_name': 'Top Bar Settings',
'doc_type': 'Single DocType',
'doctype': 'Module Def Item'
},
# Module Def Item
{
'display_name': 'Blog',
'doc_name': 'Blog',
'doc_type': 'Forms',
'doctype': 'Module Def Item'
},
@ -56,6 +66,15 @@
{
'display_name': 'Home Settings',
'doc_name': 'Home Settings',
'doc_type': 'Single DocType',
'doctype': 'Module Def Item'
},
# Module Def Item
{
'display_name': 'Top Bar Settings',
'doc_name': 'Top Bar Settings',
'doc_type': 'Single DocType',
'doctype': 'Module Def Item'
},
@ -63,6 +82,15 @@
{
'display_name': 'Contact Us Settings',
'doc_name': 'Contact Us Settings',
'doc_type': 'Single DocType',
'doctype': 'Module Def Item'
},
# Module Def Item
{
'display_name': 'Home Settings',
'doc_name': 'Home Settings',
'doc_type': 'Single DocType',
'doctype': 'Module Def Item'
},
@ -70,6 +98,23 @@
{
'display_name': 'About Us Settings',
'doc_name': 'About Us Settings',
'doc_type': 'Single DocType',
'doctype': 'Module Def Item'
},
# Module Def Item
{
'display_name': 'Contact Us Settings',
'doc_name': 'Contact Us Settings',
'doc_type': 'Single DocType',
'doctype': 'Module Def Item'
},
# Module Def Item
{
'display_name': 'About Us Settings',
'doc_name': 'About Us Settings',
'doc_type': 'Single DocType',
'doctype': 'Module Def Item'
},
@ -79,6 +124,18 @@
'role': 'System Manager'
},
# Module Def Role
{
'doctype': 'Module Def Role',
'role': 'System Manager'
},
# Module Def Role
{
'doctype': 'Module Def Role',
'role': 'Website Manager'
},
# Module Def Role
{
'doctype': 'Module Def Role',

View File

@ -1,5 +1,5 @@
<div class="layout_wrapper">
<div class="web-content" id="content-contact-us">
<div class="web-content" id="content-about-us">
{% if doc.headline %}
<h1>{{ doc.headline }}</h1>
{% endif %}

View File

View File

@ -0,0 +1,58 @@
"""
record of files
naming for same name files: file.gif, file-1.gif, file-2.gif etc
"""
import webnotes
class DocType():
def __init__(self, d, dl):
self.doc, self.doclist = d, dl
def autoname(self):
"""save file by its name"""
import re
self.doc.name = re.sub('[~!@#$%^&*()<>,."\']', '', self.doc.title.lower())
self.doc.name = '-'.join(self.doc.name.split()[:4])
if webnotes.conn.sql("""select name from tabBlog where name=%s""", self.doc.name) or \
webnotes.conn.sql("""select name from tabPage where name=%s""", self.doc.name):
webnotes.msgprint("Another page with similar title exists, please change the title",\
raise_exception=1)
def on_update(self):
"""write/update 'Page' with the blog"""
from webnotes.model.doc import Document
if webnotes.conn.sql("""select name from tabPage where name=%s""", self.doc.name):
p = Document('Page', self.doc.name)
else:
p = Document('Page')
p.title = self.doc.title
p.name = p.page_name = self.doc.name
p.module = 'Website'
p.standard = 'No'
from jinja2 import Template
import markdown2
import os
self.doc.content_html = markdown2.markdown(self.doc.content or '')
with open(os.path.join(os.path.dirname(__file__), 'template.html'), 'r') as f:
p.content = Template(f.read()).render(doc=self.doc)
with open(os.path.join(os.path.dirname(__file__), 'blog_page.js'), 'r') as f:
p.script = Template(f.read()).render(doc=self.doc)
p.save()
# add guest access
if not webnotes.conn.sql("""select parent from `tabPage Role`
where role='Guest' and parent=%s""", self.doc.name):
d = Document('Page Role')
d.parent = self.doc.name
d.role = 'Guest'
d.save()

View File

@ -0,0 +1,88 @@
# DocType, Blog
[
# These values are common in all dictionaries
{
'creation': '2012-01-27 12:24:03',
'docstatus': 0,
'modified': '2012-01-27 12:24:03',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
# These values are common for all DocType
{
'colour': 'White:FFF',
'doctype': 'DocType',
'module': 'Website',
'name': '__common__',
'section_style': 'Simple',
'show_in_menu': 0,
'version': 1
},
# These values are common for all DocField
{
'doctype': 'DocField',
'name': '__common__',
'parent': 'Blog',
'parentfield': 'fields',
'parenttype': 'DocType',
'permlevel': 0
},
# These values are common for all DocPerm
{
'create': 1,
'doctype': 'DocPerm',
'name': '__common__',
'parent': 'Blog',
'parentfield': 'permissions',
'parenttype': 'DocType',
'permlevel': 0,
'read': 1,
'write': 1
},
# DocType, Blog
{
'doctype': 'DocType',
'name': 'Blog'
},
# DocPerm
{
'doctype': 'DocPerm',
'role': 'Website Manager'
},
# DocPerm
{
'doctype': 'DocPerm',
'role': 'Blogger'
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'title',
'fieldtype': 'Data',
'label': 'Title'
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'published',
'fieldtype': 'Check',
'label': 'Published'
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'content',
'fieldtype': 'Code',
'label': 'Content'
}
]

View File

@ -0,0 +1,71 @@
// js inside blog page
pscript['onload_{{ doc.name }}'] = function(wrapper) {
// sidebar
var side = $(wrapper).find('.web-side-section')
.append('<h4>Recent Posts</h4>').get(0);
wrapper.recent_list = new wn.widgets.Listing({
parent: side,
query: 'select name, title, left(content, 100) as content from tabBlog\
where ifnull(published,1)=1',
hide_refresh: true,
render_row: function(parent, data) {
if(data.content.length==100) data.content += '...';
parent.innerHTML = repl('<a href="#!%(name)s">%(title)s</a>\
<div class="comment">%(content)s</div><br>', data);
},
page_length: 5
});
wrapper.recent_list.run();
// comments
$(wrapper).find('.web-main-section').append('<h3>Comments</h3>');
wrapper.comment_list = new wn.widgets.Listing({
parent: $(wrapper).find('.web-main-section').get(0),
query: 'select comment, comment_by_fullname, comment_date\
from `tabComment Widget Record` where comment_doctype="Page"\
and comment_docname="{{ doc.name }}"',
no_result_message: 'Be the first one to comment',
render_row: function(parent, data) {
data.comment_date = dateutil.str_to_user(data.comment_date);
$(parent).html(repl("<div style='color:#777'>\
On %(comment_date)s %(comment_by_fullname)s said:\
</div>\
<p style='margin-left: 20px;'>%(comment)s</p><br>", data))
},
hide_refresh: true
});
wrapper.comment_list.run();
// add comment
$(wrapper).find('.web-main-section').append('<br><button class="btn add-comment">\
Add Comment</button>');
$(wrapper).find('button.add-comment').click(function(){
d = new wn.widgets.Dialog({
title: 'Add Comment',
fields: [
{fieldname:'comment_by_fullname', label:'Your Name', reqd:1, fieldtype:'Data'},
{fieldname:'comment_by', label:'Email Id', reqd:1, fieldtype:'Data'},
{fieldname:'comment', label:'Comment', reqd:1, fieldtype:'Text'},
{fieldname:'post', label:'Post', fieldtype:'Button'}
]
});
d.fields_dict.post.input.onclick = function() {
var btn = this;
var args = d.get_values();
if(!args) return;
args.comment_doctype = 'Page';
args.comment_docname = '{{ doc.name }}';
$(btn).set_working();
$c('webnotes.widgets.form.comments.add_comment', args, function(r) {
$(btn).done_working();
d.hide();
wrapper.comment_list.refresh();
})
}
d.show();
})
}

View File

@ -0,0 +1,13 @@
<div class="layout_wrapper">
<div class="web-content" id="blog-{{ doc.name }}">
<h1>Blog</h1>
<br>
<div class="web-main-section">
<h2>{{ doc.title }}</h2>
{{ doc.content_html }}
</div>
<div class="web-side-section">
</div>
<div style="clear: both"></div>
</div>
</div>

View File

@ -5,7 +5,7 @@
{
'creation': '2012-01-27 11:37:57',
'docstatus': 0,
'modified': '2012-01-27 11:37:57',
'modified': '2012-01-27 13:26:42',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@ -16,7 +16,8 @@
'module': 'Website',
'name': '__common__',
'page_name': 'about',
'standard': 'Yes'
'standard': 'Yes',
'title': 'About Us'
},
# These values are common for all Page Role

View File

View File

@ -0,0 +1,44 @@
# Page, blog
[
# These values are common in all dictionaries
{
'creation': '2012-01-27 15:47:52',
'docstatus': 0,
'modified': '2012-01-27 15:47:52',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
# These values are common for all Page
{
'doctype': 'Page',
'module': 'Website',
'name': '__common__',
'page_name': 'blog',
'standard': 'Yes',
'title': 'Blog'
},
# These values are common for all Page Role
{
'__islocal': 1,
'doctype': 'Page Role',
'name': '__common__',
'parent': 'blog',
'parentfield': 'roles',
'parenttype': 'Page',
'role': 'Guest'
},
# Page, blog
{
'doctype': 'Page',
'name': 'blog'
},
# Page Role
{
'doctype': 'Page Role'
}
]

View File

@ -3,7 +3,7 @@
<meta charset="utf-8">
<title>ERPNext</title>
<meta name="author" content="">
<script type="text/javascript">window._version_number="215";
<script type="text/javascript">window._version_number="228";
/*
* lib/js/wn/class.js

View File

@ -1 +1 @@
215
228