mirror of
https://gitlab.crans.org/bde/nk20
synced 2024-11-26 18:37:12 +00:00
Notes are read-only in the API, but can be modified with scripts (ie. transactions)
This commit is contained in:
parent
7794210cc8
commit
74c0fcca83
@ -20,6 +20,7 @@ class NoteSerializer(serializers.ModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Note
|
model = Note
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
read_only_fields = [f.name for f in model._meta.get_fields()] # Notes are read-only protected
|
||||||
|
|
||||||
|
|
||||||
class NoteClubSerializer(serializers.ModelSerializer):
|
class NoteClubSerializer(serializers.ModelSerializer):
|
||||||
@ -32,6 +33,7 @@ class NoteClubSerializer(serializers.ModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = NoteClub
|
model = NoteClub
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
read_only_fields = ('note', 'club', )
|
||||||
|
|
||||||
def get_name(self, obj):
|
def get_name(self, obj):
|
||||||
return str(obj)
|
return str(obj)
|
||||||
@ -47,6 +49,7 @@ class NoteSpecialSerializer(serializers.ModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = NoteSpecial
|
model = NoteSpecial
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
read_only_fields = ('note', )
|
||||||
|
|
||||||
def get_name(self, obj):
|
def get_name(self, obj):
|
||||||
return str(obj)
|
return str(obj)
|
||||||
@ -62,6 +65,7 @@ class NoteUserSerializer(serializers.ModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = NoteUser
|
model = NoteUser
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
read_only_fields = ('note', 'user', )
|
||||||
|
|
||||||
def get_name(self, obj):
|
def get_name(self, obj):
|
||||||
return str(obj)
|
return str(obj)
|
||||||
|
@ -5,56 +5,15 @@ from django.db.models import Q
|
|||||||
from django_filters.rest_framework import DjangoFilterBackend
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
from rest_framework.filters import OrderingFilter, SearchFilter
|
from rest_framework.filters import OrderingFilter, SearchFilter
|
||||||
|
|
||||||
from api.viewsets import ReadProtectedModelViewSet
|
from api.viewsets import ReadProtectedModelViewSet, ReadOnlyProtectedModelViewSet
|
||||||
from member.backends import PermissionBackend
|
from member.backends import PermissionBackend
|
||||||
from .serializers import NoteSerializer, NotePolymorphicSerializer, NoteClubSerializer, NoteSpecialSerializer, \
|
from .serializers import NotePolymorphicSerializer, AliasSerializer, TemplateCategorySerializer, \
|
||||||
NoteUserSerializer, AliasSerializer, \
|
TransactionTemplateSerializer, TransactionPolymorphicSerializer
|
||||||
TemplateCategorySerializer, TransactionTemplateSerializer, TransactionPolymorphicSerializer
|
from ..models.notes import Note, Alias
|
||||||
from ..models.notes import Note, NoteClub, NoteSpecial, NoteUser, Alias
|
|
||||||
from ..models.transactions import TransactionTemplate, Transaction, TemplateCategory
|
from ..models.transactions import TransactionTemplate, Transaction, TemplateCategory
|
||||||
|
|
||||||
|
|
||||||
class NoteViewSet(ReadProtectedModelViewSet):
|
class NotePolymorphicViewSet(ReadOnlyProtectedModelViewSet):
|
||||||
"""
|
|
||||||
REST API View set.
|
|
||||||
The djangorestframework plugin will get all `Note` objects, serialize it to JSON with the given serializer,
|
|
||||||
then render it on /api/note/note/
|
|
||||||
"""
|
|
||||||
queryset = Note.objects.all()
|
|
||||||
serializer_class = NoteSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class NoteClubViewSet(ReadProtectedModelViewSet):
|
|
||||||
"""
|
|
||||||
REST API View set.
|
|
||||||
The djangorestframework plugin will get all `NoteClub` objects, serialize it to JSON with the given serializer,
|
|
||||||
then render it on /api/note/club/
|
|
||||||
"""
|
|
||||||
queryset = NoteClub.objects.all()
|
|
||||||
serializer_class = NoteClubSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class NoteSpecialViewSet(ReadProtectedModelViewSet):
|
|
||||||
"""
|
|
||||||
REST API View set.
|
|
||||||
The djangorestframework plugin will get all `NoteSpecial` objects, serialize it to JSON with the given serializer,
|
|
||||||
then render it on /api/note/special/
|
|
||||||
"""
|
|
||||||
queryset = NoteSpecial.objects.all()
|
|
||||||
serializer_class = NoteSpecialSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class NoteUserViewSet(ReadProtectedModelViewSet):
|
|
||||||
"""
|
|
||||||
REST API View set.
|
|
||||||
The djangorestframework plugin will get all `NoteUser` objects, serialize it to JSON with the given serializer,
|
|
||||||
then render it on /api/note/user/
|
|
||||||
"""
|
|
||||||
queryset = NoteUser.objects.all()
|
|
||||||
serializer_class = NoteUserSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class NotePolymorphicViewSet(ReadProtectedModelViewSet):
|
|
||||||
"""
|
"""
|
||||||
REST API View set.
|
REST API View set.
|
||||||
The djangorestframework plugin will get all `Note` objects (with polymorhism), serialize it to JSON with the given serializer,
|
The djangorestframework plugin will get all `Note` objects (with polymorhism), serialize it to JSON with the given serializer,
|
||||||
|
@ -227,6 +227,18 @@
|
|||||||
"description": "Transfer from myself's note"
|
"description": "Transfer from myself's note"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "permission.permission",
|
||||||
|
"pk": 18,
|
||||||
|
"fields": {
|
||||||
|
"model": 35,
|
||||||
|
"query": "{}",
|
||||||
|
"type": "change",
|
||||||
|
"mask": 1,
|
||||||
|
"field": "balance",
|
||||||
|
"description": "Update a note balance with a transaction"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "member.role",
|
"model": "member.role",
|
||||||
"pk": 1,
|
"pk": 1,
|
||||||
@ -279,7 +291,8 @@
|
|||||||
14,
|
14,
|
||||||
15,
|
15,
|
||||||
16,
|
16,
|
||||||
17
|
17,
|
||||||
|
18
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user