diff --git a/frappe/core/doctype/customize_form/test_customize_form.py b/frappe/core/doctype/customize_form/test_customize_form.py
index db4115fb8b..5f65b9e4a4 100644
--- a/frappe/core/doctype/customize_form/test_customize_form.py
+++ b/frappe/core/doctype/customize_form/test_customize_form.py
@@ -47,7 +47,7 @@ class TestCustomizeForm(unittest.TestCase):
d = self.get_customize_form("User")
self.assertEquals(d.doc_type, "User")
- self.assertEquals(len(d.get("customize_form_fields")), 55)
+ self.assertEquals(len(d.get("customize_form_fields")), 48)
self.assertEquals(d.get("customize_form_fields")[-1].fieldname, "test_custom_field")
self.assertEquals(d.get("customize_form_fields", {"fieldname": "location"})[0].in_list_view, 1)
diff --git a/frappe/core/doctype/event/event.py b/frappe/core/doctype/event/event.py
index 9f3afbc64f..a68e4d6dad 100644
--- a/frappe/core/doctype/event/event.py
+++ b/frappe/core/doctype/event/event.py
@@ -14,6 +14,11 @@ class Event(Document):
def validate(self):
if self.starts_on and self.ends_on and self.starts_on > self.ends_on:
frappe.msgprint(frappe._("Event end must be after start"), raise_exception=True)
+
+ if self.starts_on == self.ends_on:
+ # this scenario doesn't make sense i.e. it starts and ends at the same second!
+ self.ends_on = None
+
if self.starts_on and self.ends_on and int(date_diff(self.ends_on.split(" ")[0], self.starts_on.split(" ")[0])) > 0 \
and self.repeat_on == "Every Day":
frappe.msgprint(frappe._("Every day events should finish on the same day."), raise_exception=True)
diff --git a/frappe/core/doctype/print_format/print_format.json b/frappe/core/doctype/print_format/print_format.json
index ef2306509a..1c3cc5454a 100644
--- a/frappe/core/doctype/print_format/print_format.json
+++ b/frappe/core/doctype/print_format/print_format.json
@@ -1,183 +1,183 @@
{
- "allow_copy": 0,
- "allow_rename": 0,
- "autoname": "Prompt",
- "creation": "2013-01-23 19:54:43",
- "docstatus": 0,
- "doctype": "DocType",
+ "allow_copy": 0,
+ "allow_rename": 0,
+ "autoname": "Prompt",
+ "creation": "2013-01-23 19:54:43",
+ "docstatus": 0,
+ "doctype": "DocType",
"fields": [
{
- "description": "Belongs to",
- "fieldname": "doc_type",
- "fieldtype": "Link",
- "in_filter": 1,
- "in_list_view": 1,
- "label": "DocType",
- "options": "DocType",
- "permlevel": 0,
- "reqd": 1,
+ "description": "Belongs to",
+ "fieldname": "doc_type",
+ "fieldtype": "Link",
+ "in_filter": 1,
+ "in_list_view": 1,
+ "label": "DocType",
+ "options": "DocType",
+ "permlevel": 0,
+ "reqd": 1,
"search_index": 0
- },
+ },
{
- "allow_on_submit": 0,
- "fieldname": "module",
- "fieldtype": "Link",
- "hidden": 0,
- "in_filter": 1,
- "in_list_view": 1,
- "label": "Module",
- "no_copy": 0,
- "oldfieldname": "module",
- "oldfieldtype": "Select",
- "options": "Module Def",
- "permlevel": 0,
- "print_hide": 0,
- "report_hide": 0,
- "reqd": 1,
+ "allow_on_submit": 0,
+ "fieldname": "module",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "in_filter": 1,
+ "in_list_view": 1,
+ "label": "Module",
+ "no_copy": 0,
+ "oldfieldname": "module",
+ "oldfieldtype": "Select",
+ "options": "Module Def",
+ "permlevel": 0,
+ "print_hide": 0,
+ "report_hide": 0,
+ "reqd": 1,
"search_index": 1
- },
+ },
{
- "fieldname": "column_break_3",
- "fieldtype": "Column Break",
+ "fieldname": "column_break_3",
+ "fieldtype": "Column Break",
"permlevel": 0
- },
+ },
{
- "allow_on_submit": 0,
- "default": "No",
- "fieldname": "standard",
- "fieldtype": "Select",
- "hidden": 0,
- "in_filter": 1,
- "in_list_view": 1,
- "label": "Standard",
- "no_copy": 1,
- "oldfieldname": "standard",
- "oldfieldtype": "Select",
- "options": "No\nYes",
- "permlevel": 1,
- "print_hide": 0,
- "read_only": 0,
- "report_hide": 0,
- "reqd": 1,
+ "allow_on_submit": 0,
+ "default": "No",
+ "fieldname": "standard",
+ "fieldtype": "Select",
+ "hidden": 0,
+ "in_filter": 1,
+ "in_list_view": 1,
+ "label": "Standard",
+ "no_copy": 1,
+ "oldfieldname": "standard",
+ "oldfieldtype": "Select",
+ "options": "No\nYes",
+ "permlevel": 1,
+ "print_hide": 0,
+ "read_only": 0,
+ "report_hide": 0,
+ "reqd": 1,
"search_index": 1
- },
+ },
{
- "default": "Server",
- "description": "Client-side formats are now deprecated",
- "fieldname": "print_format_type",
- "fieldtype": "Select",
- "in_list_view": 1,
- "label": "Print Format Type",
- "options": "Server\nClient",
- "permlevel": 0,
+ "default": "Server",
+ "description": "Client-side formats are now deprecated",
+ "fieldname": "print_format_type",
+ "fieldtype": "Select",
+ "in_list_view": 1,
+ "label": "Print Format Type",
+ "options": "Server\nClient",
+ "permlevel": 0,
"read_only": 0
- },
+ },
{
- "fieldname": "disabled",
- "fieldtype": "Check",
- "label": "Disabled",
+ "fieldname": "disabled",
+ "fieldtype": "Check",
+ "label": "Disabled",
"permlevel": 0
- },
+ },
{
- "fieldname": "section_break_6",
- "fieldtype": "Section Break",
+ "fieldname": "section_break_6",
+ "fieldtype": "Section Break",
"permlevel": 0
- },
+ },
{
- "allow_on_submit": 0,
- "depends_on": "",
- "fieldname": "html",
- "fieldtype": "Code",
- "hidden": 0,
- "in_filter": 0,
- "label": "HTML",
- "no_copy": 0,
- "oldfieldname": "html",
- "oldfieldtype": "Text Editor",
- "options": "HTML",
- "permlevel": 0,
- "print_hide": 0,
- "report_hide": 0,
- "reqd": 0,
+ "allow_on_submit": 0,
+ "depends_on": "",
+ "fieldname": "html",
+ "fieldtype": "Code",
+ "hidden": 0,
+ "in_filter": 0,
+ "label": "HTML",
+ "no_copy": 0,
+ "oldfieldname": "html",
+ "oldfieldtype": "Text Editor",
+ "options": "HTML",
+ "permlevel": 0,
+ "print_hide": 0,
+ "report_hide": 0,
+ "reqd": 0,
"search_index": 0
- },
+ },
{
- "fieldname": "print_format_help",
- "fieldtype": "HTML",
- "label": "Print Format Help",
- "options": "
Print Format Help \n \nIntroduction \nPrint Formats are rendered on the server side using the Jinja Templating Language. All forms have access to the doc object which contains information about the document that is being formatted. You can also access common utilities via the frappe module.
\nFor styling, the Boostrap CSS framework is provided and you can enjoy the full range of classes.
\n \nReferences \n\n\tJinja Tempalting Language: Reference \n\tBootstrap CSS Framework \n \n \nExample \n<h3>{{ doc.select_print_heading or \"Invoice\" }}</h3>\n<div class=\"row\">\n\t<div class=\"col-md-3 text-right\">Customer Name</div>\n\t<div class=\"col-md-9\">{{ doc.customer_name }}</div>\n</div>\n<div class=\"row\">\n\t<div class=\"col-md-3 text-right\">Date</div>\n\t<div class=\"col-md-9\">{{ doc.get_formatted(\"invoice_date\") }}</div>\n</div>\n<table class=\"table table-bordered\">\n\t<tbody>\n\t\t<tr>\n\t\t\t<th>Sr</th>\n\t\t\t<th>Item Name</th>\n\t\t\t<th>Description</th>\n\t\t\t<th class=\"text-right\">Qty</th>\n\t\t\t<th class=\"text-right\">Rate</th>\n\t\t\t<th class=\"text-right\">Amount</th>\n\t\t</tr>\n\t\t{%- for row in doc.entries -%}\n\t\t<tr>\n\t\t\t<td style=\"width: 3%;\">{{ row.idx }}</td>\n\t\t\t<td style=\"width: 20%;\">\n\t\t\t\t{{ row.item_name }}\n\t\t\t\t{% if row.item_code != row.item_name -%}\n\t\t\t\t<br>Item Code: {{ row.item_code}}\n\t\t\t\t{%- endif %}\n\t\t\t</td>\n\t\t\t<td style=\"width: 37%;\">\n\t\t\t\t<div style=\"border: 0px;\">{{ row.description }}</div></td>\n\t\t\t<td style=\"width: 10%; text-align: right;\">{{ row.qty }} {{ row.uom or row.stock_uom }}</td>\n\t\t\t<td style=\"width: 15%; text-align: right;\">{{\n\t\t\t\trow.get_formatted(\"rate\", doc) }}</td>\n\t\t\t<td style=\"width: 15%; text-align: right;\">{{\n\t\t\t\trow.get_formatted(\"amount\", doc) }}</td>\n\t\t</tr>\n\t\t{%- endfor -%}\n\t</tbody>\n</table> \n \nCommon Functions \n\n\t\n\t\t\n\t\t\tdoc.get_formatted(\"[fieldname]\", [parent_doc]) \n\t\t\tGet document value formatted as Date, Currency etc. Pass parent doc for curreny type fields. \n\t\t \n\t\t\n\t\t\tfrappe.db.get_value(\"[doctype]\", \"[name]\", \"fieldname\") \n\t\t\tGet value from another document. \n\t\t \n\t \n
\n",
+ "fieldname": "print_format_help",
+ "fieldtype": "HTML",
+ "label": "Print Format Help",
+ "options": "Print Format Help \n \nIntroduction \nPrint Formats are rendered on the server side using the Jinja Templating Language. All forms have access to the doc object which contains information about the document that is being formatted. You can also access common utilities via the frappe module.
\nFor styling, the Boostrap CSS framework is provided and you can enjoy the full range of classes.
\n \nReferences \n\n\tJinja Tempalting Language: Reference \n\tBootstrap CSS Framework \n \n \nExample \n<h3>{{ doc.select_print_heading or \"Invoice\" }}</h3>\n<div class=\"row\">\n\t<div class=\"col-xs-3 text-right\">Customer Name</div>\n\t<div class=\"col-xs-9\">{{ doc.customer_name }}</div>\n</div>\n<div class=\"row\">\n\t<div class=\"col-xs-3 text-right\">Date</div>\n\t<div class=\"col-xs-9\">{{ doc.get_formatted(\"invoice_date\") }}</div>\n</div>\n<table class=\"table table-bordered\">\n\t<tbody>\n\t\t<tr>\n\t\t\t<th>Sr</th>\n\t\t\t<th>Item Name</th>\n\t\t\t<th>Description</th>\n\t\t\t<th class=\"text-right\">Qty</th>\n\t\t\t<th class=\"text-right\">Rate</th>\n\t\t\t<th class=\"text-right\">Amount</th>\n\t\t</tr>\n\t\t{%- for row in doc.entries -%}\n\t\t<tr>\n\t\t\t<td style=\"width: 3%;\">{{ row.idx }}</td>\n\t\t\t<td style=\"width: 20%;\">\n\t\t\t\t{{ row.item_name }}\n\t\t\t\t{% if row.item_code != row.item_name -%}\n\t\t\t\t<br>Item Code: {{ row.item_code}}\n\t\t\t\t{%- endif %}\n\t\t\t</td>\n\t\t\t<td style=\"width: 37%;\">\n\t\t\t\t<div style=\"border: 0px;\">{{ row.description }}</div></td>\n\t\t\t<td style=\"width: 10%; text-align: right;\">{{ row.qty }} {{ row.uom or row.stock_uom }}</td>\n\t\t\t<td style=\"width: 15%; text-align: right;\">{{\n\t\t\t\trow.get_formatted(\"rate\", doc) }}</td>\n\t\t\t<td style=\"width: 15%; text-align: right;\">{{\n\t\t\t\trow.get_formatted(\"amount\", doc) }}</td>\n\t\t</tr>\n\t\t{%- endfor -%}\n\t</tbody>\n</table> \n \nCommon Functions \n\n\t\n\t\t\n\t\t\tdoc.get_formatted(\"[fieldname]\", [parent_doc]) \n\t\t\tGet document value formatted as Date, Currency etc. Pass parent doc for curreny type fields. \n\t\t \n\t\t\n\t\t\tfrappe.db.get_value(\"[doctype]\", \"[name]\", \"fieldname\") \n\t\t\tGet value from another document. \n\t\t \n\t \n
\n",
"permlevel": 0
}
- ],
- "hide_heading": 0,
- "hide_toolbar": 0,
- "icon": "icon-print",
- "idx": 1,
- "in_create": 0,
- "in_dialog": 0,
- "issingle": 0,
- "istable": 0,
- "max_attachments": 0,
- "modified": "2014-07-31 03:39:35.898711",
- "modified_by": "Administrator",
- "module": "Core",
- "name": "Print Format",
- "owner": "Administrator",
+ ],
+ "hide_heading": 0,
+ "hide_toolbar": 0,
+ "icon": "icon-print",
+ "idx": 1,
+ "in_create": 0,
+ "in_dialog": 0,
+ "issingle": 0,
+ "istable": 0,
+ "max_attachments": 0,
+ "modified": "2015-01-23 03:39:35.898711",
+ "modified_by": "Administrator",
+ "module": "Core",
+ "name": "Print Format",
+ "owner": "Administrator",
"permissions": [
{
- "amend": 0,
- "cancel": 0,
- "create": 1,
- "delete": 1,
- "email": 1,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Administrator",
- "submit": 0,
+ "amend": 0,
+ "cancel": 0,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Administrator",
+ "submit": 0,
"write": 1
- },
+ },
{
- "amend": 0,
- "cancel": 0,
- "create": 1,
- "delete": 1,
- "email": 1,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "System Manager",
- "submit": 0,
+ "amend": 0,
+ "cancel": 0,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "System Manager",
+ "submit": 0,
"write": 1
- },
+ },
{
- "amend": 0,
- "cancel": 0,
- "create": 0,
- "delete": 0,
- "permlevel": 1,
- "read": 1,
- "report": 1,
- "role": "System Manager",
+ "amend": 0,
+ "cancel": 0,
+ "create": 0,
+ "delete": 0,
+ "permlevel": 1,
+ "read": 1,
+ "report": 1,
+ "role": "System Manager",
"submit": 0
- },
+ },
{
- "amend": 0,
- "cancel": 0,
- "create": 0,
- "delete": 0,
- "permlevel": 1,
- "read": 1,
- "report": 1,
- "role": "Administrator",
- "submit": 0,
+ "amend": 0,
+ "cancel": 0,
+ "create": 0,
+ "delete": 0,
+ "permlevel": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Administrator",
+ "submit": 0,
"write": 1
}
- ],
- "read_only": 0,
- "read_only_onload": 0,
- "sort_field": "modified",
+ ],
+ "read_only": 0,
+ "read_only_onload": 0,
+ "sort_field": "modified",
"sort_order": "DESC"
-}
\ No newline at end of file
+}
diff --git a/frappe/public/css/font/noto_sans/NotoSans-Bold-webfont.eot b/frappe/public/css/font/noto_sans/NotoSans-Bold-webfont.eot
new file mode 100755
index 0000000000..b6c34300c7
Binary files /dev/null and b/frappe/public/css/font/noto_sans/NotoSans-Bold-webfont.eot differ
diff --git a/frappe/public/css/font/noto_sans/NotoSans-Bold-webfont.svg b/frappe/public/css/font/noto_sans/NotoSans-Bold-webfont.svg
new file mode 100755
index 0000000000..32c319fdfe
--- /dev/null
+++ b/frappe/public/css/font/noto_sans/NotoSans-Bold-webfont.svg
@@ -0,0 +1,1825 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frappe/public/css/font/noto_sans/NotoSans-Bold-webfont.ttf b/frappe/public/css/font/noto_sans/NotoSans-Bold-webfont.ttf
new file mode 100755
index 0000000000..7c51ede6b3
Binary files /dev/null and b/frappe/public/css/font/noto_sans/NotoSans-Bold-webfont.ttf differ
diff --git a/frappe/public/css/font/noto_sans/NotoSans-Bold-webfont.woff b/frappe/public/css/font/noto_sans/NotoSans-Bold-webfont.woff
new file mode 100755
index 0000000000..d24fa4023d
Binary files /dev/null and b/frappe/public/css/font/noto_sans/NotoSans-Bold-webfont.woff differ
diff --git a/frappe/public/css/font/noto_sans/NotoSans-BoldItalic-webfont.eot b/frappe/public/css/font/noto_sans/NotoSans-BoldItalic-webfont.eot
new file mode 100755
index 0000000000..5772df5067
Binary files /dev/null and b/frappe/public/css/font/noto_sans/NotoSans-BoldItalic-webfont.eot differ
diff --git a/frappe/public/css/font/noto_sans/NotoSans-BoldItalic-webfont.svg b/frappe/public/css/font/noto_sans/NotoSans-BoldItalic-webfont.svg
new file mode 100755
index 0000000000..5fb48940d7
--- /dev/null
+++ b/frappe/public/css/font/noto_sans/NotoSans-BoldItalic-webfont.svg
@@ -0,0 +1,1810 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frappe/public/css/font/noto_sans/NotoSans-BoldItalic-webfont.ttf b/frappe/public/css/font/noto_sans/NotoSans-BoldItalic-webfont.ttf
new file mode 100755
index 0000000000..8d7de909f0
Binary files /dev/null and b/frappe/public/css/font/noto_sans/NotoSans-BoldItalic-webfont.ttf differ
diff --git a/frappe/public/css/font/noto_sans/NotoSans-BoldItalic-webfont.woff b/frappe/public/css/font/noto_sans/NotoSans-BoldItalic-webfont.woff
new file mode 100755
index 0000000000..e845119faf
Binary files /dev/null and b/frappe/public/css/font/noto_sans/NotoSans-BoldItalic-webfont.woff differ
diff --git a/frappe/public/css/font/noto_sans/NotoSans-Italic-webfont.eot b/frappe/public/css/font/noto_sans/NotoSans-Italic-webfont.eot
new file mode 100755
index 0000000000..7bc2fc80d7
Binary files /dev/null and b/frappe/public/css/font/noto_sans/NotoSans-Italic-webfont.eot differ
diff --git a/frappe/public/css/font/noto_sans/NotoSans-Italic-webfont.svg b/frappe/public/css/font/noto_sans/NotoSans-Italic-webfont.svg
new file mode 100755
index 0000000000..b2656b64fe
--- /dev/null
+++ b/frappe/public/css/font/noto_sans/NotoSans-Italic-webfont.svg
@@ -0,0 +1,914 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frappe/public/css/font/noto_sans/NotoSans-Italic-webfont.ttf b/frappe/public/css/font/noto_sans/NotoSans-Italic-webfont.ttf
new file mode 100755
index 0000000000..606e808148
Binary files /dev/null and b/frappe/public/css/font/noto_sans/NotoSans-Italic-webfont.ttf differ
diff --git a/frappe/public/css/font/noto_sans/NotoSans-Italic-webfont.woff b/frappe/public/css/font/noto_sans/NotoSans-Italic-webfont.woff
new file mode 100755
index 0000000000..827c9a4d77
Binary files /dev/null and b/frappe/public/css/font/noto_sans/NotoSans-Italic-webfont.woff differ
diff --git a/frappe/public/css/font/noto_sans/NotoSans-Regular-webfont.eot b/frappe/public/css/font/noto_sans/NotoSans-Regular-webfont.eot
new file mode 100755
index 0000000000..1749bb7297
Binary files /dev/null and b/frappe/public/css/font/noto_sans/NotoSans-Regular-webfont.eot differ
diff --git a/frappe/public/css/font/noto_sans/NotoSans-Regular-webfont.svg b/frappe/public/css/font/noto_sans/NotoSans-Regular-webfont.svg
new file mode 100755
index 0000000000..bd7beb4361
--- /dev/null
+++ b/frappe/public/css/font/noto_sans/NotoSans-Regular-webfont.svg
@@ -0,0 +1,1825 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frappe/public/css/font/noto_sans/NotoSans-Regular-webfont.ttf b/frappe/public/css/font/noto_sans/NotoSans-Regular-webfont.ttf
new file mode 100755
index 0000000000..b4d32efcfa
Binary files /dev/null and b/frappe/public/css/font/noto_sans/NotoSans-Regular-webfont.ttf differ
diff --git a/frappe/public/css/font/noto_sans/NotoSans-Regular-webfont.woff b/frappe/public/css/font/noto_sans/NotoSans-Regular-webfont.woff
new file mode 100755
index 0000000000..ec94d082a0
Binary files /dev/null and b/frappe/public/css/font/noto_sans/NotoSans-Regular-webfont.woff differ
diff --git a/frappe/public/css/font/noto_sans/noto_sans.css b/frappe/public/css/font/noto_sans/noto_sans.css
new file mode 100644
index 0000000000..6f9cd09376
--- /dev/null
+++ b/frappe/public/css/font/noto_sans/noto_sans.css
@@ -0,0 +1,51 @@
+@font-face {
+ font-family: 'Noto Sans';
+ src: url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Regular-webfont.eot") }}');
+ src: local('Noto Sans'),
+ local('NotoSans'),
+ url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Regular-webfont.eot?#iefix") }}') format('embedded-opentype'),
+ url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Regular-webfont.woff") }}') format('woff'),
+ url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Regular-webfont.ttf") }}') format('truetype'),
+ url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Regular-webfont.svg#noto_sansregular") }}') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'Noto Sans';
+ src: url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Bold-webfont.eot") }}');
+ src: local('Noto Sans Bold'),
+ local('NotoSans-Bold'),
+ url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Bold-webfont.eot?#iefix") }}') format('embedded-opentype'),
+ url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Bold-webfont.woff") }}') format('woff'),
+ url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Bold-webfont.ttf") }}') format('truetype'),
+ url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Bold-webfont.svg#noto_sansbold") }}') format('svg');
+ font-weight: bold;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'Noto Sans';
+ src: url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Italic-webfont.eot") }}');
+ src: local('Noto Sans Bold'),
+ local('NotoSans-Bold'),
+ url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Italic-webfont.eot?#iefix") }}') format('embedded-opentype'),
+ url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Italic-webfont.woff") }}') format('woff'),
+ url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Italic-webfont.ttf") }}') format('truetype'),
+ url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-Italic-webfont.svg#noto_sansitalic") }}') format('svg');
+ font-weight: normal;
+ font-style: italic;
+}
+
+@font-face {
+ font-family: 'Noto Sans';
+ src: url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-BoldItalic-webfont.eot") }}');
+ src: local('Noto Sans Bold'),
+ local('NotoSans-Bold'),
+ url('{{ frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-BoldItalic-webfont.eot?#iefix") }}') format('embedded-opentype'),
+ url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-BoldItalic-webfont.woff") }}') format('woff'),
+ url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-BoldItalic-webfont.ttf") }}') format('truetype'),
+ url('frappe.get_url("/assets/frappe/css/font/noto_sans/NotoSans-BoldItalic-webfont.svg#noto_sansbold_italic") }}') format('svg');
+ font-weight: bold;
+ font-style: italic;
+}
diff --git a/frappe/public/js/frappe/views/calendar.js b/frappe/public/js/frappe/views/calendar.js
index 97b7b8007a..29f8c9d0e1 100644
--- a/frappe/public/js/frappe/views/calendar.js
+++ b/frappe/public/js/frappe/views/calendar.js
@@ -207,7 +207,7 @@ frappe.views.Calendar = Class.extend({
if(this.field_map.end) {
if (args[this.field_map.allDay]) {
args[this.field_map.end] = frappe.datetime.get_datetime_as_string(event.start);
- } else {
+ } else if (event.end) {
args[this.field_map.end] = frappe.datetime.get_datetime_as_string(event.end);
}
}
diff --git a/frappe/templates/styles/standard.css b/frappe/templates/styles/standard.css
index 73edf744db..adbb631d27 100644
--- a/frappe/templates/styles/standard.css
+++ b/frappe/templates/styles/standard.css
@@ -1,15 +1,4 @@
-@font-face {
- font-family: 'Noto Sans';
- font-style: normal;
- font-weight: 400;
- src: local('Noto Sans'), local('NotoSans'), url({{ frappe.get_url("/assets/frappe/css/font/notosans-400.ttf") }}) format('truetype');
-}
-@font-face {
- font-family: 'Noto Sans';
- font-style: normal;
- font-weight: 700;
- src: local('Noto Sans Bold'), local('NotoSans-Bold'), url({{ frappe.get_url("/assets/frappe/css/font/notosans-700.ttf")}}) format('truetype');
-}
+{% include "public/css/font/noto_sans/noto_sans.css" %}
@media screen {
.print-format-gutter {
diff --git a/frappe/widgets/calendar.py b/frappe/widgets/calendar.py
index 8cc8c27a3c..17ce524217 100644
--- a/frappe/widgets/calendar.py
+++ b/frappe/widgets/calendar.py
@@ -13,6 +13,6 @@ def update_event(args, field_map):
field_map = frappe._dict(json.loads(field_map))
w = frappe.get_doc(args.doctype, args.name)
w.set(field_map.start, args[field_map.start])
- w.set(field_map.end, args[field_map.end])
+ w.set(field_map.end, args.get(field_map.end))
w.save()