Add bookmarks to instruments on server side
This commit is contained in:
parent
8765de9603
commit
c8a09badad
|
|
@ -4,10 +4,14 @@ from graphene_django import DjangoObjectType
|
|||
from graphene_django.filter import DjangoFilterConnectionField
|
||||
|
||||
from api.utils import get_object
|
||||
from notes.models import InstrumentBookmark
|
||||
from notes.schema import InstrumentBookmarkNode
|
||||
from .models import BasicKnowledge
|
||||
|
||||
|
||||
class BasicKnowledgeNode(DjangoObjectType):
|
||||
class InstrumentNode(DjangoObjectType):
|
||||
bookmarks = graphene.List(InstrumentBookmarkNode)
|
||||
|
||||
class Meta:
|
||||
model = BasicKnowledge
|
||||
filter_fields = ['slug', 'type']
|
||||
|
|
@ -16,10 +20,16 @@ class BasicKnowledgeNode(DjangoObjectType):
|
|||
'slug', 'title', 'type', 'contents',
|
||||
]
|
||||
|
||||
def resolve_bookmarks(self, info, **kwargs):
|
||||
return InstrumentBookmark.objects.filter(
|
||||
user=info.context.user,
|
||||
instrument=self
|
||||
)
|
||||
|
||||
|
||||
class BasicKnowledgeQuery(object):
|
||||
instrument = graphene.Field(BasicKnowledgeNode, slug=graphene.String(), id=graphene.ID())
|
||||
instruments = DjangoFilterConnectionField(BasicKnowledgeNode)
|
||||
instrument = graphene.Field(InstrumentNode, slug=graphene.String(), id=graphene.ID())
|
||||
instruments = DjangoFilterConnectionField(InstrumentNode)
|
||||
|
||||
def resolve_instrument(self, info, **kwargs):
|
||||
slug = kwargs.get('slug')
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
# Generated by Django 2.0.6 on 2020-01-08 12:54
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('basicknowledge', '0004_auto_20191128_1601'),
|
||||
('notes', '0002_chapterbookmark_modulebookmark'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='InstrumentBookmark',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('uuid', models.UUIDField(unique=True)),
|
||||
('instrument', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='basicknowledge.BasicKnowledge')),
|
||||
('note', models.OneToOneField(null=True, on_delete=django.db.models.deletion.SET_NULL, to='notes.Note')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
@ -28,3 +28,7 @@ class ModuleBookmark(Bookmark):
|
|||
|
||||
class ChapterBookmark(Bookmark):
|
||||
chapter = models.ForeignKey('books.Chapter', on_delete=models.CASCADE)
|
||||
|
||||
class InstrumentBookmark(Bookmark):
|
||||
uuid = models.UUIDField(unique=True)
|
||||
instrument = models.ForeignKey('basicknowledge.BasicKnowledge', on_delete=models.CASCADE)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import graphene
|
|||
from graphene import relay
|
||||
from graphene_django import DjangoObjectType
|
||||
|
||||
from notes.models import Note, ContentBlockBookmark, ModuleBookmark, ChapterBookmark
|
||||
from notes.models import Note, ContentBlockBookmark, ModuleBookmark, ChapterBookmark, InstrumentBookmark
|
||||
|
||||
|
||||
class NoteNode(DjangoObjectType):
|
||||
|
|
@ -17,7 +17,6 @@ class NoteNode(DjangoObjectType):
|
|||
|
||||
|
||||
class ContentBlockBookmarkNode(DjangoObjectType):
|
||||
# note = graphene.
|
||||
uuid = graphene.UUID()
|
||||
note = graphene.Field(NoteNode)
|
||||
|
||||
|
|
@ -41,3 +40,13 @@ class ChapterBookmarkNode(DjangoObjectType):
|
|||
model = ChapterBookmark
|
||||
filter_fields = []
|
||||
interfaces = (relay.Node,)
|
||||
|
||||
|
||||
class InstrumentBookmarkNode(DjangoObjectType):
|
||||
uuid = graphene.UUID()
|
||||
note = graphene.Field(NoteNode)
|
||||
|
||||
class Meta:
|
||||
model = InstrumentBookmark
|
||||
filter_fields = []
|
||||
interfaces = (relay.Node,)
|
||||
|
|
|
|||
Loading…
Reference in New Issue