57 lines
2.5 KiB
Python
57 lines
2.5 KiB
Python
from __future__ import unicode_literals
|
|
import frappe
|
|
from frappe import _
|
|
|
|
def get_context(context):
|
|
context.no_cache = 1
|
|
try:
|
|
project = frappe.form_dict['project']
|
|
hackathon = frappe.form_dict['hackathon']
|
|
except KeyError:
|
|
frappe.local.flags.redirect_location = '/hackathons'
|
|
raise frappe.Redirect
|
|
context.project = get_project(project)
|
|
context.hackathon = hackathon
|
|
context.members = get_members(project)
|
|
context.confirmed_members = get_comfirmed_members(project)
|
|
context.likes = get_project_likes(project)
|
|
context.updates = get_updates(project)
|
|
if frappe.session.user != "Guest":
|
|
context.my_project = get_my_projects()
|
|
context.is_owner = context.project.owner == frappe.session.user
|
|
context.accepted_members = get_accepted_members(project)
|
|
context.is_member = check_is_member(project)
|
|
context.liked = get_liked_project(project)
|
|
|
|
def get_project(project_name):
|
|
try:
|
|
return frappe.get_doc('Community Project', project_name)
|
|
except frappe.DoesNotExistError:
|
|
frappe.throw(_("Project {0} does not exist.").format(project_name))
|
|
|
|
def get_members(project_name):
|
|
return frappe.get_all("Community Project Member", {"project": project_name, "status": ("!=", "Rejected") }, ['name', "owner", "status", 'intro'])
|
|
|
|
def get_comfirmed_members(project_name):
|
|
return frappe.get_all("Community Project Member", {"project": project_name, "status": ("=", "Accepted") }, ['name'])
|
|
|
|
def get_project_likes(project_name):
|
|
return frappe.get_all("Community Project Like", {"project": project_name})
|
|
|
|
def get_updates(project_name):
|
|
return frappe.get_all('Community Project Update', {"project": project_name}, ['owner', 'creation', 'update'])
|
|
|
|
def get_accepted_members(project_name):
|
|
return frappe.get_all("Community Project Member", {"project": project_name, "status": "Accepted" })
|
|
|
|
def get_my_projects():
|
|
my_project = frappe.db.get_value('Community Project', {"owner": frappe.session.user})
|
|
if not my_project:
|
|
my_project = frappe.db.get_value('Community Project Member', {"owner": frappe.session.user, "status": 'Accepted'}, 'project')
|
|
return my_project
|
|
|
|
def check_is_member(project_name):
|
|
frappe.get_all("Community Project Member", {"project": project_name, "status": "Accepted", "owner": frappe.session.user })
|
|
|
|
def get_liked_project(project_name):
|
|
return frappe.db.get_value("Community Project Like", {"owner": frappe.session.user, "project": project_name}) |