From c70d2d23a8d11c93455e7751cef30fc7f1fbda15 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 16 Jul 2014 11:27:25 +0530 Subject: [PATCH 1/2] Support Ticket: set resolution_date as None if missing --- .../doctype/support_ticket/support_ticket.py | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/erpnext/support/doctype/support_ticket/support_ticket.py b/erpnext/support/doctype/support_ticket/support_ticket.py index 9517ea48de..4cdc20ac0f 100644 --- a/erpnext/support/doctype/support_ticket/support_ticket.py +++ b/erpnext/support/doctype/support_ticket/support_ticket.py @@ -8,31 +8,31 @@ from erpnext.utilities.transaction_base import TransactionBase from frappe.utils import now, extract_email_id class SupportTicket(TransactionBase): - + def get_sender(self, comm): return frappe.db.get_value('Support Email Settings',None,'support_email') def get_subject(self, comm): return '[' + self.name + '] ' + (comm.subject or 'No Subject Specified') - + def get_content(self, comm): signature = frappe.db.get_value('Support Email Settings',None,'support_signature') content = comm.content if signature: content += '

' + signature + '

' return content - + def get_portal_page(self): return "ticket" - + def validate(self): self.update_status() self.set_lead_contact(self.raised_by) - + if self.status == "Closed": from frappe.widgets.form.assign_to import clear clear(self.doctype, self.name) - + def set_lead_contact(self, email_id): import email.utils email_id = email.utils.parseaddr(email_id) @@ -41,8 +41,8 @@ class SupportTicket(TransactionBase): self.lead = frappe.db.get_value("Lead", {"email_id": email_id}) if not self.contact: self.contact = frappe.db.get_value("Contact", {"email_id": email_id}) - - if not self.company: + + if not self.company: self.company = frappe.db.get_value("Lead", self.lead, "company") or \ frappe.db.get_default("company") @@ -53,15 +53,16 @@ class SupportTicket(TransactionBase): if self.status=="Closed" and status !="Closed": self.resolution_date = now() if self.status=="Open" and status !="Open": - self.resolution_date = "" + # if no date, it should be set as None and not a blank string "", as per mysql strict config + self.resolution_date = None @frappe.whitelist() def set_status(name, status): st = frappe.get_doc("Support Ticket", name) st.status = status st.save() - + def auto_close_tickets(): - frappe.db.sql("""update `tabSupport Ticket` set status = 'Closed' - where status = 'Replied' + frappe.db.sql("""update `tabSupport Ticket` set status = 'Closed' + where status = 'Replied' and date_sub(curdate(),interval 15 Day) > modified""") From e73ed2afaed1279c8ca87ba77c1e7aaf2ea56fc5 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 16 Jul 2014 11:48:34 +0530 Subject: [PATCH 2/2] Setup Wizard: fixed attachment issue #1940 --- .../setup/page/setup_wizard/setup_wizard.py | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.py b/erpnext/setup/page/setup_wizard/setup_wizard.py index ca52efb119..343cba56c4 100644 --- a/erpnext/setup/page/setup_wizard/setup_wizard.py +++ b/erpnext/setup/page/setup_wizard/setup_wizard.py @@ -113,9 +113,11 @@ def update_user_name(args): last_name=%(last_name)s WHERE name=%(name)s""", args) if args.get("attach_user"): - filename, filetype, content = args.get("attach_user").split(",") - fileurl = save_file(filename, content, "User", args.get("name"), decode=True).file_url - frappe.db.set_value("User", args.get("name"), "user_image", fileurl) + attach_user = args.get("attach_user").split(",") + if len(attach_user)==3: + filename, filetype, content = attach_user + fileurl = save_file(filename, content, "User", args.get("name"), decode=True).file_url + frappe.db.set_value("User", args.get("name"), "user_image", fileurl) add_all_roles_to(args.get("name")) @@ -319,9 +321,11 @@ def create_items(args): }).insert() if args.get("item_img_" + str(i)): - filename, filetype, content = args.get("item_img_" + str(i)).split(",") - fileurl = save_file(filename, content, "Item", item, decode=True).file_url - frappe.db.set_value("Item", item, "image", fileurl) + item_image = args.get("item_img_" + str(i)).split(",") + if len(item_image)==3: + filename, filetype, content = item_image + fileurl = save_file(filename, content, "Item", item, decode=True).file_url + frappe.db.set_value("Item", item, "image", fileurl) def create_customers(args): for i in xrange(1,6): @@ -374,17 +378,21 @@ def create_letter_head(args): "is_default": 1 }).insert() - filename, filetype, content = args.get("attach_letterhead").split(",") - fileurl = save_file(filename, content, "Letter Head", _("Standard"), decode=True).file_url - frappe.db.set_value("Letter Head", _("Standard"), "content", "" % fileurl) + attach_letterhead = args.get("attach_letterhead").split(",") + if len(attach_letterhead)==3: + filename, filetype, content = attach_letterhead + fileurl = save_file(filename, content, "Letter Head", _("Standard"), decode=True).file_url + frappe.db.set_value("Letter Head", _("Standard"), "content", "" % fileurl) def create_logo(args): if args.get("attach_logo"): - filename, filetype, content = args.get("attach_logo").split(",") - fileurl = save_file(filename, content, "Website Settings", "Website Settings", - decode=True).file_url - frappe.db.set_value("Website Settings", "Website Settings", "banner_html", - "" % fileurl) + attach_logo = args.get("attach_logo").split(",") + if len(attach_logo)==3: + filename, filetype, content = attach_logo + fileurl = save_file(filename, content, "Website Settings", "Website Settings", + decode=True).file_url + frappe.db.set_value("Website Settings", "Website Settings", "banner_html", + "" % fileurl) def add_all_roles_to(name): user = frappe.get_doc("User", name)