feat: project likes

This commit is contained in:
pateljannat
2021-02-24 10:52:25 +05:30
parent 97db066922
commit 063c7b67c5
3 changed files with 33 additions and 5 deletions

View File

@@ -67,11 +67,13 @@
{ {
"fieldname": "likes", "fieldname": "likes",
"fieldtype": "Int", "fieldtype": "Int",
"label": "Likes" "label": "Likes",
"read_only": 1
}, },
{ {
"fieldname": "project_search", "fieldname": "project_search",
"fieldtype": "Small Text", "fieldtype": "Small Text",
"hidden": 1,
"label": "Project Search" "label": "Project Search"
}, },
{ {
@@ -83,7 +85,7 @@
], ],
"index_web_pages_for_search": 1, "index_web_pages_for_search": 1,
"links": [], "links": [],
"modified": "2021-02-17 12:41:32.562346", "modified": "2021-02-23 11:21:47.948253",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Community", "module": "Community",
"name": "Community Project", "name": "Community Project",

View File

@@ -12,11 +12,13 @@ var set_likes = function(liked, likes) {
}; };
// set initial // set initial
//set_likes(liked, likes); /* frappe.call('community.www.hackathons.project.like', {project: frappe.form_dict.project}, (data) => {
set_likes(data.message.action =="Liked", data.message.likes)
}) */
// like - unlike // like - unlike
$('.btn-like').on('click', (e) => { $('.btn-like').on('click', (e) => {
frappe.call('like', {project: $(e.target).attr("data-project")}, (data) => { frappe.call('community.www.hackathons.project.like', {project: $(e.target).attr("data-project")}, (data) => {
set_likes(data.message.action =="Liked", data.message.likes); set_likes(data.message.action =="Liked", data.message.likes);
}); });
}); });

View File

@@ -65,4 +65,28 @@ def join_request(id, action):
frappe.throw('A project cannot have more than 4 members') frappe.throw('A project cannot have more than 4 members')
frappe.db.set_value('Community Project Member', id, 'status', 'Accepted') frappe.db.set_value('Community Project Member', id, 'status', 'Accepted')
else: else:
frappe.db.set_value('Community Project Member', id, 'status', 'Rejected') frappe.db.set_value('Community Project Member', id, 'status', 'Rejected')
def has_already_liked(project):
try:
likes = frappe.get_doc("Community Project Like", {"project": project, "owner": frappe.session.user})
return likes
except frappe.DoesNotExistError:
return None
@frappe.whitelist()
def like(project):
liked_project = has_already_liked(project)
if liked_project:
action= "Unliked"
liked_project.delete()
else:
action= "Liked"
frappe.get_doc({"doctype": "Community Project Like","project": project}).save()
likes = frappe.db.get_all("Community Project Like", {"project": project})
frappe.db.set_value("Community Project", project, "likes", len(likes))
return {
"action": action,
"likes": len(likes)
}