Merge branch 'latest' of github.com:webnotes/erpnext into latest
Conflicts: version.num
This commit is contained in:
commit
67d2c8396c
@ -1,7 +0,0 @@
|
|||||||
index_path = '/'
|
|
||||||
|
|
||||||
include_paths = [
|
|
||||||
'erpnext',
|
|
||||||
'lib/py',
|
|
||||||
'lib/py/legacy'
|
|
||||||
]
|
|
@ -125,7 +125,7 @@ pscript.make_ac_tree = function() {
|
|||||||
var imgsrc=null;
|
var imgsrc=null;
|
||||||
var has_children = true;
|
var has_children = true;
|
||||||
if(cl[i].group_or_ledger=='Ledger') {
|
if(cl[i].group_or_ledger=='Ledger') {
|
||||||
var imgsrc = 'lib/images/icons/page.gif';
|
var imgsrc = 'lib/images/icons/page.png';
|
||||||
has_children = false;
|
has_children = false;
|
||||||
}
|
}
|
||||||
var t = tree.addNode(n, cl[i].account_name, imgsrc,tree.std_onclick, has_children ? tree.std_onexp : null);
|
var t = tree.addNode(n, cl[i].account_name, imgsrc,tree.std_onclick, has_children ? tree.std_onexp : null);
|
||||||
@ -138,7 +138,7 @@ pscript.make_ac_tree = function() {
|
|||||||
var imgsrc=null;
|
var imgsrc=null;
|
||||||
var has_children = true;
|
var has_children = true;
|
||||||
if(cl[i].group_or_ledger=='Ledger') {
|
if(cl[i].group_or_ledger=='Ledger') {
|
||||||
var imgsrc = 'lib/images/icons/page.gif';
|
var imgsrc = 'lib/images/icons/page.png';
|
||||||
has_children = false;
|
has_children = false;
|
||||||
}
|
}
|
||||||
var t = tree.addNode(n, cl[i].cost_center_name, imgsrc,tree.std_onclick, has_children ? tree.std_onexp : null);
|
var t = tree.addNode(n, cl[i].cost_center_name, imgsrc,tree.std_onclick, has_children ? tree.std_onexp : null);
|
||||||
|
@ -34,23 +34,33 @@ feed_dict = {
|
|||||||
'Support Ticket': ['[%(status)s] %(subject)s', '#000080']
|
'Support Ticket': ['[%(status)s] %(subject)s', '#000080']
|
||||||
}
|
}
|
||||||
|
|
||||||
def make_feed(doc, subject, color):
|
def make_feed(feedtype, doctype, name, owner, subject, color):
|
||||||
"makes a new Feed record"
|
"makes a new Feed record"
|
||||||
#msgprint(subject)
|
#msgprint(subject)
|
||||||
from webnotes.model.doc import Document
|
from webnotes.model.doc import Document
|
||||||
webnotes.conn.sql("delete from tabFeed where doc_type=%s and doc_name=%s", (doc.doctype, doc.name))
|
|
||||||
|
if feedtype in ('Login', 'Comment'):
|
||||||
|
# delete old login, comment feed
|
||||||
|
webnotes.conn.sql("""delete from tabFeed where
|
||||||
|
datediff(curdate(), creation) > 7 and doc_type in ('Comment', 'Login')""")
|
||||||
|
else:
|
||||||
|
# one feed per item
|
||||||
|
webnotes.conn.sql("""delete from tabFeed
|
||||||
|
where doc_type=%s and doc_name=%s
|
||||||
|
and ifnull(feed_type,'') != 'Comment'""", (doctype, name))
|
||||||
|
|
||||||
f = Document('Feed')
|
f = Document('Feed')
|
||||||
f.doc_type = doc.doctype
|
f.owner = owner
|
||||||
f.doc_name = doc.name
|
f.feed_type = feedtype
|
||||||
|
f.doc_type = doctype
|
||||||
|
f.doc_name = name
|
||||||
f.subject = subject
|
f.subject = subject
|
||||||
f.color = color
|
f.color = color
|
||||||
f.save(1)
|
f.save()
|
||||||
|
|
||||||
def update_feed(doc, method=None):
|
def update_feed(doc, method=None):
|
||||||
"adds a new feed"
|
"adds a new feed"
|
||||||
if method=='on_update':
|
if method=='on_update':
|
||||||
subject, color = feed_dict.get(doc.doctype, [None, None])
|
subject, color = feed_dict.get(doc.doctype, [None, None])
|
||||||
if subject:
|
if subject:
|
||||||
subject = subject % doc.fields
|
make_feed('', doc.doctype, doc.name, doc.owner, subject % doc.fields, color)
|
||||||
|
|
||||||
make_feed(doc, subject, color)
|
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
# These values are common in all dictionaries
|
# These values are common in all dictionaries
|
||||||
{
|
{
|
||||||
'creation': '2011-04-08 10:50:41',
|
'creation': '2011-04-06 18:11:38',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-04-05 09:16:57',
|
'modified': '2012-02-03 11:28:16',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
@ -14,18 +14,18 @@
|
|||||||
{
|
{
|
||||||
'autoname': '_FEED.#####',
|
'autoname': '_FEED.#####',
|
||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
|
'default_print_format': 'Standard',
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'module': 'Home',
|
'module': 'Home',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'section_style': 'Simple',
|
'section_style': 'Simple',
|
||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'version': 1
|
'version': 2
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Data',
|
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Feed',
|
'parent': 'Feed',
|
||||||
'parentfield': 'fields',
|
'parentfield': 'fields',
|
||||||
@ -39,11 +39,19 @@
|
|||||||
'name': 'Feed'
|
'name': 'Feed'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': 'DocField',
|
||||||
|
'fieldname': 'feed_type',
|
||||||
|
'fieldtype': 'Select',
|
||||||
|
'label': 'Feed Type'
|
||||||
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'doc_type',
|
'fieldname': 'doc_type',
|
||||||
'idx': 1,
|
'fieldtype': 'Data',
|
||||||
'label': 'Doc Type'
|
'label': 'Doc Type'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -51,7 +59,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'doc_name',
|
'fieldname': 'doc_name',
|
||||||
'idx': 2,
|
'fieldtype': 'Data',
|
||||||
'label': 'Doc Name'
|
'label': 'Doc Name'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -59,7 +67,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'subject',
|
'fieldname': 'subject',
|
||||||
'idx': 3,
|
'fieldtype': 'Data',
|
||||||
'label': 'Subject'
|
'label': 'Subject'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -67,7 +75,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'color',
|
'fieldname': 'color',
|
||||||
'idx': 4,
|
'fieldtype': 'Data',
|
||||||
'label': 'Color'
|
'label': 'Color'
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -456,7 +456,7 @@ FeedList.prototype.make_list = function() {
|
|||||||
this.list = new wn.widgets.Listing({
|
this.list = new wn.widgets.Listing({
|
||||||
parent: this.list_area,
|
parent: this.list_area,
|
||||||
query: repl('select \
|
query: repl('select \
|
||||||
distinct t1.name, t1.doc_type, t1.doc_name, t1.subject, t1.modified_by, \
|
distinct t1.name, t1.feed_type, t1.doc_type, t1.doc_name, t1.subject, t1.modified_by, \
|
||||||
concat(ifnull(t2.first_name,""), " ", ifnull(t2.last_name,"")) as full_name, \
|
concat(ifnull(t2.first_name,""), " ", ifnull(t2.last_name,"")) as full_name, \
|
||||||
t1.modified, t1.color \
|
t1.modified, t1.color \
|
||||||
from tabFeed t1, tabProfile t2, tabUserRole t3, tabDocPerm t4 \
|
from tabFeed t1, tabProfile t2, tabUserRole t3, tabDocPerm t4 \
|
||||||
@ -495,13 +495,11 @@ FeedItem = function(cell, det, feedlist) {
|
|||||||
this.tab = make_table(this.wrapper, 1, 2, '100%', [(100/7)+'%', (600/7)+'%']);
|
this.tab = make_table(this.wrapper, 1, 2, '100%', [(100/7)+'%', (600/7)+'%']);
|
||||||
$y(this.tab,{tableLayout:'fixed'})
|
$y(this.tab,{tableLayout:'fixed'})
|
||||||
|
|
||||||
// image
|
|
||||||
$y($td(this.tab,0,0),{textAlign:'right',paddingRight:'4px'});
|
$y($td(this.tab,0,0),{textAlign:'right',paddingRight:'4px'});
|
||||||
|
|
||||||
// text
|
// text
|
||||||
this.text_area = $a($td(this.tab,0,1), 'div');
|
this.text_area = $a($td(this.tab,0,1), 'div');
|
||||||
this.render_references(this.text_area, det);
|
this.render_references(this.text_area, det);
|
||||||
|
|
||||||
this.render_tag(det);
|
this.render_tag(det);
|
||||||
|
|
||||||
// add day separator
|
// add day separator
|
||||||
@ -537,13 +535,21 @@ FeedItem.prototype.add_day_sep = function(det) {
|
|||||||
// -------------------------------------------------
|
// -------------------------------------------------
|
||||||
|
|
||||||
FeedItem.prototype.render_tag = function(det) {
|
FeedItem.prototype.render_tag = function(det) {
|
||||||
|
// type is the name
|
||||||
tag = $a($td(this.tab,0,0), 'div', '',
|
tag = $a($td(this.tab,0,0), 'div', '',
|
||||||
{color:'#FFF', padding:'3px', textAlign:'right', fontSize:'11px', whiteSpace:'nowrap', overflow:'hidden', cursor:'pointer'});
|
{color:'#FFF', padding:'3px', textAlign:'right', fontSize:'11px',
|
||||||
|
whiteSpace:'nowrap', overflow:'hidden', cursor:'pointer'});
|
||||||
$br(tag,'3px');
|
$br(tag,'3px');
|
||||||
$y(tag, {backgroundColor:(det.color || '#273')});
|
$y(tag, {backgroundColor:(det.color || '#273')});
|
||||||
tag.innerHTML = get_doctype_label(det.doc_type);
|
|
||||||
tag.dt = det.doc_type;
|
// tag label
|
||||||
tag.onclick = function() { loaddocbrowser(this.dt); }
|
tag.innerHTML = det.feed_type || get_doctype_label(det.doc_type);
|
||||||
|
|
||||||
|
// not comment / label
|
||||||
|
if(!det.feed_type) {
|
||||||
|
tag.dt = det.doc_type;
|
||||||
|
tag.onclick = function() { loaddocbrowser(this.dt); }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FeedItem.prototype.render_references = function(div, det) {
|
FeedItem.prototype.render_references = function(div, det) {
|
||||||
@ -552,10 +558,15 @@ FeedItem.prototype.render_references = function(div, det) {
|
|||||||
var dt = det.doc_type; var dn = det.doc_name
|
var dt = det.doc_type; var dn = det.doc_name
|
||||||
|
|
||||||
// link
|
// link
|
||||||
var allow = in_list(profile.can_read, dt);
|
if(det.feed_type=='Login') {
|
||||||
var span = $a($td(div.tab,0,0), 'span', (allow ? 'link_type': ''), null, det.doc_name);
|
// nothing - no link
|
||||||
span.dt = dt; span.dn = dn;
|
} else {
|
||||||
if(allow) span.onclick = function() { loaddoc(this.dt, this.dn); }
|
var allow = in_list(profile.can_read, dt);
|
||||||
|
var span = $a($td(div.tab,0,0), 'span', (allow ? 'link_type': ''), null,
|
||||||
|
det.doc_name);
|
||||||
|
span.dt = dt; span.dn = dn;
|
||||||
|
if(allow) span.onclick = function() { loaddoc(this.dt, this.dn); }
|
||||||
|
}
|
||||||
|
|
||||||
// subject
|
// subject
|
||||||
if(det.subject) {
|
if(det.subject) {
|
||||||
|
@ -858,7 +858,7 @@ RoleObj.prototype.make_label = function(tbl, ridx, cidx, role){
|
|||||||
|
|
||||||
var t = make_table($td(tbl, ridx, cidx),1,2,null,['16px', null],{marginRight:'5px'});
|
var t = make_table($td(tbl, ridx, cidx),1,2,null,['16px', null],{marginRight:'5px'});
|
||||||
var ic = $a($td(t,0,0), 'img','',{cursor:'pointer', marginRight:'5px'});
|
var ic = $a($td(t,0,0), 'img','',{cursor:'pointer', marginRight:'5px'});
|
||||||
ic.src= 'lib/images/icons/help.gif';
|
ic.src= 'lib/images/icons/help.png';
|
||||||
ic.role = role;
|
ic.role = role;
|
||||||
|
|
||||||
ic.onclick = function(){
|
ic.onclick = function(){
|
||||||
|
0
erpnext/patches/jan_mar_2012/latest/__init__.py
Normal file
0
erpnext/patches/jan_mar_2012/latest/__init__.py
Normal file
35
erpnext/patches/jan_mar_2012/latest/cleanups.py
Normal file
35
erpnext/patches/jan_mar_2012/latest/cleanups.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import webnotes
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
from webnotes.model import delete_doc
|
||||||
|
from webnotes.modules import reload_doc
|
||||||
|
delete_doc("DocType", "SSO Control")
|
||||||
|
delete_doc("DocType", "WN ERP Client Control")
|
||||||
|
delete_doc("DocType", "Production Tips Common")
|
||||||
|
delete_doc("DocType", "DocTrigger")
|
||||||
|
delete_doc("Page", "Setup Wizard")
|
||||||
|
|
||||||
|
# cleanup control panel
|
||||||
|
delete_doc("DocType", "Control Panel")
|
||||||
|
reload_doc("core", "doctype", "control_panel")
|
||||||
|
|
||||||
|
# cleanup page
|
||||||
|
delete_doc("DocType", "Page")
|
||||||
|
reload_doc("core", "doctype", "page")
|
||||||
|
|
||||||
|
webnotes.conn.sql("""delete from tabSingles
|
||||||
|
where field like 'startup_%' and doctype='Control Panel'""")
|
||||||
|
webnotes.conn.sql("""delete from __SessionCache""")
|
||||||
|
|
||||||
|
webnotes.conn.commit()
|
||||||
|
|
||||||
|
# DDLs
|
||||||
|
# -------------------
|
||||||
|
|
||||||
|
webnotes.conn.sql("drop table if exists tabDocTrigger")
|
||||||
|
|
||||||
|
try: webnotes.conn.sql("""alter table `tabFile Data` drop column blob_content""")
|
||||||
|
except: pass
|
||||||
|
|
||||||
|
webnotes.conn.sql("""alter table __PatchLog engine=InnoDB""")
|
||||||
|
|
6
erpnext/patches/jan_mar_2012/latest/feed.py
Normal file
6
erpnext/patches/jan_mar_2012/latest/feed.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import webnotes
|
||||||
|
from webnotes.model.doc import Document
|
||||||
|
from webnotes.modules import reload_doc
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
reload_doc('home', 'doctype', 'feed')
|
19
erpnext/patches/jan_mar_2012/latest/login.py
Normal file
19
erpnext/patches/jan_mar_2012/latest/login.py
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import webnotes
|
||||||
|
from webnotes.model.doc import Document
|
||||||
|
from webnotes.modules import reload_doc
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
add_default_home_page()
|
||||||
|
reload_doc('setup','doctype','manage_account')
|
||||||
|
|
||||||
|
|
||||||
|
def add_default_home_page():
|
||||||
|
if not webnotes.conn.sql("""select name from `tabDefault Home Page`
|
||||||
|
where role='Guest' and home_page='Login Page'"""):
|
||||||
|
d = Document('Default Home Page')
|
||||||
|
d.parent = 'Control Panel'
|
||||||
|
d.parenttype = 'Control Panel'
|
||||||
|
d.parentfield = 'default_home_pages'
|
||||||
|
d.role = 'Guest'
|
||||||
|
d.home_page = 'Login Page'
|
||||||
|
d.save(1)
|
@ -5,28 +5,56 @@ from webnotes.model.doc import Document
|
|||||||
|
|
||||||
def execute():
|
def execute():
|
||||||
add_website_manager()
|
add_website_manager()
|
||||||
cleanup_file_data()
|
|
||||||
update_patch_log()
|
|
||||||
from webnotes.modules import reload_doc
|
from webnotes.modules import reload_doc
|
||||||
reload_doc('website', 'Role', 'Website Manager')
|
from webnotes.model import delete_doc
|
||||||
|
|
||||||
|
reload_doc('setup', 'doctype', 'item_group')
|
||||||
|
delete_doc('Website', 'Module Def', 'Website')
|
||||||
reload_doc('website', 'Module Def', 'Website')
|
reload_doc('website', 'Module Def', 'Website')
|
||||||
reload_doc('website', 'doctype', 'website_settings')
|
reload_doc('website', 'Role', 'Website Manager')
|
||||||
reload_doc('website', 'doctype', 'style_settings')
|
|
||||||
reload_doc('website', 'doctype', 'top_bar_item')
|
webnotes.conn.sql("""delete from `tabModule Def Role` where parent='Website'""")
|
||||||
reload_doc('website', 'doctype', 'contact_us_settings')
|
d = Document('Module Def Role')
|
||||||
|
d.parent = 'Website'
|
||||||
|
d.role = 'Website Manager'
|
||||||
|
d.save()
|
||||||
|
|
||||||
reload_doc('website', 'doctype', 'about_us_settings')
|
reload_doc('website', 'doctype', 'about_us_settings')
|
||||||
reload_doc('website', 'doctype', 'products_settings')
|
reload_doc('website', 'doctype', 'about_us_team')
|
||||||
reload_doc('website', 'doctype', 'blog')
|
reload_doc('website', 'doctype', 'blog')
|
||||||
reload_doc('website', 'doctype', 'blog_subscriber')
|
reload_doc('website', 'doctype', 'blog_subscriber')
|
||||||
|
reload_doc('website', 'doctype', 'contact_us_settings')
|
||||||
reload_doc('website', 'doctype', 'product')
|
reload_doc('website', 'doctype', 'product')
|
||||||
|
reload_doc('website', 'doctype', 'product_group')
|
||||||
|
reload_doc('website', 'doctype', 'products_settings')
|
||||||
|
reload_doc('website', 'doctype', 'related_page')
|
||||||
|
reload_doc('website', 'doctype', 'style_settings')
|
||||||
|
reload_doc('website', 'doctype', 'top_bar_item')
|
||||||
reload_doc('website', 'doctype', 'web_page')
|
reload_doc('website', 'doctype', 'web_page')
|
||||||
|
reload_doc('website', 'doctype', 'website_settings')
|
||||||
|
|
||||||
reload_doc('website', 'page', 'contact')
|
|
||||||
reload_doc('website', 'page', 'about')
|
reload_doc('website', 'page', 'about')
|
||||||
reload_doc('website', 'page', 'blog')
|
reload_doc('website', 'page', 'blog')
|
||||||
reload_doc('website', 'page', 'unsubscribe')
|
reload_doc('website', 'page', 'contact')
|
||||||
reload_doc('website', 'page', 'products')
|
reload_doc('website', 'page', 'products')
|
||||||
|
reload_doc('website', 'page', 'unsubscribe')
|
||||||
|
|
||||||
|
create_home_page()
|
||||||
|
|
||||||
|
def create_home_page():
|
||||||
|
"""create a dummy home page"""
|
||||||
|
from webnotes.model.code import get_obj
|
||||||
|
if not webnotes.conn.sql("""select name from `tabWeb Page` where name='home'"""):
|
||||||
|
d = Document('Web Page')
|
||||||
|
d.title = 'Home'
|
||||||
|
d.head_section = "<h1>Your Headline</h1>"
|
||||||
|
d.main_section = "<p>Some introduction about your company</p>"
|
||||||
|
d.side_section = "<p>Links to other pages</p>"
|
||||||
|
d.save()
|
||||||
|
obj = get_obj(doc = d)
|
||||||
|
obj.validate()
|
||||||
|
obj.doc.save()
|
||||||
|
|
||||||
def add_website_manager():
|
def add_website_manager():
|
||||||
"""add website manager to system manager"""
|
"""add website manager to system manager"""
|
||||||
for i in webnotes.conn.sql("""select distinct parent from tabUserRole
|
for i in webnotes.conn.sql("""select distinct parent from tabUserRole
|
||||||
@ -37,13 +65,3 @@ def add_website_manager():
|
|||||||
d.parent = i[0]
|
d.parent = i[0]
|
||||||
d.role = 'Website Manager'
|
d.role = 'Website Manager'
|
||||||
d.save(1)
|
d.save(1)
|
||||||
|
|
||||||
def cleanup_file_data():
|
|
||||||
webnotes.conn.commit()
|
|
||||||
webnotes.conn.sql("""alter table `tabFile Data` drop column blob_content""")
|
|
||||||
webnotes.conn.begin()
|
|
||||||
|
|
||||||
def update_patch_log():
|
|
||||||
webnotes.conn.commit()
|
|
||||||
webnotes.conn.sql("""alter table __PatchLog engine=InnoDB""")
|
|
||||||
webnotes.conn.begin()
|
|
@ -1,40 +0,0 @@
|
|||||||
import webnotes
|
|
||||||
from webnotes.model.doc import Document
|
|
||||||
from webnotes.modules import reload_doc
|
|
||||||
|
|
||||||
def execute():
|
|
||||||
add_default_home_page()
|
|
||||||
reload_doc('setup','doctype','manage_account')
|
|
||||||
webnotes.conn.commit()
|
|
||||||
webnotes.conn.sql("drop table if exists tabDocTrigger")
|
|
||||||
cleanup()
|
|
||||||
|
|
||||||
def cleanup():
|
|
||||||
webnotes.conn.begin()
|
|
||||||
from webnotes.model import delete_doc
|
|
||||||
delete_doc("DocType", "SSO Control")
|
|
||||||
delete_doc("DocType", "WN ERP Client Control")
|
|
||||||
delete_doc("DocType", "Production Tips Common")
|
|
||||||
delete_doc("DocType", "DocTrigger")
|
|
||||||
|
|
||||||
# cleanup control panel
|
|
||||||
delete_doc("DocType", "Control Panel")
|
|
||||||
reload_doc("core", "doctype", "control_panel")
|
|
||||||
|
|
||||||
# cleanup page
|
|
||||||
delete_doc("DocType", "Page")
|
|
||||||
reload_doc("core", "doctype", "page")
|
|
||||||
|
|
||||||
webnotes.conn.sql("""delete from tabSingles
|
|
||||||
where field like 'startup_%' and doctype='Control Panel'""")
|
|
||||||
|
|
||||||
def add_default_home_page():
|
|
||||||
if not webnotes.conn.sql("""select name from `tabDefault Home Page`
|
|
||||||
where role='Guest' and home_page='Login Page'"""):
|
|
||||||
d = Document('Default Home Page')
|
|
||||||
d.parent = 'Control Panel'
|
|
||||||
d.parenttype = 'Control Panel'
|
|
||||||
d.parentfield = 'default_home_pages'
|
|
||||||
d.role = 'Guest'
|
|
||||||
d.home_page = 'Login Page'
|
|
||||||
d.save(1)
|
|
@ -140,7 +140,7 @@ SalesBrowser.prototype.make_tree = function() {
|
|||||||
var has_children = true;
|
var has_children = true;
|
||||||
|
|
||||||
if(cl[i].is_group=='No') {
|
if(cl[i].is_group=='No') {
|
||||||
var imgsrc = 'lib/images/icons/page.gif';
|
var imgsrc = 'lib/images/icons/page.png';
|
||||||
has_children = false;
|
has_children = false;
|
||||||
}
|
}
|
||||||
var t = me.tree.addNode(n, cl[i].name, imgsrc,me.tree.std_onclick, has_children ? me.tree.std_onexp : null);
|
var t = me.tree.addNode(n, cl[i].name, imgsrc,me.tree.std_onclick, has_children ? me.tree.std_onexp : null);
|
||||||
@ -220,7 +220,7 @@ SalesBrowser.prototype.first_level_node = function(){
|
|||||||
var has_children = true;
|
var has_children = true;
|
||||||
|
|
||||||
if(cl[i].is_group=='No') {
|
if(cl[i].is_group=='No') {
|
||||||
var imgsrc = 'lib/images/icons/page.gif';
|
var imgsrc = 'lib/images/icons/page.png';
|
||||||
has_children = false;
|
has_children = false;
|
||||||
}
|
}
|
||||||
me.tree_area.innerHTML = '';
|
me.tree_area.innerHTML = '';
|
||||||
|
@ -5,54 +5,54 @@
|
|||||||
{
|
{
|
||||||
'creation': '2010-08-08 17:09:06',
|
'creation': '2010-08-08 17:09:06',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2012-01-30 12:14:30',
|
'modified': '2012-02-06 17:38:00',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': u'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': u'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocType
|
# These values are common for all DocType
|
||||||
{
|
{
|
||||||
'_last_update': '1322549700',
|
'_last_update': u'1322549700',
|
||||||
'allow_trash': 1,
|
'allow_trash': 1,
|
||||||
'autoname': 'field:item_group_name',
|
'autoname': u'field:item_group_name',
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'default_print_format': 'Standard',
|
'default_print_format': u'Standard',
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'document_type': 'Master',
|
'document_type': u'Master',
|
||||||
'in_create': 1,
|
'in_create': 1,
|
||||||
'issingle': 0,
|
'issingle': 0,
|
||||||
'module': 'Setup',
|
'module': u'Setup',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'search_fields': 'parent_item_group',
|
'search_fields': u'parent_item_group',
|
||||||
'section_style': 'Simple',
|
'section_style': u'Simple',
|
||||||
'server_code_error': ' ',
|
'server_code_error': u' ',
|
||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'version': 57
|
'version': 58
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Item Group',
|
'parent': u'Item Group',
|
||||||
'parentfield': 'fields',
|
'parentfield': u'fields',
|
||||||
'parenttype': 'DocType'
|
'parenttype': u'DocType'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocPerm
|
# These values are common for all DocPerm
|
||||||
{
|
{
|
||||||
'doctype': 'DocPerm',
|
'doctype': u'DocPerm',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Item Group',
|
'parent': u'Item Group',
|
||||||
'parentfield': 'permissions',
|
'parentfield': u'permissions',
|
||||||
'parenttype': 'DocType',
|
'parenttype': u'DocType',
|
||||||
'read': 1
|
'read': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocType, Item Group
|
# DocType, Item Group
|
||||||
{
|
{
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'name': 'Item Group'
|
'name': u'Item Group'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
@ -60,9 +60,9 @@
|
|||||||
'amend': 0,
|
'amend': 0,
|
||||||
'cancel': 0,
|
'cancel': 0,
|
||||||
'create': 0,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': u'DocPerm',
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'role': 'Material Manager',
|
'role': u'Material Manager',
|
||||||
'submit': 0,
|
'submit': 0,
|
||||||
'write': 0
|
'write': 0
|
||||||
},
|
},
|
||||||
@ -72,9 +72,9 @@
|
|||||||
'amend': 0,
|
'amend': 0,
|
||||||
'cancel': 0,
|
'cancel': 0,
|
||||||
'create': 0,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': u'DocPerm',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'role': 'Material Manager',
|
'role': u'Material Manager',
|
||||||
'submit': 0,
|
'submit': 0,
|
||||||
'write': 0
|
'write': 0
|
||||||
},
|
},
|
||||||
@ -84,9 +84,9 @@
|
|||||||
'amend': 0,
|
'amend': 0,
|
||||||
'cancel': 0,
|
'cancel': 0,
|
||||||
'create': 0,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': u'DocPerm',
|
||||||
'permlevel': 1,
|
'permlevel': 1,
|
||||||
'role': 'Material User',
|
'role': u'Material User',
|
||||||
'submit': 0,
|
'submit': 0,
|
||||||
'write': 0
|
'write': 0
|
||||||
},
|
},
|
||||||
@ -96,9 +96,9 @@
|
|||||||
'amend': 0,
|
'amend': 0,
|
||||||
'cancel': 0,
|
'cancel': 0,
|
||||||
'create': 0,
|
'create': 0,
|
||||||
'doctype': 'DocPerm',
|
'doctype': u'DocPerm',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'role': 'Material User',
|
'role': u'Material User',
|
||||||
'submit': 0,
|
'submit': 0,
|
||||||
'write': 0
|
'write': 0
|
||||||
},
|
},
|
||||||
@ -107,9 +107,9 @@
|
|||||||
{
|
{
|
||||||
'cancel': 1,
|
'cancel': 1,
|
||||||
'create': 1,
|
'create': 1,
|
||||||
'doctype': 'DocPerm',
|
'doctype': u'DocPerm',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'role': 'System Manager',
|
'role': u'System Manager',
|
||||||
'write': 1
|
'write': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -117,87 +117,98 @@
|
|||||||
{
|
{
|
||||||
'cancel': 1,
|
'cancel': 1,
|
||||||
'create': 1,
|
'create': 1,
|
||||||
'doctype': 'DocPerm',
|
'doctype': u'DocPerm',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'role': 'Material Master Manager',
|
'role': u'Material Master Manager',
|
||||||
'write': 1
|
'write': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'item_group_name',
|
'fieldname': u'item_group_name',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': u'Data',
|
||||||
'label': 'Item Group Name',
|
'label': u'Item Group Name',
|
||||||
'oldfieldname': 'item_group_name',
|
'oldfieldname': u'item_group_name',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': u'Data',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1
|
'reqd': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'description',
|
'fieldname': u'description',
|
||||||
'fieldtype': 'Text',
|
'fieldtype': u'Text',
|
||||||
'label': 'Description',
|
'label': u'Description',
|
||||||
'oldfieldname': 'description',
|
'oldfieldname': u'description',
|
||||||
'oldfieldtype': 'Text',
|
'oldfieldtype': u'Text',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'width': '300px'
|
'width': u'300px'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'colour': u'White:FFF',
|
||||||
'fieldname': 'parent_item_group',
|
'description': u'Check this if you want to show in website',
|
||||||
'fieldtype': 'Link',
|
'doctype': u'DocField',
|
||||||
'label': 'Parent Item Group',
|
'fieldname': u'show_in_website',
|
||||||
'oldfieldname': 'parent_item_group',
|
'fieldtype': u'Check',
|
||||||
'oldfieldtype': 'Link',
|
'label': u'Show in Website',
|
||||||
'options': 'Item Group',
|
'permlevel': 0
|
||||||
|
},
|
||||||
|
|
||||||
|
# DocField
|
||||||
|
{
|
||||||
|
'doctype': u'DocField',
|
||||||
|
'fieldname': u'parent_item_group',
|
||||||
|
'fieldtype': u'Link',
|
||||||
|
'label': u'Parent Item Group',
|
||||||
|
'oldfieldname': u'parent_item_group',
|
||||||
|
'oldfieldtype': u'Link',
|
||||||
|
'options': u'Item Group',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1,
|
'reqd': 1,
|
||||||
'trigger': 'Client'
|
'trigger': u'Client'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'description': 'Only leaf nodes are allowed in transaction',
|
'description': u'Only leaf nodes are allowed in transaction',
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'is_group',
|
'fieldname': u'is_group',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': u'Select',
|
||||||
'label': 'Has Child Node',
|
'label': u'Has Child Node',
|
||||||
'oldfieldname': 'is_group',
|
'oldfieldname': u'is_group',
|
||||||
'oldfieldtype': 'Select',
|
'oldfieldtype': u'Select',
|
||||||
'options': '\nYes\nNo',
|
'options': u'\nYes\nNo',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1
|
'reqd': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'trash_reason',
|
'fieldname': u'trash_reason',
|
||||||
'fieldtype': 'Small Text',
|
'fieldtype': u'Small Text',
|
||||||
'label': 'Trash Reason',
|
'label': u'Trash Reason',
|
||||||
'oldfieldname': 'trash_reason',
|
'oldfieldname': u'trash_reason',
|
||||||
'oldfieldtype': 'Small Text',
|
'oldfieldtype': u'Small Text',
|
||||||
'permlevel': 1
|
'permlevel': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'lft',
|
'fieldname': u'lft',
|
||||||
'fieldtype': 'Int',
|
'fieldtype': u'Int',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'lft',
|
'label': u'lft',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'oldfieldname': 'lft',
|
'oldfieldname': u'lft',
|
||||||
'oldfieldtype': 'Int',
|
'oldfieldtype': u'Int',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'print_hide': 1,
|
'print_hide': 1,
|
||||||
'report_hide': 0,
|
'report_hide': 0,
|
||||||
@ -206,15 +217,15 @@
|
|||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'rgt',
|
'fieldname': u'rgt',
|
||||||
'fieldtype': 'Int',
|
'fieldtype': u'Int',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'rgt',
|
'label': u'rgt',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'oldfieldname': 'rgt',
|
'oldfieldname': u'rgt',
|
||||||
'oldfieldtype': 'Int',
|
'oldfieldtype': u'Int',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'print_hide': 1,
|
'print_hide': 1,
|
||||||
'report_hide': 0,
|
'report_hide': 0,
|
||||||
@ -223,17 +234,17 @@
|
|||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'old_parent',
|
'fieldname': u'old_parent',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': u'Link',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'label': 'old_parent',
|
'label': u'old_parent',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'oldfieldname': 'old_parent',
|
'oldfieldname': u'old_parent',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': u'Data',
|
||||||
'options': 'Item Group',
|
'options': u'Item Group',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'print_hide': 1,
|
'print_hide': 1,
|
||||||
'report_hide': 1
|
'report_hide': 1
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
import webnotes
|
import webnotes
|
||||||
import webnotes.defs
|
import webnotes.defs
|
||||||
from webnotes.utils import cint
|
from webnotes.utils import cint
|
||||||
|
import home
|
||||||
|
|
||||||
def on_login(login_manager):
|
def on_login(login_manager):
|
||||||
"""
|
"""
|
||||||
called from login manager, before login
|
called from login manager, before login
|
||||||
"""
|
"""
|
||||||
try:
|
if login_manager.user not in ('Guest', None, ''):
|
||||||
if login_manager.user not in ('Guest', None, ''):
|
try:
|
||||||
import server_tools.gateway_utils
|
import server_tools.gateway_utils
|
||||||
server_tools.gateway_utils.check_login(login_manager.user)
|
server_tools.gateway_utils.check_login(login_manager.user)
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def on_login_post_session(login_manager):
|
def on_login_post_session(login_manager):
|
||||||
"""
|
"""
|
||||||
@ -29,9 +29,21 @@ def on_login_post_session(login_manager):
|
|||||||
sid!=%s""", \
|
sid!=%s""", \
|
||||||
(webnotes.session['user'], webnotes.session['sid']), as_list=1)
|
(webnotes.session['user'], webnotes.session['sid']), as_list=1)
|
||||||
|
|
||||||
|
if webnotes.session['user'] not in ('Guest'):
|
||||||
|
# create feed
|
||||||
|
from webnotes.utils import nowtime
|
||||||
|
home.make_feed('Login', 'Profile', login_manager.user, login_manager.user,
|
||||||
|
'%s logged in at %s' % (login_manager.user_fullname, nowtime()),
|
||||||
|
login_manager.user=='Administrator' and '#8CA2B3' or '#1B750D')
|
||||||
|
|
||||||
|
def comment_added(doc):
|
||||||
|
"""add comment to feed"""
|
||||||
|
import json
|
||||||
|
home.make_feed('Comment', doc.comment_doctype, doc.comment_docname, doc.comment_by,
|
||||||
|
'<i>"' + doc.comment + '"</i>', '#6B24B3')
|
||||||
|
|
||||||
def doclist_all(doc, method):
|
def doclist_all(doc, method):
|
||||||
"""doclist trigger called from webnotes.model.doclist on any event"""
|
"""doclist trigger called from webnotes.model.doclist on any event"""
|
||||||
import home
|
|
||||||
home.update_feed(doc, method)
|
home.update_feed(doc, method)
|
||||||
|
|
||||||
def boot_session(bootinfo):
|
def boot_session(bootinfo):
|
||||||
@ -41,7 +53,7 @@ def boot_session(bootinfo):
|
|||||||
|
|
||||||
if webnotes.session['user']=='Guest':
|
if webnotes.session['user']=='Guest':
|
||||||
bootinfo['website_settings'] = webnotes.model.doc.getsingle('Website Settings')
|
bootinfo['website_settings'] = webnotes.model.doc.getsingle('Website Settings')
|
||||||
bootinfo['website_menus'] = webnotes.conn.sql("""select label, std_page, custom_page,
|
bootinfo['website_menus'] = webnotes.conn.sql("""select label, url, custom_page,
|
||||||
parent_label, parentfield
|
parent_label, parentfield
|
||||||
from `tabTop Bar Item` where parent='Website Settings' order by idx asc""", as_dict=1)
|
from `tabTop Bar Item` where parent='Website Settings' order by idx asc""", as_dict=1)
|
||||||
bootinfo['custom_css'] = webnotes.conn.get_value('Style Settings', None, 'custom_css') or ''
|
bootinfo['custom_css'] = webnotes.conn.get_value('Style Settings', None, 'custom_css') or ''
|
||||||
@ -51,5 +63,6 @@ def boot_session(bootinfo):
|
|||||||
def get_letter_heads():
|
def get_letter_heads():
|
||||||
"""load letter heads with startup"""
|
"""load letter heads with startup"""
|
||||||
import webnotes
|
import webnotes
|
||||||
ret = webnotes.conn.sql("select name, content from `tabLetter Head` where ifnull(disabled,0)=0")
|
ret = webnotes.conn.sql("""select name, content from `tabLetter Head`
|
||||||
|
where ifnull(disabled,0)=0""")
|
||||||
return dict(ret)
|
return dict(ret)
|
||||||
|
26
erpnext/website/Role/Website Manager/Website Manager.txt
Normal file
26
erpnext/website/Role/Website Manager/Website Manager.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Role, Website Manager
|
||||||
|
[
|
||||||
|
|
||||||
|
# These values are common in all dictionaries
|
||||||
|
{
|
||||||
|
'creation': '2012-01-24 10:18:47',
|
||||||
|
'docstatus': 0,
|
||||||
|
'modified': '2012-02-06 15:22:27',
|
||||||
|
'modified_by': u'Administrator',
|
||||||
|
'owner': u'Administrator'
|
||||||
|
},
|
||||||
|
|
||||||
|
# These values are common for all Role
|
||||||
|
{
|
||||||
|
'doctype': 'Role',
|
||||||
|
'module': u'Website',
|
||||||
|
'name': '__common__',
|
||||||
|
'role_name': u'Website Manager'
|
||||||
|
},
|
||||||
|
|
||||||
|
# Role, Website Manager
|
||||||
|
{
|
||||||
|
'doctype': 'Role',
|
||||||
|
'name': u'Website Manager'
|
||||||
|
}
|
||||||
|
]
|
@ -14,11 +14,11 @@ class DocType:
|
|||||||
path = os.path.join(os.path.dirname(__file__), 'template.html')
|
path = os.path.join(os.path.dirname(__file__), 'template.html')
|
||||||
|
|
||||||
self.doc.about_team = webnotes.conn.sql("""select * from `tabAbout Us Team`
|
self.doc.about_team = webnotes.conn.sql("""select * from `tabAbout Us Team`
|
||||||
where parent='About Us Settings'""", as_dict=1)
|
where parent='About Us Settings' order by idx""", as_dict=1)
|
||||||
|
|
||||||
import markdown2
|
import markdown2
|
||||||
for t in self.doc.about_team:
|
for t in self.doc.about_team:
|
||||||
t['bio'] = markdown2.markdown(t['bio'])
|
t['bio'] = markdown2.markdown(t.get('bio') or '')
|
||||||
|
|
||||||
webnotes.conn.set_value('Page', 'about', 'title', self.doc.headline)
|
webnotes.conn.set_value('Page', 'about', 'title', self.doc.headline)
|
||||||
webnotes.conn.set_value('Page', 'about', 'content', make_template(self.doc, path))
|
webnotes.conn.set_value('Page', 'about', 'content', make_template(self.doc, path))
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import webnotes
|
||||||
|
|
||||||
class DocType:
|
class DocType:
|
||||||
def __init__(self, d, dl):
|
def __init__(self, d, dl):
|
||||||
self.doc, self.doclist = d, dl
|
self.doc, self.doclist = d, dl
|
||||||
@ -24,4 +26,14 @@ class DocType:
|
|||||||
|
|
||||||
website.utils.add_guest_access_to_page(p.name)
|
website.utils.add_guest_access_to_page(p.name)
|
||||||
self.doc.page_name = p.name
|
self.doc.page_name = p.name
|
||||||
del self.doc.fields['long_description_html']
|
del self.doc.fields['long_description_html']
|
||||||
|
self.make_item_group_active()
|
||||||
|
|
||||||
|
|
||||||
|
def make_item_group_active(self):
|
||||||
|
"""show item group in website"""
|
||||||
|
if self.doc.published:
|
||||||
|
from webnotes.model.doc import Document
|
||||||
|
ig = Document('Item Group', webnotes.conn.get_value('Item', self.doc.item, 'item_group'))
|
||||||
|
ig.show_in_website = 1
|
||||||
|
ig.save()
|
||||||
|
@ -5,245 +5,245 @@
|
|||||||
{
|
{
|
||||||
'creation': '2012-01-30 16:21:29',
|
'creation': '2012-01-30 16:21:29',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2012-01-31 13:46:23',
|
'modified': '2012-02-06 16:15:29',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': u'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': u'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocType
|
# These values are common for all DocType
|
||||||
{
|
{
|
||||||
'_last_update': '1327995660',
|
'_last_update': u'1327997783',
|
||||||
'allow_attach': 1,
|
'allow_attach': 1,
|
||||||
'autoname': 'field:item',
|
'autoname': u'field:item',
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'description': 'A Product is shown on the website and is linked to an item.',
|
'description': u'A Product is shown on the website and is linked to an item.',
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'max_attachments': 5,
|
'max_attachments': 5,
|
||||||
'module': 'Website',
|
'module': u'Website',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'section_style': 'Simple',
|
'section_style': u'Simple',
|
||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'version': 10
|
'version': 11
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Product',
|
'parent': u'Product',
|
||||||
'parentfield': 'fields',
|
'parentfield': u'fields',
|
||||||
'parenttype': 'DocType'
|
'parenttype': u'DocType'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocPerm
|
# These values are common for all DocPerm
|
||||||
{
|
{
|
||||||
'doctype': 'DocPerm',
|
'doctype': u'DocPerm',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Product',
|
'parent': u'Product',
|
||||||
'parentfield': 'permissions',
|
'parentfield': u'permissions',
|
||||||
'parenttype': 'DocType',
|
'parenttype': u'DocType',
|
||||||
'read': 1,
|
'read': 1,
|
||||||
'role': 'Website Manager'
|
'role': u'Website Manager'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocType, Product
|
# DocType, Product
|
||||||
{
|
{
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'name': 'Product'
|
'name': u'Product'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'create': 1,
|
'create': 1,
|
||||||
'doctype': 'DocPerm',
|
'doctype': u'DocPerm',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'write': 1
|
'write': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocPerm
|
# DocPerm
|
||||||
{
|
{
|
||||||
'doctype': 'DocPerm',
|
'doctype': u'DocPerm',
|
||||||
'permlevel': 1
|
'permlevel': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'item',
|
'fieldname': u'item',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': u'Link',
|
||||||
'label': 'Item',
|
'label': u'Item',
|
||||||
'options': 'Item',
|
'options': u'Item',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1
|
'reqd': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'title',
|
'fieldname': u'title',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': u'Data',
|
||||||
'label': 'Title',
|
'label': u'Title',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'published',
|
'fieldname': u'published',
|
||||||
'fieldtype': 'Check',
|
'fieldtype': u'Check',
|
||||||
'label': 'Published',
|
'label': u'Published',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'description': 'Select Price List for the web. Leave blank to hide price.',
|
'description': u'Select Price List for the web. Leave blank to hide price.',
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'price_list',
|
'fieldname': u'price_list',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': u'Link',
|
||||||
'label': 'Price List',
|
'label': u'Price List',
|
||||||
'options': 'Price List',
|
'options': u'Price List',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'description': 'Select shipping warehouse to show "In Stock" or "Out of Stock". To hide, leave blank',
|
'description': u'Select shipping warehouse to show "In Stock" or "Out of Stock". To hide, leave blank',
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'warehouse',
|
'fieldname': u'warehouse',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': u'Link',
|
||||||
'label': 'Warehouse',
|
'label': u'Warehouse',
|
||||||
'options': 'Warehouse',
|
'options': u'Warehouse',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': u'Column Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'description': 'Image for listing (Width: 100px) (Attach First)',
|
'description': u'Image for listing (Width: 100px) (Attach First)',
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'thumbnail_image',
|
'fieldname': u'thumbnail_image',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': u'Select',
|
||||||
'label': 'Thumbnail Image',
|
'label': u'Thumbnail Image',
|
||||||
'options': 'attach_files:',
|
'options': u'attach_files:',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'description': 'Image for listing (Width: 300px) (Attach First)',
|
'description': u'Image for listing (Width: 300px) (Attach First)',
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'full_image',
|
'fieldname': u'full_image',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': u'Select',
|
||||||
'label': 'Full Image',
|
'label': u'Full Image',
|
||||||
'options': 'attach_files:',
|
'options': u'attach_files:',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'short_description',
|
'fieldname': u'short_description',
|
||||||
'fieldtype': 'Text',
|
'fieldtype': u'Text',
|
||||||
'label': 'Short Description',
|
'label': u'Short Description',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 1
|
'reqd': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': u'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'description': 'Full description (formatted as markdown)',
|
'description': u'Full description (formatted as markdown)',
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'long_description',
|
'fieldname': u'long_description',
|
||||||
'fieldtype': 'Code',
|
'fieldtype': u'Code',
|
||||||
'label': 'Long Description',
|
'label': u'Long Description',
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'reqd': 0
|
'reqd': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': u'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'page_name',
|
'fieldname': u'page_name',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': u'Data',
|
||||||
'label': 'Page Name',
|
'label': u'Page Name',
|
||||||
'permlevel': 1
|
'permlevel': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'price',
|
'fieldname': u'price',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': u'Currency',
|
||||||
'hidden': 0,
|
'hidden': 0,
|
||||||
'label': 'Price',
|
'label': u'Price',
|
||||||
'permlevel': 1
|
'permlevel': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'sales',
|
'fieldname': u'sales',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': u'Currency',
|
||||||
'label': 'Sales',
|
'label': u'Sales',
|
||||||
'permlevel': 1
|
'permlevel': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'stock',
|
'fieldname': u'stock',
|
||||||
'fieldtype': 'Currency',
|
'fieldtype': u'Currency',
|
||||||
'label': 'Stock',
|
'label': u'Stock',
|
||||||
'permlevel': 1
|
'permlevel': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'currency',
|
'fieldname': u'currency',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': u'Link',
|
||||||
'label': 'Currency',
|
'label': u'Currency',
|
||||||
'options': 'Currency',
|
'options': u'Currency',
|
||||||
'permlevel': 1
|
'permlevel': 1
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'file_list',
|
'fieldname': u'file_list',
|
||||||
'fieldtype': 'Text',
|
'fieldtype': u'Text',
|
||||||
'hidden': 1,
|
'hidden': 1,
|
||||||
'label': 'File List',
|
'label': u'File List',
|
||||||
'no_copy': 1,
|
'no_copy': 1,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'print_hide': 1
|
'print_hide': 1
|
||||||
|
@ -5,45 +5,45 @@
|
|||||||
{
|
{
|
||||||
'creation': '2012-02-01 16:16:47',
|
'creation': '2012-02-01 16:16:47',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2012-02-01 16:16:48',
|
'modified': '2012-02-06 12:24:29',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': u'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': u'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocType
|
# These values are common for all DocType
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'istable': 1,
|
'istable': 1,
|
||||||
'module': 'Website',
|
'module': u'Website',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'section_style': 'Simple',
|
'section_style': u'Simple',
|
||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'version': 1
|
'version': 3
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'page',
|
'fieldname': u'page',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': u'Link',
|
||||||
'label': 'Page',
|
'label': u'Page',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'options': 'Page',
|
'options': u'Page',
|
||||||
'parent': 'Related Page',
|
'parent': u'Related Page',
|
||||||
'parentfield': 'fields',
|
'parentfield': u'fields',
|
||||||
'parenttype': 'DocType',
|
'parenttype': u'DocType',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocType, Related Page
|
# DocType, Related Page
|
||||||
{
|
{
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'name': 'Related Page'
|
'name': u'Related Page'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField'
|
'doctype': u'DocField'
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -5,70 +5,69 @@
|
|||||||
{
|
{
|
||||||
'creation': '2012-01-24 10:24:19',
|
'creation': '2012-01-24 10:24:19',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2012-01-30 14:14:48',
|
'modified': '2012-02-07 10:35:19',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': u'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': u'Administrator'
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocType
|
# These values are common for all DocType
|
||||||
{
|
{
|
||||||
'colour': 'White:FFF',
|
'colour': u'White:FFF',
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'istable': 1,
|
'istable': 1,
|
||||||
'module': 'Website',
|
'module': u'Website',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'section_style': 'Simple',
|
'section_style': u'Simple',
|
||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'version': 2
|
'version': 4
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'name': '__common__',
|
'name': '__common__',
|
||||||
'parent': 'Top Bar Item',
|
'parent': u'Top Bar Item',
|
||||||
'parentfield': 'fields',
|
'parentfield': u'fields',
|
||||||
'parenttype': 'DocType',
|
'parenttype': u'DocType',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocType, Top Bar Item
|
# DocType, Top Bar Item
|
||||||
{
|
{
|
||||||
'doctype': 'DocType',
|
'doctype': 'DocType',
|
||||||
'name': 'Top Bar Item'
|
'name': u'Top Bar Item'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'label',
|
'fieldname': u'label',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': u'Data',
|
||||||
'label': 'Label'
|
'label': u'Label'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'std_page',
|
'fieldname': u'custom_page',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': u'Link',
|
||||||
'label': 'Std Page',
|
'label': u'Page',
|
||||||
'options': 'Home\nAbout\nContact\nProducts\nBlog\nCustom'
|
'options': u'Page'
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'custom_page',
|
'fieldname': u'url',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': u'Data',
|
||||||
'label': 'Custom Page',
|
'label': u'URL'
|
||||||
'options': 'Web Page'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': u'DocField',
|
||||||
'fieldname': 'parent_label',
|
'fieldname': u'parent_label',
|
||||||
'fieldtype': 'Select',
|
'fieldtype': u'Select',
|
||||||
'label': 'Parent Label'
|
'label': u'Parent Label'
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -37,10 +37,13 @@ class DocType:
|
|||||||
"title": webnotes.conn.get_value("Page", self.doc.next_page, "title")}
|
"title": webnotes.conn.get_value("Page", self.doc.next_page, "title")}
|
||||||
|
|
||||||
self.doc.see_also = ''
|
self.doc.see_also = ''
|
||||||
for l in webnotes.conn.sql("""select distinct t1.page, t2.title from
|
for d in self.doclist:
|
||||||
`tabRelated Page` t1, tabPage t2 where
|
if d.doctype=='Related Page':
|
||||||
t1.page = t2.name order by t2.title""", as_dict=1):
|
tmp = {"page":d.page, "title":webnotes.conn.get_value('Page', d.page, 'title')}
|
||||||
self.doc.see_also += """<p><a href="#!%(page)s">%(title)s</a></p>""" % l
|
self.doc.see_also += """<li><a href="#!%(page)s">%(title)s</a></li>""" % tmp
|
||||||
|
|
||||||
|
if self.doc.see_also:
|
||||||
|
self.doc.see_also = '<ul>%s</ul>' % self.doc.see_also
|
||||||
|
|
||||||
def cleanup_temp(self):
|
def cleanup_temp(self):
|
||||||
"""cleanup temp fields"""
|
"""cleanup temp fields"""
|
||||||
|
@ -37,7 +37,7 @@ erpnext.topbar.TopBar = Class.extend({
|
|||||||
for(var i=0;i<items.length;i++) {
|
for(var i=0;i<items.length;i++) {
|
||||||
var item = items[i];
|
var item = items[i];
|
||||||
if(!item.parent_label && item.parentfield=='top_bar_items') {
|
if(!item.parent_label && item.parentfield=='top_bar_items') {
|
||||||
item.route = item.std_page ? item.std_page.toLowerCase() : item.custom_page;
|
item.route = item.url || item.custom_page;
|
||||||
$('header .nav:first').append(repl('<li><a href="#!%(route)s" \
|
$('header .nav:first').append(repl('<li><a href="#!%(route)s" \
|
||||||
data-label="%(label)s">%(label)s</a></li>', item))
|
data-label="%(label)s">%(label)s</a></li>', item))
|
||||||
}
|
}
|
||||||
@ -64,7 +64,7 @@ erpnext.Footer = Class.extend({
|
|||||||
for(var i=0;i<items.length;i++) {
|
for(var i=0;i<items.length;i++) {
|
||||||
var item = items[i];
|
var item = items[i];
|
||||||
if(!item.parent_label && item.parentfield=='footer_items') {
|
if(!item.parent_label && item.parentfield=='footer_items') {
|
||||||
item.route = item.std_page ? item.std_page.toLowerCase() : item.custom_page;
|
item.route = item.url || item.custom_page;
|
||||||
$('.web-footer-menu ul').append(repl('<li><a href="#!%(route)s" \
|
$('.web-footer-menu ul').append(repl('<li><a href="#!%(route)s" \
|
||||||
data-label="%(label)s">%(label)s</a></li>', item))
|
data-label="%(label)s">%(label)s</a></li>', item))
|
||||||
}
|
}
|
||||||
@ -72,4 +72,4 @@ erpnext.Footer = Class.extend({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
erpnext.footer = new erpnext.Footer();
|
erpnext.footer = new erpnext.Footer();
|
||||||
|
@ -25,7 +25,8 @@ def markdown(doc, fields):
|
|||||||
def page_name(title):
|
def page_name(title):
|
||||||
"""make page name from title, and check that there is no duplicate"""
|
"""make page name from title, and check that there is no duplicate"""
|
||||||
import re
|
import re
|
||||||
name = re.sub('[~!@#$%^&*()<>,."\']', '', title.lower())
|
name = title.lower()
|
||||||
|
name = re.sub('[~!@#$%^&*()<>,."\']', '', name)
|
||||||
return '-'.join(name.split()[:4])
|
return '-'.join(name.split()[:4])
|
||||||
|
|
||||||
def add_page(title):
|
def add_page(title):
|
||||||
@ -50,4 +51,4 @@ def add_guest_access_to_page(page):
|
|||||||
d = Document('Page Role')
|
d = Document('Page Role')
|
||||||
d.parent = page
|
d.parent = page
|
||||||
d.role = 'Guest'
|
d.role = 'Guest'
|
||||||
d.save()
|
d.save()
|
||||||
|
10
index.cgi
10
index.cgi
@ -19,7 +19,13 @@ def init():
|
|||||||
webnotes.form_dict[key] = webnotes.form.getvalue(key)
|
webnotes.form_dict[key] = webnotes.form.getvalue(key)
|
||||||
|
|
||||||
# init request
|
# init request
|
||||||
webnotes.http_request = webnotes.auth.HTTPRequest()
|
try:
|
||||||
|
webnotes.http_request = webnotes.auth.HTTPRequest()
|
||||||
|
except Exception, e:
|
||||||
|
if webnotes.response['message']=='Authentication Failed':
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
raise e
|
||||||
|
|
||||||
def respond():
|
def respond():
|
||||||
import webnotes
|
import webnotes
|
||||||
@ -34,4 +40,4 @@ def respond():
|
|||||||
|
|
||||||
if __name__=="__main__":
|
if __name__=="__main__":
|
||||||
init()
|
init()
|
||||||
respond()
|
respond()
|
||||||
|
@ -1 +1 @@
|
|||||||
353
|
359
|
||||||
|
134
wnf.py
Executable file
134
wnf.py
Executable file
@ -0,0 +1,134 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import os, sys
|
||||||
|
|
||||||
|
def replace_code(start, txt1, txt2, extn):
|
||||||
|
"""replace all txt1 by txt2 in files with extension (extn)"""
|
||||||
|
import os, re
|
||||||
|
for wt in os.walk(start, followlinks=1):
|
||||||
|
for fn in wt[2]:
|
||||||
|
if fn.split('.')[-1]==extn:
|
||||||
|
fpath = os.path.join(wt[0], fn)
|
||||||
|
with open(fpath, 'r') as f:
|
||||||
|
content = f.read()
|
||||||
|
|
||||||
|
if re.search(txt1, content):
|
||||||
|
a = raw_input('Change in %s [y/n]?' % fpath)
|
||||||
|
if a=='y':
|
||||||
|
with open(fpath, 'w') as f:
|
||||||
|
f.write(re.sub(txt1, txt2, content))
|
||||||
|
|
||||||
|
print 'updated in %s' % fpath
|
||||||
|
|
||||||
|
def setup_options():
|
||||||
|
from optparse import OptionParser
|
||||||
|
parser = OptionParser()
|
||||||
|
parser.add_option("-b", "--build", default=False, action="store_true",
|
||||||
|
help="minify + concat js files")
|
||||||
|
parser.add_option("-c", "--clear", default=False, action="store_true",
|
||||||
|
help="increment version")
|
||||||
|
parser.add_option("--replace", nargs=3, default=False,
|
||||||
|
metavar = "search replace_by extension",
|
||||||
|
help="file search-replace")
|
||||||
|
parser.add_option("--status", default=False, action="store_true",
|
||||||
|
help="git status")
|
||||||
|
parser.add_option("--pull", nargs=2, default=False,
|
||||||
|
metavar = "remote branch",
|
||||||
|
help="git pull (both repos)")
|
||||||
|
parser.add_option("--push", nargs=3, default=False,
|
||||||
|
metavar = "remote branch comment",
|
||||||
|
help="git commit + push (both repos) [remote] [branch] [comment]")
|
||||||
|
parser.add_option("-l", "--latest",
|
||||||
|
action="store_true", dest="run_latest", default=False,
|
||||||
|
help="Apply the latest patches")
|
||||||
|
parser.add_option("-p", "--patch", nargs=1, dest="patch_list", metavar='patch_module',
|
||||||
|
action="append",
|
||||||
|
help="Apply patch")
|
||||||
|
parser.add_option("-f", "--force",
|
||||||
|
action="store_true", dest="force", default=False,
|
||||||
|
help="Force Apply all patches specified using option -p or --patch")
|
||||||
|
parser.add_option("-d", "--db",
|
||||||
|
dest="db_name",
|
||||||
|
help="Apply the patches on given db")
|
||||||
|
parser.add_option('--reload_doc', nargs=3, metavar = "module doctype docname",
|
||||||
|
help="reload doc")
|
||||||
|
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
def run():
|
||||||
|
sys.path.append('lib')
|
||||||
|
sys.path.append('lib/py')
|
||||||
|
import webnotes
|
||||||
|
import webnotes.defs
|
||||||
|
sys.path.append(webnotes.defs.modules_path)
|
||||||
|
|
||||||
|
(options, args) = setup_options()
|
||||||
|
|
||||||
|
|
||||||
|
from webnotes.db import Database
|
||||||
|
import webnotes.modules.patch_handler
|
||||||
|
|
||||||
|
# connect
|
||||||
|
if options.db_name is not None:
|
||||||
|
webnotes.connect(options.db_name)
|
||||||
|
|
||||||
|
# build
|
||||||
|
if options.build:
|
||||||
|
import build.project
|
||||||
|
build.project.build()
|
||||||
|
|
||||||
|
elif options.clear:
|
||||||
|
from build.project import increment_version
|
||||||
|
print "Version:" + str(increment_version())
|
||||||
|
|
||||||
|
# code replace
|
||||||
|
elif options.replace:
|
||||||
|
replace_code('.', options.replace[0], options.replace[1], options.replace[2])
|
||||||
|
|
||||||
|
# git
|
||||||
|
elif options.status:
|
||||||
|
os.system('git status')
|
||||||
|
os.chdir('lib')
|
||||||
|
os.system('git status')
|
||||||
|
|
||||||
|
elif options.pull:
|
||||||
|
os.system('git pull %s %s' % (options.pull[0], options.pull[1]))
|
||||||
|
os.chdir('lib')
|
||||||
|
os.system('git pull %s %s' % (options.pull[0], options.pull[1]))
|
||||||
|
|
||||||
|
elif options.push:
|
||||||
|
os.system('git commit -a -m "%s"' % options.push[2])
|
||||||
|
os.system('git push %s %s' % (options.push[0], options.push[1]))
|
||||||
|
os.chdir('lib')
|
||||||
|
os.system('git commit -a -m "%s"' % options.push[2])
|
||||||
|
os.system('git push %s %s' % (options.push[0], options.push[1]))
|
||||||
|
|
||||||
|
# patch
|
||||||
|
elif options.patch_list:
|
||||||
|
# clear log
|
||||||
|
webnotes.modules.patch_handler.log_list = []
|
||||||
|
|
||||||
|
# run individual patches
|
||||||
|
for patch in options.patch_list:
|
||||||
|
webnotes.modules.patch_handler.run_single(\
|
||||||
|
patchmodule = patch, force = options.force)
|
||||||
|
|
||||||
|
print '\n'.join(webnotes.modules.patch_handler.log_list)
|
||||||
|
|
||||||
|
# reload
|
||||||
|
elif options.reload_doc:
|
||||||
|
webnotes.modules.patch_handler.reload_doc(\
|
||||||
|
{"module":options.reload_doc[0], "dt":options.reload_doc[1], "dn":options.reload_doc[2]})
|
||||||
|
print '\n'.join(webnotes.modules.patch_handler.log_list)
|
||||||
|
|
||||||
|
# run all pending
|
||||||
|
elif options.run_latest:
|
||||||
|
webnotes.modules.patch_handler.run_all()
|
||||||
|
print '\n'.join(webnotes.modules.patch_handler.log_list)
|
||||||
|
|
||||||
|
# print messages
|
||||||
|
if webnotes.message_log:
|
||||||
|
print '\n'.join(webnotes.message_log)
|
||||||
|
|
||||||
|
if __name__=='__main__':
|
||||||
|
run()
|
Loading…
x
Reference in New Issue
Block a user