89 lines
2.5 KiB
Python
89 lines
2.5 KiB
Python
from __future__ import unicode_literals
|
|
def execute():
|
|
import webnotes
|
|
import webnotes.model.sync
|
|
|
|
# sync doctypes required for the patch
|
|
webnotes.model.sync.sync('website', 'web_cache')
|
|
webnotes.model.sync.sync('website', 'web_page')
|
|
webnotes.model.sync.sync('website', 'blog')
|
|
webnotes.model.sync.sync('website', 'website_settings')
|
|
webnotes.model.sync.sync('stock', 'item')
|
|
|
|
cleanup()
|
|
|
|
save_pages()
|
|
|
|
save_website_settings()
|
|
|
|
def cleanup():
|
|
import webnotes
|
|
|
|
# delete pages from `tabPage` of module Website or of type Webpage
|
|
webnotes.conn.sql("""\
|
|
delete from `tabPage`
|
|
where module='Website' and ifnull(web_page, 'No') = 'Yes'""")
|
|
|
|
# change show_in_website value in item table to 0 or 1
|
|
webnotes.conn.sql("""\
|
|
update `tabItem`
|
|
set show_in_website = if(show_in_website = 'Yes', 1, 0)
|
|
where show_in_website is not null""")
|
|
|
|
# move comments from comment_doctype Page to Blog
|
|
webnotes.conn.sql("""\
|
|
update `tabComment` comm, `tabBlog` blog
|
|
set comm.comment_doctype = 'Blog', comm.comment_docname = blog.name
|
|
where comm.comment_docname = blog.page_name""")
|
|
|
|
# delete deprecated pages
|
|
import webnotes.model
|
|
for page in ['products', 'contact', 'blog', 'about']:
|
|
try:
|
|
webnotes.model.delete_doc('Page', page)
|
|
except Exception, e:
|
|
webnotes.modules.patch_handler.log(unicode(e))
|
|
|
|
import os
|
|
import conf
|
|
# delete other html files
|
|
exception_list = ['app.html', 'unsupported.html', 'blank.html']
|
|
conf_dir = os.path.dirname(os.path.abspath(conf.__file__))
|
|
public_path = os.path.join(conf_dir, 'public')
|
|
for f in os.listdir(public_path):
|
|
if f.endswith('.html') and f not in exception_list:
|
|
os.remove(os.path.join(public_path, f))
|
|
|
|
def save_pages():
|
|
"""save all web pages, blogs to create content"""
|
|
query_map = {
|
|
'Web Page': """select name from `tabWeb Page` where docstatus=0""",
|
|
'Blog': """\
|
|
select name from `tabBlog`
|
|
where docstatus = 0 and ifnull(published, 0) = 1""",
|
|
'Item': """\
|
|
select name from `tabItem`
|
|
where docstatus = 0 and ifnull(show_in_website, 0) = 1""",
|
|
}
|
|
|
|
import webnotes
|
|
from webnotes.model.doclist import DocList
|
|
import webnotes.modules.patch_handler
|
|
|
|
for dt in query_map:
|
|
for result in webnotes.conn.sql(query_map[dt], as_dict=1):
|
|
try:
|
|
DocList(dt, result['name'].encode('utf-8')).save()
|
|
except Exception, e:
|
|
webnotes.modules.patch_handler.log(unicode(e))
|
|
|
|
def save_website_settings():
|
|
from webnotes.model.code import get_obj
|
|
|
|
# rewrite pages
|
|
get_obj('Website Settings').on_update()
|
|
|
|
ss = get_obj('Style Settings')
|
|
ss.validate()
|
|
ss.doc.save()
|
|
ss.on_update() |