webnotes.model.doctype (new version)
diff --git a/accounts/page/voucher_import_tool/voucher_import_tool.py b/accounts/page/voucher_import_tool/voucher_import_tool.py
index 41d0a9f..3a50f9d 100644
--- a/accounts/page/voucher_import_tool/voucher_import_tool.py
+++ b/accounts/page/voucher_import_tool/voucher_import_tool.py
@@ -6,9 +6,9 @@
def get_template():
"""download template"""
template_type = webnotes.form_dict.get('type')
- from webnotes.model.doctype import get_field_property
- naming_options = get_field_property("Journal Voucher", "naming_series", "options")
- voucher_type = get_field_property("Journal Voucher", "voucher_type", "options")
+ from webnotes.model.doctype import get_property
+ naming_options = get_property("Journal Voucher", "naming_series", "options")
+ voucher_type = get_property("Journal Voucher", "voucher_type", "options")
if template_type=="Two Accounts":
extra_note = ""
columns = '''"Naming Series","Voucher Type","Posting Date","Amount","Debit Account","Credit Account","Cost Center","Against Sales Invoice","Against Purchase Invoice","Against Journal Voucher","Remarks","Due Date","Ref Number","Ref Date"'''
diff --git a/patches/april_2012/change_cacheitem_schema.py b/patches/april_2012/change_cacheitem_schema.py
deleted file mode 100644
index 4d46f2c..0000000
--- a/patches/april_2012/change_cacheitem_schema.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from __future__ import unicode_literals
-def execute():
- import webnotes
- webnotes.conn.commit()
- webnotes.conn.sql("alter table __CacheItem modify `value` longtext")
- webnotes.conn.begin()
diff --git a/patches/june_2012/cache_item_table.py b/patches/june_2012/cache_item_table.py
deleted file mode 100644
index 771b409..0000000
--- a/patches/june_2012/cache_item_table.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from __future__ import unicode_literals
-def execute():
- """drop and create __CacheItem table again"""
- import webnotes
- webnotes.conn.commit()
- webnotes.conn.sql("drop table __CacheItem")
- webnotes.conn.sql("""create table __CacheItem(
- `key` VARCHAR(180) NOT NULL PRIMARY KEY,
- `value` LONGTEXT,
- `expires_on` DATETIME
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8""")
- webnotes.conn.begin()
\ No newline at end of file
diff --git a/patches/mar_2012/doctype_get_refactor.py b/patches/mar_2012/doctype_get_refactor.py
index 26cee77..66339db 100644
--- a/patches/mar_2012/doctype_get_refactor.py
+++ b/patches/mar_2012/doctype_get_refactor.py
@@ -116,8 +116,8 @@
obj.make_file_list()
from webnotes.model.db_schema import updatedb
updatedb(obj.doc.name)
- from webnotes.utils.cache import CacheItem
- CacheItem(obj.doc.name).clear()
+
+ webnotes.clear_cache(doctype=obj.doc.name)
def change_to_decimal():
print "in change to decimal"
diff --git a/patches/may_2012/remove_communication_log.py b/patches/may_2012/remove_communication_log.py
index 28bfca1..e44e673 100644
--- a/patches/may_2012/remove_communication_log.py
+++ b/patches/may_2012/remove_communication_log.py
@@ -50,9 +50,8 @@
webnotes.conn.sql("""\
delete from `tabProperty Setter`
where doc_type='Communication Log'""")
-
- from webnotes.utils.cache import CacheItem
- CacheItem('Communication').clear()
+
+ webnotes.clear_cache(doctype="Communication")
def remove_communication_log():
import webnotes
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 0bf4d3c..3128948 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -280,11 +280,6 @@
},
{
'patch_module': 'patches.april_2012',
- 'patch_file': 'change_cacheitem_schema',
- 'description': 'Modified datatype of `value` column from text to longtext'
- },
- {
- 'patch_module': 'patches.april_2012',
'patch_file': 'remove_default_from_rv_detail',
'description': ''
},
@@ -459,11 +454,6 @@
'description': "delete depracated doctypes of website module"
},
{
- 'patch_module': 'patches.june_2012',
- 'patch_file': 'cache_item_table',
- 'description': "create cache item table again"
- },
- {
'patch_module': 'patches.july_2012',
'patch_file': 'reload_pr_po_mapper',
'description': "order date should be greater than equal to request date"
diff --git a/public/js/communication.js b/public/js/communication.js
deleted file mode 100644
index 70a08af..0000000
--- a/public/js/communication.js
+++ /dev/null
@@ -1,144 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-// opts - parent, list, doc, email
-erpnext.CommunicationView = Class.extend({
- init: function(opts) {
- this.comm_list = [];
- $.extend(this, opts);
-
- if(this.doc.__islocal) {
- return;
- }
-
- this.list.sort(function(a, b) { return
- (new Date(a.modified) > new Date(b.modified))
- ? -1 : 1; })
-
- this.make();
- },
- make: function() {
- var me = this;
- this.make_body();
-
- if(this.list && this.list.length) {
- $.each(this.list, function(i, d) {
- me.prepare(d);
- me.make_line(d);
- });
- // show first
- this.comm_list[0].find('.comm-content').toggle(true);
- } else {
- this.body.remove()
- $("<div class='alert'>No Communication with this "
- + this.doc.doctype +" yet.</div>").appendTo(this.wrapper);
- }
-
- },
- make_body: function() {
- $(this.parent)
- .html("")
- .css({"margin":"10px 0px"});
-
- this.wrapper = $("<div><h4>Communication History</h4>\
- <div style='margin-bottom: 8px;'>\
- <button class='btn btn-small' \
- onclick='cur_frm.communication_view.add_reply()'>\
- <i class='icon-plus'></i> Add Reply</button></div>\
- </div>")
- .appendTo(this.parent);
-
- this.body = $("<table class='table table-bordered table-hover table-striped'>")
- .appendTo(this.wrapper);
- },
- add_reply: function() {
- var me = this;
- var d = new wn.ui.Dialog({
- width: 640,
- title: "Add Reply: " + (this.doc.subject || ""),
- fields: [
- {label:"Subject", fieldtype:"Data", reqd: 1},
- {label:"Message", fieldtype:"Text Editor", reqd: 1, fieldname:"content"},
- {label:"Send Email", fieldtype:"Check"},
- {label:"Add Reply", fieldtype:"Button"},
- ]
- });
-
- $(d.fields_dict.send_email.input).attr("checked", "checked")
- $(d.fields_dict.add_reply.input).click(function() {
- var args = d.get_values();
- if(!args) return;
- $(this).set_working();
- wn.call({
- method:"support.doctype.communication.communication.make",
- args: $.extend(args, {
- doctype: me.doc.doctype,
- name: me.doc.name,
- lead: me.doc.lead,
- contact: me.doc.contact,
- recipients: me.email
- }),
- callback: function(r) {
- d.hide();
- cur_frm.reload_doc();
- }
- });
- });
-
- if(me.list.length > 0) {
- d.fields_dict.content.input.set_input("<p></p>"
- + (wn.boot.profile.email_signature || "")
- +"<p></p>"
- +"-----In response to-----<p></p>"
- + me.list[0].content)
- } else {
-
- }
- $(d.fields_dict.subject.input).val(this.doc.subject || "").change();
-
- d.show();
- },
-
- prepare: function(doc) {
- //doc.when = comment_when(this.doc.modified);
- doc.when = doc.modified;
- if(doc.content.indexOf("<br>")== -1 && doc.content.indexOf("<p>")== -1) {
- doc.content = doc.content.replace(/\n/g, "<br>");
- }
- if(!doc.sender) doc.sender = "[unknown sender]";
- doc.sender = doc.sender.replace(/</, "<").replace(/>/, ">");
- doc.content = doc.content.split("-----In response to-----")[0];
- doc.content = doc.content.split("-----Original Message-----")[0];
- },
- make_line: function(doc) {
- var me = this;
- var comm = $(repl('<tr><td title="Click to Expand / Collapse">\
- <p><b>%(sender)s on %(when)s</b> \
- <a href="#Form/Communication/%(name)s" style="font-size: 90%">\
- Show Details</a></p>\
- <div class="comm-content" style="border-top: 1px solid #ddd; \
- padding: 10px; overflow-x: auto; display: none;"></div>\
- </td></tr>', doc))
- .appendTo(this.body)
- .css({"cursor":"pointer"})
- .click(function() {
- $(this).find(".comm-content").toggle();
- });
-
- this.comm_list.push(comm);
- comm.find(".comm-content").html(doc.content);
- }
-})
diff --git a/selling/doctype/lead/lead.js b/selling/doctype/lead/lead.js
index 39522f8..081a57a 100644
--- a/selling/doctype/lead/lead.js
+++ b/selling/doctype/lead/lead.js
@@ -16,7 +16,6 @@
// Module CRM
-wn.require("public/app/js/communication.js");
wn.require('app/utilities/doctype/sms_control/sms_control.js');
cur_frm.cscript.onload = function(doc, cdt, cdn) {
@@ -68,7 +67,7 @@
cur_frm.cscript.refresh_custom_buttons(doc);
erpnext.hide_naming_series();
- cur_frm.communication_view = new erpnext.CommunicationView({
+ cur_frm.communication_view = new wn.views.CommunicationList({
list: wn.model.get("Communication", {"lead": doc.name}),
parent: cur_frm.fields_dict.communication_html.wrapper,
doc: doc,
diff --git a/setup/doctype/naming_series/naming_series.py b/setup/doctype/naming_series/naming_series.py
index 689b409..c40e932 100644
--- a/setup/doctype/naming_series/naming_series.py
+++ b/setup/doctype/naming_series/naming_series.py
@@ -90,8 +90,7 @@
self.doc.set_options = "\n".join(options)
- from webnotes.utils.cache import CacheItem
- CacheItem(doctype).clear()
+ webnotes.clear_cache(doctype=doctype)
def check_duplicate(self):
from core.doctype.doctype.doctype import DocType
diff --git a/setup/doctype/permission_control/permission_control.py b/setup/doctype/permission_control/permission_control.py
index 32efe03..d7a80a8 100644
--- a/setup/doctype/permission_control/permission_control.py
+++ b/setup/doctype/permission_control/permission_control.py
@@ -20,7 +20,7 @@
from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, getchildren, make_autoname
+from webnotes.model.doc import Document, addchild, getchildren
from webnotes.model.wrapper import getlist, copy_doclist
from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
from webnotes import session, form, msgprint, errprint
@@ -30,9 +30,6 @@
get_value = webnotes.conn.get_value
in_transaction = webnotes.conn.in_transaction
convert_to_lists = webnotes.conn.convert_to_lists
-
-# -----------------------------------------------------------------------------------------
-
class DocType:
def __init__(self, doc, doclist):
@@ -60,7 +57,7 @@
# -------------------------------------------------------------------
def get_permissions(self,doctype):
import webnotes.model.doctype
- doclist = webnotes.model.doctype.get(doctype, form=0)
+ doclist = webnotes.model.doctype.get(doctype)
ptype = [{
'role': perm.role,
@@ -195,8 +192,7 @@
sql("update tabDocType set modified = %s where name = %s",(now(), parent))
- from webnotes.utils.cache import CacheItem
- CacheItem(parent).clear()
+ webnotes.clear_cache(doctype=parent)
msgprint("Permissions Updated")
diff --git a/support/doctype/communication/__init__.py b/support/doctype/communication/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/support/doctype/communication/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/support/doctype/communication/communication.js b/support/doctype/communication/communication.js
deleted file mode 100644
index 04e6c80..0000000
--- a/support/doctype/communication/communication.js
+++ /dev/null
@@ -1,142 +0,0 @@
-cur_frm.cscript.onload = function(doc) {
- cur_frm.fields_dict.user.get_query = function() {
- return "select name, concat_ws(' ', first_name, middle_name, last_name) \
- from `tabProfile` where ifnull(enabled, 0)=1 and docstatus < 2 and \
- (%(key)s like \"%s\" or \
- concat_ws(' ', first_name, middle_name, last_name) like \"%%%s\") \
- limit 50";
- };
-
- cur_frm.fields_dict.lead.get_query = function() {
- return "select name, lead_name from `tabLead` \
- where docstatus < 2 and \
- (%(key)s like \"%s\" or lead_name like \"%%%s\" or \
- company_name like \"%%%s\") \
- order by lead_name asc limit 50";
- };
-
- cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
- cur_frm.fields_dict.supplier.get_query = erpnext.utils.supplier_query;
-}
-
-cur_frm.cscript.refresh = function(doc, dt, dn) {
- if(!doc.__islocal) {
- var field_list = ['lead', 'customer', 'supplier', 'contact', 'opportunity',
- 'quotation', 'support_ticket'];
- var hide_list = [];
- $.each(field_list, function(i, v) {
- if(!doc[v]) hide_list.push(v);
- });
-
- if(hide_list.length < field_list.length) hide_field(hide_list);
- }
-}
-
-
-cur_frm.cscript.make_communication_body = function() {
- var communication_wrapper = cur_frm.fields_dict.communication_html.wrapper;
- communication_wrapper.innerHTML = '';
- cur_frm.communication_html = $a(communication_wrapper, 'div');
- $(cur_frm.communication_html).css({
- 'min-height': '275px',
- });
-}
-
-cur_frm.cscript.render_communication_list = function(doc, dt, dn) {
- var ListView = wn.views.ListView.extend({
- init: function(doclistview) {
- this._super(doclistview);
- this.fields = this.fields.concat([
- "`tabCommunication`.communication_date",
- "`tabCommunication`.category",
- "`tabCommunication`.subject",
- "`tabCommunication`.content"
- ]);
- this.order_by = "`tabCommunication`.communication_date desc";
- },
-
- prepare_data: function(data) {
- this._super(data);
- this.prepare_when(data, data.creation);
-
- // escape double quote
- data.content = cstr(data.subject).replace(/"/gi, '\"')
- + " | " + cstr(data.content).replace(/"/gi, '\"');
-
- if(data.content && data.content.length > 50) {
- data.content = '<span title="'+data.content+'">' +
- data.content.substr(0,50) + '...</span>';
- }
-
- },
-
- columns: [
- {width: '3%', content: 'docstatus'},
- {width: '15%', content: 'name'},
- {width: '15%', content: 'category'},
- {width: '55%', content: 'content'},
- {width: '12%', content:'when',
- css: {'text-align': 'right', 'color':'#777'}}
- ],
-
- });
-
- cur_frm.cscript.render_list(doc, 'Communication', cur_frm.communication_html,
- ListView, function(doctype) {
- var new_doc = LocalDB.create(doctype);
- new_doc = locals[doctype][new_doc];
- new_doc[doc.doctype.toLowerCase().replace(" ", "_")] = doc.name;
- loaddoc(new_doc.doctype, new_doc.name);
- });
-}
-
-
-// Render List
-cur_frm.cscript.render_list = function(doc, doctype, wrapper, ListView, make_new_doc) {
- wn.model.with_doctype(doctype, function(r) {
- if((r && r['403']) || wn.boot.profile.all_read.indexOf(doctype)===-1) {
- return;
- }
- var RecordListView = wn.views.RecordListView.extend({
- default_docstatus: ['0', '1', '2'],
- default_filters: [
- [doctype, doc.doctype.toLowerCase().replace(" ", "_"), '=', doc.name],
- ],
- });
-
- if (make_new_doc) {
- RecordListView = RecordListView.extend({
- make_new_doc: make_new_doc,
- });
- }
-
- var record_list_view = new RecordListView(doctype, wrapper, ListView);
- if (!cur_frm[doctype.toLowerCase().replace(" ", "_") + "_list"]) {
- cur_frm[doctype.toLowerCase().replace(" ", "_") + "_list"] = record_list_view;
- }
- });
-}
-
-
-cur_frm.cscript.contact = function(doc, dt, dn) {
- if (doc.contact) {
- wn.call({
- method: 'support.doctype.communication.communication.get_customer_supplier',
- args: {
- contact: doc.contact
- },
- callback: function(r, rt) {
- if (!r.exc && r.message) {
- doc = locals[doc.doctype][doc.name];
- doc[r.message['fieldname']] = r.message['value'];
- refresh_field(r.message['fieldname']);
- }
- },
- });
- }
-}
-
-cur_frm.cscript.hide_dialog = function() {
- if(cur_frm.communication_list)
- cur_frm.communication_list.run();
-}
\ No newline at end of file
diff --git a/support/doctype/communication/communication.py b/support/doctype/communication/communication.py
deleted file mode 100644
index f365fe3..0000000
--- a/support/doctype/communication/communication.py
+++ /dev/null
@@ -1,110 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-from __future__ import unicode_literals
-import webnotes
-from webnotes.model.doc import make_autoname
-
-@webnotes.whitelist()
-def get_customer_supplier(args=None):
- """
- Get Customer/Supplier, given a contact, if a unique match exists
- """
- import webnotes
- if not args: args = webnotes.form_dict
- if not args.get('contact'):
- raise Exception, "Please specify a contact to fetch Customer/Supplier"
- result = webnotes.conn.sql("""\
- select customer, supplier
- from `tabContact`
- where name = %s""", args.get('contact'), as_dict=1)
- if result and len(result)==1 and (result[0]['customer'] or result[0]['supplier']):
- return {
- 'fieldname': result[0]['customer'] and 'customer' or 'supplier',
- 'value': result[0]['customer'] or result[0]['supplier']
- }
- return {}
-
-@webnotes.whitelist()
-def make(doctype=None, name=None, content=None, subject=None,
- sender=None, recipients=None, contact=None, lead=None,
- communication_medium="Email", send_email=False):
- # add to Communication
-
- sent_via = None
-
- d = webnotes.doc('Communication')
- d.subject = subject
- d.content = content
- d.sender = sender or webnotes.conn.get_value("Profile", webnotes.session.user, "email")
- d.recipients = recipients
- d.lead = lead
- d.contact = contact
- if doctype:
- sent_via = webnotes.get_obj(doctype, name)
- d.fields[doctype.replace(" ", "_").lower()] = name
-
- set_lead_and_contact(d)
- d.communication_medium = communication_medium
- if send_email:
- send_comm_email(d, sent_via)
- d.save(1)
-
-def send_comm_email(d, sent_via=None):
- from webnotes.utils.email_lib import sendmail
-
- if sent_via:
- if hasattr(sent_via, "get_sender"):
- d.sender = sent_via.get_sender(d)
- if hasattr(sent_via, "get_subject"):
- d.subject = sent_via.get_subject(d)
- if hasattr(sent_via, "get_content"):
- d.content = sent_via.get_content(d)
-
- sendmail(\
- recipients = d.recipients.split(","), \
- sender = d.sender, \
- subject = d.subject, \
- msg= d.content)
-
- if sent_via and hasattr(sent_via, 'on_communication_sent'):
- sent_via.on_communication_sent(d)
-
-def set_lead_and_contact(d):
- import email.utils
- email_addr = email.utils.parseaddr(d.sender)
- # set contact
- if not d.contact:
- d.contact = webnotes.conn.get_value("Contact", {"email_id": email_addr[1]}, "name") or None
-
- if not d.lead:
- d.lead = webnotes.conn.get_value("Lead", {"email_id": email_addr[1]}, "name") or None
-
- if not d.lead and not d.contact:
- d.lead = make_lead(d, email_addr[0])
-
-def make_lead(d, real_name):
- lead = webnotes.doc("Lead")
- lead.lead_name = real_name or d.sender
- lead.email_id = d.sender
- lead.source = "Email"
- lead.save(1)
- return lead.name
-
-class DocType():
- def __init__(self, doc, doclist=[]):
- self.doc = doc
- self.doclist = doclist
diff --git a/support/doctype/communication/communication.txt b/support/doctype/communication/communication.txt
deleted file mode 100644
index 1f01c50..0000000
--- a/support/doctype/communication/communication.txt
+++ /dev/null
@@ -1,347 +0,0 @@
-[
- {
- "owner": "Administrator",
- "docstatus": 0,
- "creation": "2012-11-14 12:25:16",
- "modified_by": "Administrator",
- "modified": "2012-11-27 18:51:01"
- },
- {
- "autoname": "naming_series:",
- "allow_attach": 1,
- "name": "__common__",
- "doctype": "DocType",
- "module": "Support",
- "in_dialog": 0,
- "document_type": "Master",
- "description": "Keep a track of all communications"
- },
- {
- "name": "__common__",
- "parent": "Communication",
- "doctype": "DocField",
- "parenttype": "DocType",
- "parentfield": "fields"
- },
- {
- "name": "__common__",
- "parent": "Communication",
- "read": 1,
- "doctype": "DocPerm",
- "write": 1,
- "parenttype": "DocType",
- "parentfield": "permissions"
- },
- {
- "name": "Communication",
- "doctype": "DocType"
- },
- {
- "doctype": "DocField",
- "label": "Basic Info",
- "fieldname": "basic_info",
- "fieldtype": "Section Break",
- "permlevel": 0
- },
- {
- "default": "COMM-",
- "colour": "White:FFF",
- "doctype": "DocField",
- "label": "Naming Series",
- "options": "COMM-",
- "fieldname": "naming_series",
- "fieldtype": "Select",
- "hidden": 1,
- "permlevel": 0
- },
- {
- "colour": "White:FFF",
- "doctype": "DocField",
- "label": "Subject",
- "fieldname": "subject",
- "fieldtype": "Data",
- "reqd": 1,
- "permlevel": 0
- },
- {
- "colour": "White:FFF",
- "doctype": "DocField",
- "label": "Content",
- "width": "400",
- "fieldname": "content",
- "fieldtype": "Text Editor",
- "reqd": 0,
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "options": "simple",
- "fieldname": "section_break1",
- "fieldtype": "Section Break",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Category",
- "options": "\nSales\nComplaint\nHelp\nSuggestion\nMiscellaneous\nSent Mail",
- "fieldname": "category",
- "fieldtype": "Select",
- "reqd": 0,
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "fieldname": "column_break2",
- "fieldtype": "Column Break",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Next Communcation On",
- "fieldname": "next_communication_date",
- "fieldtype": "Date",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Action",
- "options": "\nCreated Opportunity\nSent Quotation\nCreated Support Ticket\nCreated Customer Issue\nNo Action\nSent Mail",
- "fieldname": "action",
- "fieldtype": "Select",
- "reqd": 0,
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Additional Info",
- "fieldname": "additional_info",
- "fieldtype": "Section Break",
- "permlevel": 0
- },
- {
- "colour": "White:FFF",
- "doctype": "DocField",
- "fieldname": "column_break3",
- "fieldtype": "Column Break",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Lead",
- "options": "Lead",
- "fieldname": "lead",
- "fieldtype": "Link",
- "hidden": 0,
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Contact",
- "options": "Contact",
- "fieldname": "contact",
- "fieldtype": "Link",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Customer",
- "options": "Customer",
- "fieldname": "customer",
- "fieldtype": "Link",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Supplier",
- "options": "Supplier",
- "fieldname": "supplier",
- "fieldtype": "Link",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Opportunity",
- "options": "Opportunity",
- "fieldname": "opportunity",
- "fieldtype": "Link",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Quotation",
- "options": "Quotation",
- "fieldname": "quotation",
- "fieldtype": "Link",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Support Ticket",
- "options": "Support Ticket",
- "fieldname": "support_ticket",
- "fieldtype": "Link",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "fieldname": "column_break1",
- "fieldtype": "Column Break",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Recipients",
- "fieldname": "recipients",
- "fieldtype": "Data",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Sender",
- "fieldname": "sender",
- "fieldtype": "Data",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Communication Medium",
- "options": "\nChat\nPhone\nEmail\nSMS\nVisit\nOther",
- "fieldname": "communication_medium",
- "fieldtype": "Select",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "Phone No.",
- "fieldname": "phone_no",
- "fieldtype": "Data",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "options": "simple",
- "fieldname": "section_break2",
- "fieldtype": "Section Break",
- "permlevel": 0
- },
- {
- "doctype": "DocField",
- "label": "By",
- "fieldname": "column_break4",
- "fieldtype": "Column Break",
- "permlevel": 0
- },
- {
- "default": "__user",
- "colour": "White:FFF",
- "doctype": "DocField",
- "label": "User",
- "options": "Profile",
- "fieldname": "user",
- "fieldtype": "Link",
- "permlevel": 1
- },
- {
- "doctype": "DocField",
- "label": "Sales Person",
- "options": "Sales Person",
- "fieldname": "sales_person",
- "fieldtype": "Link",
- "permlevel": 1
- },
- {
- "doctype": "DocField",
- "label": "On",
- "fieldname": "column_break5",
- "fieldtype": "Column Break",
- "permlevel": 0
- },
- {
- "default": "Today",
- "colour": "White:FFF",
- "doctype": "DocField",
- "label": "Date",
- "fieldname": "communication_date",
- "fieldtype": "Date",
- "permlevel": 0
- },
- {
- "print_hide": 1,
- "no_copy": 1,
- "doctype": "DocField",
- "label": "File List",
- "fieldname": "file_list",
- "fieldtype": "Text",
- "hidden": 1,
- "permlevel": 0
- },
- {
- "print_hide": 1,
- "no_copy": 1,
- "doctype": "DocField",
- "label": "User Tags",
- "fieldname": "_user_tags",
- "fieldtype": "Data",
- "hidden": 1,
- "permlevel": 0
- },
- {
- "amend": 0,
- "create": 1,
- "doctype": "DocPerm",
- "submit": 0,
- "role": "Support Team",
- "cancel": 1,
- "permlevel": 0
- },
- {
- "amend": 0,
- "create": 1,
- "doctype": "DocPerm",
- "submit": 0,
- "role": "Sales Manager",
- "cancel": 1,
- "permlevel": 0
- },
- {
- "amend": 0,
- "create": 1,
- "doctype": "DocPerm",
- "submit": 0,
- "role": "Sales User",
- "cancel": 1,
- "permlevel": 0
- },
- {
- "amend": 0,
- "create": 0,
- "doctype": "DocPerm",
- "submit": 0,
- "role": "Sales Manager",
- "cancel": 0,
- "permlevel": 1
- },
- {
- "amend": 0,
- "create": 0,
- "doctype": "DocPerm",
- "submit": 0,
- "role": "Support Manager",
- "cancel": 0,
- "permlevel": 1
- },
- {
- "create": 1,
- "doctype": "DocPerm",
- "role": "Support Manager",
- "cancel": 1,
- "permlevel": 0
- },
- {
- "create": 1,
- "doctype": "DocPerm",
- "role": "System Manager",
- "cancel": 1,
- "permlevel": 0
- }
-]
\ No newline at end of file
diff --git a/support/doctype/communication/communication_list.js b/support/doctype/communication/communication_list.js
deleted file mode 100644
index 8c8d98c..0000000
--- a/support/doctype/communication/communication_list.js
+++ /dev/null
@@ -1,43 +0,0 @@
-wn.doclistviews['Communication'] = wn.views.ListView.extend({
- init: function(doclistview) {
- this._super(doclistview);
- this.fields = this.fields.concat([
- "`tabCommunication`.creation",
- "`tabCommunication`.category",
- "`tabCommunication`.subject",
- "`tabCommunication`.content"
- ]);
- this.order_by = "`tabCommunication`.creation desc";
- this.stats = this.stats.concat(['category']);
- },
-
- prepare_data: function(data) {
- this._super(data);
- this.prepare_when(data, data.creation);
-
- // escape double quote
- data.content = cstr(data.subject)
- + " | " + cstr(data.content);
- data.content = data.content.replace(/"/gi, '\"')
- .replace(/</gi, '<').replace(/>/gi, '>');
-
- if(data.content && data.content.length > 50) {
- data.content = '<span title="'+data.content+'">' +
- data.content.substr(0,50) + '...</span>';
- }
- },
-
- columns: [
- {width: '3%', content: 'check'},
- {width: '5%', content: 'avatar'},
- {width: '15%', content: 'name'},
- {width: '15%', content: 'category'},
- {width: '55%', content: 'content+tags'},
- {width: '12%', content:'when',
- css: {'text-align': 'right', 'color':'#777'}}
- ],
-
- make_new_doc: function(new_doctype) {
- new_doc(new_doctype, 1);
- }
-});
\ No newline at end of file
diff --git a/support/doctype/support_ticket/support_ticket.js b/support/doctype/support_ticket/support_ticket.js
index 519d343..2d89c6e 100644
--- a/support/doctype/support_ticket/support_ticket.js
+++ b/support/doctype/support_ticket/support_ticket.js
@@ -14,8 +14,6 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
-wn.require("public/app/js/communication.js");
-
cur_frm.fields_dict.customer.get_query = erpnext.utils.customer_query;
$.extend(cur_frm.cscript, {
@@ -62,7 +60,7 @@
"modified": doc.creation,
"content": doc.description});
- cur_frm.communication_view = new erpnext.CommunicationView({
+ cur_frm.communication_view = new wn.views.CommunicationList({
list: comm_list,
parent: wrapper,
doc: doc,
diff --git a/utilities/doctype/contact/contact.js b/utilities/doctype/contact/contact.js
index d51c0f5..3876ca2 100644
--- a/utilities/doctype/contact/contact.js
+++ b/utilities/doctype/contact/contact.js
@@ -14,9 +14,6 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
-wn.require("public/app/js/communication.js");
-
-//--------- ONLOAD -------------
cur_frm.cscript.onload = function(doc, cdt, cdn) {
cur_frm.add_fetch('customer', 'customer_name', 'customer_name');
cur_frm.add_fetch('supplier', 'supplier_name', 'supplier_name');
@@ -26,7 +23,7 @@
}
cur_frm.cscript.refresh = function() {
- cur_frm.communication_view = new erpnext.CommunicationView({
+ cur_frm.communication_view = new wn.views.CommunicationList({
list: wn.model.get("Communication", {"contact": doc.name}),
parent: cur_frm.fields_dict.communication_html.wrapper,
doc: doc,
diff --git a/utilities/doctype/contact/contact_list.js b/utilities/doctype/contact/contact_list.js
index bbf5bf8..3b1b3c9 100644
--- a/utilities/doctype/contact/contact_list.js
+++ b/utilities/doctype/contact/contact_list.js
@@ -20,7 +20,7 @@
data.fullname = (data.first_name || '') +
(data.last_name ? ' ' + data.last_name : '');
if(!data.fullname) data.fullname = data.name;
- data.fullname = repl("<a href='#!Form/Contact/%(name)s'>%(fullname)s\
+ data.fullname = repl("<a href='#!Form/Contact/%(name)s'>%(name)s\
</a>", data);
// prepare description