feat: project likes
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
@@ -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);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user