Merge pull request #19934 from hrwX/custom_append_to

feat(Emaill Account): Email Append To
This commit is contained in:
Himanshu 2020-04-06 11:36:38 +05:30 committed by GitHub
commit 5bb42f5564
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 115 additions and 383 deletions

View File

@ -6,6 +6,7 @@
"creation": "2013-04-10 11:45:37", "creation": "2013-04-10 11:45:37",
"doctype": "DocType", "doctype": "DocType",
"document_type": "Document", "document_type": "Document",
"email_append_to": 1,
"engine": "InnoDB", "engine": "InnoDB",
"field_order": [ "field_order": [
"organization_lead", "organization_lead",
@ -438,7 +439,7 @@
"idx": 5, "idx": 5,
"image_field": "image", "image_field": "image",
"links": [], "links": [],
"modified": "2019-12-24 16:00:44.239168", "modified": "2020-01-13 16:16:48.885228",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "CRM", "module": "CRM",
"name": "Lead", "name": "Lead",
@ -507,6 +508,7 @@
} }
], ],
"search_fields": "lead_name,lead_owner,status", "search_fields": "lead_name,lead_owner,status",
"sender_field": "email_id",
"show_name_in_global_search": 1, "show_name_in_global_search": 1,
"sort_field": "modified", "sort_field": "modified",
"sort_order": "DESC", "sort_order": "DESC",

View File

@ -12,9 +12,6 @@ from frappe.email.inbox import link_communication_to_document
from frappe.model.mapper import get_mapped_doc from frappe.model.mapper import get_mapped_doc
from frappe.utils import cint, comma_and, cstr, getdate, has_gravatar, nowdate, validate_email_address from frappe.utils import cint, comma_and, cstr, getdate, has_gravatar, nowdate, validate_email_address
sender_field = "email_id"
class Lead(SellingController): class Lead(SellingController):
def get_feed(self): def get_feed(self):
return '{0}: {1}'.format(_(self.status), self.lead_name) return '{0}: {1}'.format(_(self.status), self.lead_name)

View File

@ -8,6 +8,7 @@
"doctype": "DocType", "doctype": "DocType",
"document_type": "Document", "document_type": "Document",
"editable_grid": 1, "editable_grid": 1,
"email_append_to": 1,
"engine": "InnoDB", "engine": "InnoDB",
"field_order": [ "field_order": [
"from_section", "from_section",
@ -328,6 +329,7 @@
"fieldname": "contact_email", "fieldname": "contact_email",
"fieldtype": "Data", "fieldtype": "Data",
"label": "Contact Email", "label": "Contact Email",
"options": "Email",
"read_only": 1 "read_only": 1
}, },
{ {
@ -453,9 +455,11 @@
} }
], ],
"search_fields": "status,transaction_date,party_name,opportunity_type,territory,company", "search_fields": "status,transaction_date,party_name,opportunity_type,territory,company",
"sender_field": "contact_email",
"show_name_in_global_search": 1, "show_name_in_global_search": 1,
"sort_field": "modified", "sort_field": "modified",
"sort_order": "DESC", "sort_order": "DESC",
"subject_field": "title",
"timeline_field": "party_name", "timeline_field": "party_name",
"title_field": "title", "title_field": "title",
"track_seen": 1, "track_seen": 1,

View File

@ -11,9 +11,6 @@ from erpnext.utilities.transaction_base import TransactionBase
from erpnext.accounts.party import get_party_account_currency from erpnext.accounts.party import get_party_account_currency
from frappe.email.inbox import link_communication_to_document from frappe.email.inbox import link_communication_to_document
subject_field = "title"
sender_field = "contact_email"
class Opportunity(TransactionBase): class Opportunity(TransactionBase):
def after_insert(self): def after_insert(self):
if self.opportunity_from == "Lead": if self.opportunity_from == "Lead":

View File

