-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
members: Add Projects, Portal, Skills
- Loading branch information
1 parent
d4202f3
commit c2dcefc
Showing
10 changed files
with
246 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import graphene | ||
|
||
|
||
class PortalBasicObj(graphene.ObjectType): | ||
name = graphene.String() | ||
color = graphene.String() | ||
icon = graphene.String() | ||
|
||
def resolve_name(self, info): | ||
return self['name'] | ||
|
||
def resolve_color(self, info): | ||
return self['color'] | ||
|
||
def resolve_icon(self, info): | ||
return self['icon'] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
import graphene | ||
from ..models import Project | ||
from members.api.project_basic import ProjectBasicObj | ||
|
||
|
||
class Query(object): | ||
project = graphene.Field( | ||
ProjectBasicObj, | ||
slug=graphene.String(required=True) | ||
) | ||
projects = graphene.List( | ||
ProjectBasicObj, | ||
username=graphene.String() | ||
) | ||
|
||
def resolve_project(self, info, **kwargs): | ||
slug = kwargs.get('slug') | ||
if slug is not None: | ||
return Project.objects.values().get(slug=slug) | ||
raise Exception('Project Slug is a required parameter') | ||
|
||
def resolve_projects(self, info, **kwargs): | ||
username = kwargs.get('username') | ||
if username is not None: | ||
return Project.objects.values().filter(members__username=username) | ||
return Project.objects.values().all() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
import graphene | ||
from framework.api.user import UserBasicObj | ||
from django.db.models import F | ||
from members.api.skill import SkillBasicObj | ||
from members.api.social_project import SocialProjectObj | ||
from ..models import Project, SocialProject | ||
|
||
|
||
class ProjectBasicObj(graphene.ObjectType): | ||
name = graphene.String() | ||
slug = graphene.String() | ||
featured = graphene.Boolean() | ||
tagline = graphene.String() | ||
members = graphene.List(UserBasicObj) | ||
membersCount = graphene.Int() | ||
published = graphene.Date() | ||
cover = graphene.String() | ||
topics = graphene.List(SkillBasicObj) | ||
detail = graphene.String() | ||
links = graphene.List(SocialProjectObj) | ||
|
||
def resolve_membersCount(self, info): | ||
return Project.objects.annotate( | ||
username=F('members__username') | ||
).filter(id=self['id']).count() | ||
|
||
@graphene.resolve_only_args | ||
def resolve_members(self): | ||
return Project.objects.values().annotate( | ||
username=F('members__username'), | ||
first_name=F('members__first_name'), | ||
last_name=F('members__last_name'), | ||
date_joined=F('members__date_joined'), | ||
is_active=F('members__is_active'), | ||
is_admin=F('members__is_superuser'), | ||
).filter(id=self['id']) | ||
|
||
@graphene.resolve_only_args | ||
def resolve_topics(self): | ||
return Project.objects.values().annotate( | ||
name=F('topics__name'), | ||
type=F('topics__type'), | ||
icon=F('topics__icon') | ||
).filter(id=self['id']) | ||
|
||
def resolve_links(self, info): | ||
return SocialProject.objects.values('link', 'portal').filter(project__id=self['id']) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import graphene | ||
|
||
|
||
class SkillBasicObj(graphene.ObjectType): | ||
name = graphene.String() | ||
type = graphene.String() | ||
icon = graphene.String() | ||
|
||
def resolve_name(self, info): | ||
return self['name'] | ||
|
||
def resolve_type(self, info): | ||
return self['type'] | ||
|
||
def resolve_icon(self, info): | ||
return self['icon'] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
import graphene | ||
from members.models import Portal | ||
from members.api.portal import PortalBasicObj | ||
|
||
|
||
class SocialProjectObj(graphene.ObjectType): | ||
link = graphene.String() | ||
portal = graphene.Field(PortalBasicObj) | ||
|
||
def resolve_portal(self, info): | ||
return Portal.objects.values().get(id=self['portal']) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters