From c0653c31fcb4343f9ca3b3a8450f5da6b86ace98 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 8 Apr 2015 21:20:13 +0530 Subject: [PATCH] [fix] timedelta to mysql time converter --- frappe/database.py | 5 ++++- frappe/model/create_new.py | 16 ++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/frappe/database.py b/frappe/database.py index b6994297e0..ba00d0f24e 100644 --- a/frappe/database.py +++ b/frappe/database.py @@ -6,6 +6,7 @@ from __future__ import unicode_literals import MySQLdb +from MySQLdb.times import DateTimeDeltaType from markdown2 import UnicodeWithAttrs import warnings import datetime @@ -15,6 +16,7 @@ import re import frappe.model.meta from frappe.utils import now, get_datetime, cstr from frappe import _ +from types import StringType, UnicodeType class Database: """ @@ -48,7 +50,8 @@ class Database: use_unicode=True, charset='utf8') self._conn.converter[246]=float self._conn.converter[12]=get_datetime - self._conn.encoders[UnicodeWithAttrs] = self._conn.encoders[unicode] + self._conn.encoders[UnicodeWithAttrs] = self._conn.encoders[UnicodeType] + self._conn.encoders[DateTimeDeltaType] = self._conn.encoders[StringType] self._cursor = self._conn.cursor() if self.user != 'root': diff --git a/frappe/model/create_new.py b/frappe/model/create_new.py index 3d1894a432..a57b480288 100644 --- a/frappe/model/create_new.py +++ b/frappe/model/create_new.py @@ -13,14 +13,14 @@ from frappe.model.db_schema import type_map import copy def get_new_doc(doctype, parent_doc = None, parentfield = None, as_dict=False): - # if doctype not in frappe.local.new_doc_templates: - # # cache a copy of new doc as it is called - # # frequently for inserts - # frappe.local.new_doc_templates[doctype] = make_new_doc(doctype) - # - # doc = copy.deepcopy(frappe.local.new_doc_templates[doctype]) - - doc = make_new_doc(doctype) + if doctype not in frappe.local.new_doc_templates: + # cache a copy of new doc as it is called + # frequently for inserts + frappe.local.new_doc_templates[doctype] = make_new_doc(doctype) + + doc = copy.deepcopy(frappe.local.new_doc_templates[doctype]) + + # doc = make_new_doc(doctype) set_dynamic_default_values(doc, parent_doc, parentfield)