@ -55,12 +55,8 @@ treeviews = ['Account', 'Cost Center', 'Warehouse', 'Item Group', 'Customer Grou
update_website_context = ["erpnext.shopping_cart.utils.update_website_context", "erpnext.education.doctype.education_settings.education_settings.update_website_context"] update_website_context = ["erpnext.shopping_cart.utils.update_website_context", "erpnext.education.doctype.education_settings.education_settings.update_website_context"]
my_account_context = "erpnext.shopping_cart.utils.update_my_account_context" my_account_context = "erpnext.shopping_cart.utils.update_my_account_context"
email_append_to = ["Job Applicant", "Lead", "Opportunity", "Issue"]
calendars = ["Task", "Work Order", "Leave Application", "Sales Order", "Holiday List", "Course Schedule"] calendars = ["Task", "Work Order", "Leave Application", "Sales Order", "Holiday List", "Course Schedule"]
domains = { domains = {
'Agriculture': 'erpnext.domains.agriculture', 'Agriculture': 'erpnext.domains.agriculture',
'Distribution': 'erpnext.domains.distribution', 'Distribution': 'erpnext.domains.distribution',

View File

@ -1,385 +1,123 @@
{ {
"allow_copy": 0, "actions": [],
"allow_guest_to_view": 0, "allow_rename": 1,
"allow_import": 0, "autoname": "HR-APP-.YYYY.-.#####",
"allow_rename": 1, "creation": "2013-01-29 19:25:37",
"autoname": "HR-APP-.YYYY.-.#####", "description": "Applicant for a Job",
"beta": 0, "doctype": "DocType",
"creation": "2013-01-29 19:25:37", "document_type": "Document",
"custom": 0, "email_append_to": 1,
"description": "Applicant for a Job", "engine": "InnoDB",
"docstatus": 0, "field_order": [
"doctype": "DocType", "applicant_name",
"document_type": "Document", "email_id",
"editable_grid": 0, "status",
"engine": "InnoDB", "column_break_3",
"job_title",
"source",
"source_name",
"section_break_6",
"notes",
"cover_letter",
"resume_attachment"
],
"fields": [ "fields": [
{ {
"allow_bulk_edit": 0, "bold": 1,
"allow_in_quick_entry": 0, "fieldname": "applicant_name",
"allow_on_submit": 0, "fieldtype": "Data",
"bold": 1, "in_global_search": 1,
"collapsible": 0, "label": "Applicant Name",
"columns": 0, "reqd": 1
"fieldname": "applicant_name", },
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 1,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Applicant Name",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "bold": 1,
"allow_in_quick_entry": 0, "fieldname": "email_id",
"allow_on_submit": 0, "fieldtype": "Data",
"bold": 1, "label": "Email Address",
"collapsible": 0, "options": "Email",
"columns": 0, "reqd": 1
"fieldname": "email_id", },
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Email Address",
"length": 0,
"no_copy": 0,
"options": "Email",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "fieldname": "status",
"allow_in_quick_entry": 0, "fieldtype": "Select",
"allow_on_submit": 0, "in_list_view": 1,
"bold": 0, "in_standard_filter": 1,
"collapsible": 0, "label": "Status",
"columns": 0, "options": "Open\nReplied\nRejected\nHold\nAccepted",
"fieldname": "status", "reqd": 1
"fieldtype": "Select", },
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Status",
"length": 0,
"no_copy": 0,
"options": "Open\nReplied\nRejected\nHold\nAccepted",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "fieldname": "column_break_3",
"allow_in_quick_entry": 0, "fieldtype": "Column Break",
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "column_break_3",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0,
"width": "50%" "width": "50%"
}, },
{ {
"allow_bulk_edit": 0, "fieldname": "job_title",
"allow_in_quick_entry": 0, "fieldtype": "Link",
"allow_on_submit": 0, "in_list_view": 1,
"bold": 0, "label": "Job Opening",
"collapsible": 0, "options": "Job Opening"
"columns": 0, },
"fieldname": "job_title",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Job Opening",
"length": 0,
"no_copy": 0,
"options": "Job Opening",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "fieldname": "source",
"allow_in_quick_entry": 0, "fieldtype": "Link",
"allow_on_submit": 0, "label": "Source",
"bold": 0, "options": "Job Applicant Source"
"collapsible": 0, },
"columns": 0,
"fieldname": "source",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Source",
"length": 0,
"no_copy": 0,
"options": "Job Applicant Source",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "depends_on": "eval: doc.source==\"Employee Referral\" ",
"allow_in_quick_entry": 0, "fieldname": "source_name",
"allow_on_submit": 0, "fieldtype": "Link",
"bold": 0, "label": "Source Name",
"collapsible": 0, "options": "Employee"
"columns": 0, },
"depends_on": "eval: doc.source==\"Employee Referral\" ",
"fieldname": "source_name",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Source Name",
"length": 0,
"no_copy": 0,
"options": "Employee",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "fieldname": "section_break_6",
"allow_in_quick_entry": 0, "fieldtype": "Section Break"
"allow_on_submit": 0, },
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "section_break_6",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "fieldname": "cover_letter",
"allow_in_quick_entry": 0, "fieldtype": "Text",
"allow_on_submit": 0, "label": "Cover Letter"
"bold": 0, },
"collapsible": 0,
"columns": 0,
"fieldname": "cover_letter",
"fieldtype": "Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Cover Letter",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{ {
"allow_bulk_edit": 0, "fieldname": "resume_attachment",
"allow_in_quick_entry": 0, "fieldtype": "Attach",
"allow_on_submit": 0, "label": "Resume Attachment"
"bold": 0, },
"collapsible": 0, {
"columns": 0, "fieldname": "notes",
"fieldname": "resume_attachment", "fieldtype": "Data",
"fieldtype": "Attach", "label": "Notes",
"hidden": 0, "read_only": 1
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Resume Attachment",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
} }
], ],
"has_web_view": 0, "icon": "fa fa-user",
"hide_heading": 0, "idx": 1,
"hide_toolbar": 0, "links": [],
"icon": "fa fa-user", "modified": "2020-01-13 16:19:39.113330",
"idx": 1, "modified_by": "Administrator",
"image_view": 0, "module": "HR",
"in_create": 0, "name": "Job Applicant",
"is_submittable": 0, "owner": "Administrator",
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2019-07-21 16:15:43.552049",
"modified_by": "Administrator",
"module": "HR",
"name": "Job Applicant",
"owner": "Administrator",
"permissions": [ "permissions": [
{ {
"amend": 0, "create": 1,
"cancel": 0, "delete": 1,
"create": 1, "email": 1,
"delete": 1, "print": 1,
"email": 1, "read": 1,
"export": 0, "report": 1,
"if_owner": 0, "role": "HR User",
"import": 0, "share": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR User",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1 "write": 1
} }
], ],
"quick_entry": 0, "search_fields": "applicant_name",
"read_only": 0, "sender_field": "email_id",
"read_only_onload": 0, "sort_field": "modified",
"search_fields": "applicant_name", "sort_order": "ASC",
"show_name_in_global_search": 0, "subject_field": "notes",
"sort_order": "ASC", "title_field": "applicant_name"
"title_field": "applicant_name",
"track_changes": 0,
"track_seen": 0,
"track_views": 0
} }

