diff --git a/frappe/patches.txt b/frappe/patches.txt
index 7142e04d64..34913f8e68 100644
--- a/frappe/patches.txt
+++ b/frappe/patches.txt
@@ -245,3 +245,8 @@ frappe.patches.v16_0.move_role_desk_settings_to_user
frappe.printing.doctype.print_format.patches.sets_wkhtmltopdf_as_default_for_pdf_generator_field
frappe.patches.v14_0.fix_user_settings_collation
execute:frappe.core.doctype.system_settings.system_settings.sync_system_settings
+<<<<<<< HEAD
+=======
+frappe.printing.doctype.print_format.patches.sets_wkhtmltopdf_as_default_for_pdf_generator_field
+frappe.patches.v16_0.social_eps_deprecation_warning
+>>>>>>> 6764a9ed49 (fix: add deprecation warning for social module energy points)
diff --git a/frappe/patches/v16_0/social_eps_deprecation_warning.py b/frappe/patches/v16_0/social_eps_deprecation_warning.py
new file mode 100644
index 0000000000..e412e5969f
--- /dev/null
+++ b/frappe/patches/v16_0/social_eps_deprecation_warning.py
@@ -0,0 +1,9 @@
+import click
+
+
+def execute():
+ click.secho(
+ "Social Module/Energy Points System is moving to a new app and will removed from the framework in version-16.\n"
+ "Please install the app to continue using the integration: https://github.com/frappe/eps",
+ fg="yellow",
+ )
diff --git a/frappe/social/doctype/energy_point_log/energy_point_log.js b/frappe/social/doctype/energy_point_log/energy_point_log.js
new file mode 100644
index 0000000000..b455c01b8a
--- /dev/null
+++ b/frappe/social/doctype/energy_point_log/energy_point_log.js
@@ -0,0 +1,59 @@
+// Copyright (c) 2018, Frappe Technologies and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on("Energy Point Log", {
+ refresh: function (frm) {
+ frm.events.make_reference_name_link(frm);
+ if (frm.doc.reverted) {
+ frm.set_intro(__("This document has been reverted"));
+ } else if (frm.doc.type === "Auto" && frappe.user_roles.includes("System Manager")) {
+ frm.add_custom_button(__("Revert"), () => frm.events.show_revert_dialog(frm));
+ }
+ let app_link = "EPS";
+ frm.dashboard.add_comment(
+ __(
+ "Energy Point System will be removed from Framework in Version 16. Please install {0} app to continue using it.",
+ [app_link]
+ ),
+ "yellow",
+ true
+ );
+ },
+ show_revert_dialog(frm) {
+ const revert_dialog = new frappe.ui.Dialog({
+ title: __("Revert"),
+ fields: [
+ {
+ fieldname: "reason",
+ fieldtype: "Small Text",
+ label: __("Reason"),
+ reqd: 1,
+ },
+ ],
+ primary_action: (values) => {
+ return frm
+ .call("revert", {
+ reason: values.reason,
+ })
+ .then((res) => {
+ let revert_log = res.message;
+ revert_dialog.hide();
+ revert_dialog.clear();
+ frappe.model.docinfo[frm.doc.reference_doctype][
+ frm.doc.reference_name
+ ].energy_point_logs.unshift(revert_log);
+ frm.refresh();
+ });
+ },
+ primary_action_label: __("Submit"),
+ });
+ revert_dialog.show();
+ },
+ make_reference_name_link(frm) {
+ let dt = frm.doc.reference_doctype;
+ let dn = frm.doc.reference_name;
+ frm.fields_dict.reference_name.$input_wrapper
+ .find(".control-value")
+ .wrapInner(``);
+ },
+});
diff --git a/frappe/social/doctype/energy_point_rule/energy_point_rule.js b/frappe/social/doctype/energy_point_rule/energy_point_rule.js
new file mode 100644
index 0000000000..0cafa08901
--- /dev/null
+++ b/frappe/social/doctype/energy_point_rule/energy_point_rule.js
@@ -0,0 +1,67 @@
+// Copyright (c) 2018, Frappe Technologies and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on("Energy Point Rule", {
+ validate(frm) {
+ frm.set_df_property("user_field", "reqd", !frm.doc.for_assigned_users);
+ frm.set_df_property("condition", "reqd", frm.doc.for_doc_event === "Custom");
+ },
+ refresh(frm) {
+ frm.events.set_field_options(frm);
+ let app_link = "EPS";
+ frm.dashboard.add_comment(
+ __(
+ "Energy Point System will be removed from Framework in Version 16. Please install {0} app to continue using it.",
+ [app_link]
+ ),
+ "yellow",
+ true
+ );
+ },
+ for_doc_event(frm) {
+ if (frm.doc.for_assigned_users) {
+ frm.set_value("for_assigned_users", !frm.doc.for_doc_event === "New");
+ }
+ },
+ reference_doctype(frm) {
+ frm.events.set_field_options(frm);
+ },
+ set_field_options(frm) {
+ // sets options for field_to_check, user_field and multiplier fields
+ // based on reference doctype
+ const reference_doctype = frm.doc.reference_doctype;
+ if (!reference_doctype) return;
+
+ frappe.model.with_doctype(reference_doctype, () => {
+ const map_for_options = (df) => ({ label: df.label, value: df.fieldname });
+ const fields = frappe.meta
+ .get_docfields(frm.doc.reference_doctype)
+ .filter(frappe.model.is_value_type);
+
+ const fields_to_check = fields.map(map_for_options);
+
+ const user_fields = fields
+ .filter(
+ (df) =>
+ (df.fieldtype === "Link" && df.options === "User") ||
+ df.fieldtype === "Data"
+ )
+ .map(map_for_options)
+ .concat([
+ { label: __("Owner"), value: "owner" },
+ { label: __("Modified By"), value: "modified_by" },
+ ]);
+
+ const multiplier_fields = fields
+ .filter((df) => ["Int", "Float"].includes(df.fieldtype))
+ .map(map_for_options);
+
+ // blank option for the ability to unset the multiplier field
+ multiplier_fields.unshift(null);
+
+ frm.set_df_property("field_to_check", "options", fields_to_check);
+ frm.set_df_property("user_field", "options", user_fields);
+ frm.set_df_property("multiplier_field", "options", multiplier_fields);
+ });
+ },
+});
diff --git a/frappe/social/doctype/energy_point_settings/energy_point_settings.js b/frappe/social/doctype/energy_point_settings/energy_point_settings.js
new file mode 100644
index 0000000000..f382aa6db2
--- /dev/null
+++ b/frappe/social/doctype/energy_point_settings/energy_point_settings.js
@@ -0,0 +1,59 @@
+// Copyright (c) 2019, Frappe Technologies and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on("Energy Point Settings", {
+ refresh: function (frm) {
+ if (frm.doc.enabled) {
+ frm.add_custom_button(__("Give Review Points"), show_review_points_dialog);
+ }
+ let app_link = "EPS";
+ frm.dashboard.add_comment(
+ __(
+ "Energy Point System will be removed from Framework in Version 16. Please install {0} app to continue using it.",
+ [app_link]
+ ),
+ "yellow",
+ true
+ );
+ },
+});
+
+function show_review_points_dialog() {
+ const dialog = new frappe.ui.Dialog({
+ title: __("Give Review Points"),
+ fields: [
+ {
+ label: "User",
+ fieldname: "user",
+ fieldtype: "Link",
+ options: "User",
+ reqd: 1,
+ },
+ {
+ label: "Points",
+ fieldname: "points",
+ fieldtype: "Int",
+ reqd: 1,
+ },
+ ],
+ primary_action: function (values) {
+ frappe
+ .xcall(
+ "frappe.social.doctype.energy_point_log.energy_point_log.add_review_points",
+ {
+ user: values.user,
+ points: values.points,
+ }
+ )
+ .then(() => {
+ frappe.show_alert({
+ message: __("Successfully Done"),
+ indicator: "green",
+ });
+ })
+ .finally(() => dialog.hide());
+ },
+ primary_action_label: __("Submit"),
+ });
+ dialog.show();
+}