diff --git a/.gitignore b/.gitignore index a779a7b970..a45a03de15 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ locale .wnf-lang-status *.swp *.egg-info -dist/ \ No newline at end of file +dist/ +build/ diff --git a/webnotes/__init__.py b/webnotes/__init__.py index 05847949f3..11dd1555bb 100644 --- a/webnotes/__init__.py +++ b/webnotes/__init__.py @@ -15,6 +15,8 @@ import os, sys, importlib import json import semantic_version +from webnotes.core.doctype.print_format.print_format import get_html as get_print_html + local = Local() class _dict(dict): @@ -106,6 +108,7 @@ def init(site, sites_path=None): local.user = None local.restrictions = None local.user_perms = {} + local.test_objects = {} setup_module_map() @@ -125,7 +128,6 @@ def destroy(): release_local(local) _memc = None -test_objects = {} # memcache def cache(): diff --git a/webnotes/core/doctype/print_format/print_format.py b/webnotes/core/doctype/print_format/print_format.py index c7f15f2b31..8ee370ab59 100644 --- a/webnotes/core/doctype/print_format/print_format.py +++ b/webnotes/core/doctype/print_format/print_format.py @@ -3,7 +3,6 @@ from __future__ import unicode_literals import webnotes, os -from webnotes import conf import webnotes.utils from webnotes.modules import get_doc_path @@ -31,7 +30,7 @@ class DocType: def export_doc(self): # export - if self.doc.standard == 'Yes' and (conf.get('developer_mode') or 0) == 1: + if self.doc.standard == 'Yes' and (webnotes.conf.get('developer_mode') or 0) == 1: from webnotes.modules.export_file import export_to_files export_to_files(record_list=[['Print Format', self.doc.name]], record_module=self.doc.module) @@ -66,9 +65,13 @@ def get_args(): def get_html(doc, doclist, print_format=None): from jinja2 import Environment - from webnotes.core.doctype.print_format.print_format import get_print_format + + if isinstance(doc, basestring) and isinstance(doclist, basestring): + bean = webnotes.bean(doc, doclist) + doc = bean.doc + doclist = bean.doclist - template = Environment().from_string(get_print_format(doc.doctype, + template = Environment().from_string(get_print_format_name(doc.doctype, print_format or webnotes.form_dict.format)) doctype = webnotes.get_doctype(doc.doctype) @@ -82,7 +85,7 @@ def get_html(doc, doclist, print_format=None): html = template.render(args) return html -def get_print_format(doctype, format_name): +def get_print_format_name(doctype, format_name): if format_name==standard_format: return format_name @@ -111,5 +114,5 @@ def get_print_style(style=None): return "/* Standard Style Missing ?? */" else: with open(path, 'r') as sfile: - return sfile.read() + """ \* test *\ """ + return sfile.read() \ No newline at end of file diff --git a/webnotes/modules/__init__.py b/webnotes/modules/__init__.py index 18a0b4feb5..eb3044965d 100644 --- a/webnotes/modules/__init__.py +++ b/webnotes/modules/__init__.py @@ -6,7 +6,6 @@ from __future__ import unicode_literals Utilities for using modules """ import webnotes, os -from webnotes import conf import webnotes.utils lower_case_files_for = ['DocType', 'Page', 'Report', diff --git a/webnotes/templates/emails/standard.html b/webnotes/templates/emails/standard.html index 4ae7a35247..12fc2ea276 100644 --- a/webnotes/templates/emails/standard.html +++ b/webnotes/templates/emails/standard.html @@ -25,7 +25,7 @@ body { -webkit-text-size-adjust:none; width: 100%!important; height: 100%; - background-color: #f6f6f6; + background-color: #eee; } /* ------------------------------------- @@ -83,7 +83,7 @@ a { ------------------------------------- */ table.body-wrap { width: 100%; - padding: 20px; + padding: 10px; } table.body-wrap .container{ @@ -114,8 +114,11 @@ table.footer-wrap a{ TYPOGRAPHY ------------------------------------- */ h1,h2,h3{ - font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; line-height: 1.1; margin-bottom:15px; color:#000; - margin: 20px 0 10px; + font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; + line-height: 1.1; + margin-top:15px; + margin-bottom:15px; + color:#000; line-height: 1.2; font-weight:200; } diff --git a/webnotes/test_runner.py b/webnotes/test_runner.py index dfb1d4a801..064ff500f0 100644 --- a/webnotes/test_runner.py +++ b/webnotes/test_runner.py @@ -79,6 +79,7 @@ def _run_test(path, filename, verbose, test_suite=None, run=True): def make_test_records(doctype, verbose=0): webnotes.flags.mute_emails = True + if not webnotes.conn: webnotes.connect() @@ -87,9 +88,9 @@ def make_test_records(doctype, verbose=0): options = options[5:] if options == "[Select]": continue - - if options not in webnotes.test_objects: - webnotes.test_objects[options] = [] + + if options not in webnotes.local.test_objects: + webnotes.local.test_objects[options] = [] make_test_records(options, verbose) make_test_records_for_doctype(options, verbose) @@ -116,6 +117,7 @@ def get_dependencies(doctype): for doctype_name in test_module.test_ignore: if doctype_name in options_list: options_list.remove(doctype_name) + return options_list def make_test_records_for_doctype(doctype, verbose=0): @@ -125,10 +127,10 @@ def make_test_records_for_doctype(doctype, verbose=0): print "Making for " + doctype if hasattr(test_module, "_make_test_records"): - webnotes.test_objects[doctype] += test_module._make_test_records(verbose) + webnotes.local.test_objects[doctype] += test_module._make_test_records(verbose) elif hasattr(test_module, "test_records"): - webnotes.test_objects[doctype] += make_test_objects(doctype, test_module.test_records, verbose) + webnotes.local.test_objects[doctype] += make_test_objects(doctype, test_module.test_records, verbose) elif verbose: print_mandatory_fields(doctype) @@ -141,7 +143,7 @@ def make_test_objects(doctype, test_records, verbose=None): doclist[0]["doctype"] = doctype d = webnotes.bean(copy=doclist) - if webnotes.test_objects.get(d.doc.doctype): + if webnotes.local.test_objects.get(d.doc.doctype): # do not create test records, if already exists return [] if has_field(d.doc.doctype, "naming_series"): diff --git a/webnotes/tests/test_db.py b/webnotes/tests/test_db.py index a8dc27e0dd..e8badc3fbd 100644 --- a/webnotes/tests/test_db.py +++ b/webnotes/tests/test_db.py @@ -21,8 +21,8 @@ class TestDB(unittest.TestCase): self.assertEquals(webnotes.conn.get_value("Profile", {"modified": ["<=", now]}), "Administrator") time.sleep(2) - if "Profile" in webnotes.test_objects: - del webnotes.test_objects["Profile"] + if "Profile" in webnotes.local.test_objects: + del webnotes.local.test_objects["Profile"] make_test_records("Profile") self.assertEquals("test1@example.com", webnotes.conn.get_value("Profile", {"modified": [">", now]})) diff --git a/webnotes/webutils.py b/webnotes/webutils.py index da3dee129d..57030f989c 100644 --- a/webnotes/webutils.py +++ b/webnotes/webutils.py @@ -26,12 +26,11 @@ def render(page_name): except Exception: html = render_page("error") + set_content_type(page_name) webnotes._response.data = html def render_page(page_name): - """get page html""" - set_content_type(page_name) - + """get page html""" if page_name.endswith('.html'): page_name = page_name[:-5] html = '' @@ -46,7 +45,7 @@ def render_page(page_name): if page_name=="error": html = html.replace("%(error)s", webnotes.get_traceback()) - elif "text/html" in webnotes._response.headers["Content-Type"]: + elif is_content_html(page_name): comments = "\npage:"+page_name+\ "\nload status: " + (from_cache and "cache" or "fresh") html += """\n""" % webnotes.utils.cstr(comments) @@ -56,10 +55,13 @@ def render_page(page_name): def set_content_type(page_name): webnotes._response.headers["Content-Type"] = "text/html; charset: utf-8" - if "." in page_name and not page_name.endswith(".html"): + if not is_content_html(page_name): content_type, encoding = mimetypes.guess_type(page_name) webnotes._response.headers["Content-Type"] = content_type +def is_content_html(page_name): + return False if ("." in page_name and not page_name.endswith(".html")) else True + def build_page(page_name): if not webnotes.conn: webnotes.connect()