View File

@ -9,8 +9,6 @@ import frappe
from frappe import _ from frappe import _
from frappe.utils import comma_and, validate_email_address from frappe.utils import comma_and, validate_email_address
sender_field = "email_id"
class DuplicationError(frappe.ValidationError): pass class DuplicationError(frappe.ValidationError): pass
class JobApplicant(Document): class JobApplicant(Document):

View File

@ -6,6 +6,7 @@
"creation": "2013-02-01 10:36:25", "creation": "2013-02-01 10:36:25",
"doctype": "DocType", "doctype": "DocType",
"document_type": "Setup", "document_type": "Setup",
"email_append_to": 1,
"engine": "InnoDB", "engine": "InnoDB",
"field_order": [ "field_order": [
"subject_section", "subject_section",
@ -366,7 +367,7 @@
"icon": "fa fa-ticket", "icon": "fa fa-ticket",
"idx": 7, "idx": 7,
"links": [], "links": [],
"modified": "2020-02-26 02:19:49.477928", "modified": "2020-03-13 02:19:49.477928",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Support", "module": "Support",
"name": "Issue", "name": "Issue",
@ -386,8 +387,10 @@
], ],
"quick_entry": 1, "quick_entry": 1,
"search_fields": "status,customer,subject,raised_by", "search_fields": "status,customer,subject,raised_by",
"sender_field": "raised_by",
"sort_field": "modified", "sort_field": "modified",
"sort_order": "DESC", "sort_order": "DESC",
"subject_field": "subject",
"timeline_field": "customer", "timeline_field": "customer",
"title_field": "subject", "title_field": "subject",
"track_changes": 1, "track_changes": 1,

View File

@ -14,9 +14,6 @@ from frappe.utils.user import is_website_user
from erpnext.support.doctype.service_level_agreement.service_level_agreement import get_active_service_level_agreement_for from erpnext.support.doctype.service_level_agreement.service_level_agreement import get_active_service_level_agreement_for
from frappe.email.inbox import link_communication_to_document from frappe.email.inbox import link_communication_to_document
sender_field = "raised_by"
class Issue(Document): class Issue(Document):
def get_feed(self): def get_feed(self):
return "{0}: {1}".format(_(self.status), self.subject) return "{0}: {1}".format(_(self.status), self.subject)

View File