Skip to content

Commit 5ce5ef5

Browse files
authored
Merge pull request #49 from Ronak-23/main
adds a resolver for fetching path of a node
2 parents 98c2c0b + 74d7f68 commit 5ce5ef5

File tree

3 files changed

+22
-6
lines changed

3 files changed

+22
-6
lines changed

backend/family_tree/student/admin.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
from django.contrib import admin
2+
#from student.models import Student
23

34
from .models import Student
45

5-
admin.site.register(Student)
6+
class StudentAdmin(admin.ModelAdmin):
7+
save_as=True
8+
9+
admin.site.register(Student, StudentAdmin)

backend/family_tree/student/models.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
from django.db import models
22

3+
class SocialMedia(models.Model):
4+
facebook = models.URLField(max_length=255)
5+
instagram = models.URLField(max_length=255)
6+
37
class Student(models.Model):
48
roll_no= models.CharField(max_length=9)
59
name= models.CharField(max_length=50)
@@ -8,15 +12,11 @@ class Student(models.Model):
812
picture= models.URLField(max_length=200)
913
homeTown= models.CharField(max_length=200)
1014
extraCurriculars= models.CharField(max_length=400)
11-
socialMedia= models.ForeignKey('SocialMedia', on_delete=models.CASCADE, default=None)
15+
socialMedia= models.ForeignKey(SocialMedia, on_delete=models.CASCADE, default=None, blank=True, null=True)
1216
linkedIn= models.URLField(max_length=200)
1317
email= models.EmailField(max_length=254)
1418
parentId= models.CharField(max_length=400)
1519

16-
17-
class SocialMedia(models.Model):
18-
facebook = models.URLField(max_length=255)
19-
instagram = models.URLField(max_length=255)
2020

2121

2222

backend/family_tree/student/schema.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,22 @@ class Meta:
88
fields= ("id","name","branch","year","picture","homeTown","extraCurriculars","socialMedia", "linkedIn","email","parentId","roll_no")
99
filter_fields=["id","name","branch","year","email","parentId","roll_no"]
1010

11+
1112
class Query(graphene.ObjectType):
1213
students=graphene.List(StudentType)
14+
student_path= graphene.List(StudentType, roll=graphene.String())
1315

1416
def resolve_students(root,info):
1517
return Student.objects.all()
1618

19+
def resolve_student_path(root, info, roll):
20+
pathObjects=[]
21+
while(Student.objects.get(roll_no=roll).parentId!="root"):
22+
student=Student.objects.get(roll_no=roll)
23+
pathObjects.append(student)
24+
roll= student.parentId
25+
pathObjects.append(Student.objects.get(roll_no=roll))
26+
return pathObjects
27+
28+
1729
schema=graphene.Schema(query=Query)

0 commit comments

Comments
 (0)