upgrade comments && add UML generator && modified shell files && fix urls
parent
1d07048913
commit
9da2611fbb
|
|
@ -1,3 +1,4 @@
|
|||
# database
|
||||
|
||||
*.sqlite3
|
||||
*.sqlite3
|
||||
*.png
|
||||
|
|
@ -1,2 +1,3 @@
|
|||
python manage.py makemigrations
|
||||
python manage.py migrate
|
||||
python manage.py migrate
|
||||
python manage.py graph_models -a -g -o class_diagram.png
|
||||
|
|
@ -1,7 +1,15 @@
|
|||
pip install django
|
||||
|
||||
pip install djangorestframework
|
||||
pip install django-filter
|
||||
pip install django-rest-enumfield
|
||||
pip install drf_yasg
|
||||
|
||||
pip install pyjwt
|
||||
pip install markdown
|
||||
|
||||
pip install django_extensions
|
||||
pip install pydotplus
|
||||
|
||||
# for runing generate UML:
|
||||
# apt-get install graphviz
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -59,7 +59,7 @@ class AccountAuth(ObtainAuthToken):
|
|||
serializer_class = AccountAuthSerializer
|
||||
|
||||
@swagger_auto_schema(
|
||||
responses={ 200: '{ Token: Authorize }' },
|
||||
responses={ 200: '{ Token: "Token", user: { AccountGet } }' },
|
||||
request_body=AccountAuthSerializer
|
||||
)
|
||||
def post(self, request, *args, **kwargs):
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,21 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from .models import UserComment, GuestComment
|
||||
|
||||
class UserCommentSerializer(serializers.ModelSerializer):
|
||||
id = serializers.IntegerField(read_only=True)
|
||||
user_id = serializers.IntegerField()
|
||||
text = serializers.CharField()
|
||||
|
||||
class Meta:
|
||||
model = UserComment
|
||||
fields = [ 'id', 'user_id', 'text']
|
||||
|
||||
class GuestCommentSerializer(serializers.ModelSerializer):
|
||||
id = serializers.IntegerField(read_only=True)
|
||||
guest_id = serializers.IntegerField()
|
||||
text = serializers.CharField()
|
||||
|
||||
class Meta:
|
||||
model = GuestComment
|
||||
fields = [ 'id', 'guest_id', 'text']
|
||||
|
|
@ -1,3 +1,42 @@
|
|||
from django.shortcuts import render
|
||||
|
||||
# Create your views here.
|
||||
from rest_framework import viewsets, mixins
|
||||
from rest_framework import permissions
|
||||
|
||||
from .models import UserComment, GuestComment
|
||||
from .serializers import UserCommentSerializer, GuestCommentSerializer
|
||||
|
||||
|
||||
class AnonAndUserPermissions(permissions.BasePermission):
|
||||
"""
|
||||
Anonymous user always can create && User can modify self records only
|
||||
|
||||
this is override of permissions in settings
|
||||
"""
|
||||
def has_object_permission(self, request, view, obj):
|
||||
if request.method == 'POST':
|
||||
return True
|
||||
return "AnonymousUser" != str(request.user)
|
||||
|
||||
|
||||
class UserCommentViewSet(
|
||||
mixins.ListModelMixin,
|
||||
mixins.CreateModelMixin,
|
||||
mixins.DestroyModelMixin,
|
||||
viewsets.GenericViewSet
|
||||
):
|
||||
|
||||
queryset = UserComment.objects.all()
|
||||
serializer_class = UserCommentSerializer
|
||||
|
||||
|
||||
class GuestCommentViewSet(
|
||||
mixins.ListModelMixin,
|
||||
mixins.CreateModelMixin,
|
||||
mixins.DestroyModelMixin,
|
||||
viewsets.GenericViewSet
|
||||
):
|
||||
|
||||
queryset = GuestComment.objects.all()
|
||||
serializer_class = GuestCommentSerializer
|
||||
permission_classes = (AnonAndUserPermissions, )
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ INSTALLED_APPS = [
|
|||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'django_extensions',
|
||||
'rest_framework',
|
||||
'drf_yasg',
|
||||
'rest_framework.authtoken',
|
||||
|
|
@ -141,6 +142,8 @@ USE_TZ = True
|
|||
STATIC_URL = '/static/'
|
||||
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
|
||||
|
||||
# Swagger documentation options
|
||||
|
||||
SWAGGER_SETTINGS = {
|
||||
'JSON_EDITOR': True,
|
||||
'SECURITY_DEFINITIONS': {
|
||||
|
|
@ -151,3 +154,10 @@ SWAGGER_SETTINGS = {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
# UML options
|
||||
|
||||
# GRAPH_MODELS = {
|
||||
# 'all_applications': True,
|
||||
# 'group_models': True,
|
||||
# }
|
||||
|
|
@ -25,6 +25,7 @@ from portfolio import settings
|
|||
from .account.views import GuestViewSet, AccountViewSet, AccountAuth
|
||||
from .album.views import AlbumViewSet, TrackViewSet, TrackRowViewSet
|
||||
from .rating.views import TrackRatingViewSet, AlbumRatingViewSet, CommentRatingViewSet
|
||||
from .comment.views import UserCommentViewSet, GuestCommentViewSet
|
||||
|
||||
schema_view = get_schema_view(
|
||||
openapi.Info(
|
||||
|
|
@ -51,6 +52,9 @@ router.register(r'track/(?P<track_id>\w+)/rating', TrackRatingViewSet, basename=
|
|||
router.register(r'album/(?P<album_id>\w+)/rating', AlbumRatingViewSet, basename='album rating')
|
||||
router.register(r'comment/(?P<comment_id>\w+)/rating', CommentRatingViewSet, basename='comment rating')
|
||||
|
||||
router.register(r'comment/user', UserCommentViewSet, basename='user-comment')
|
||||
router.register(r'comment/guest', GuestCommentViewSet, basename='guest-comment')
|
||||
|
||||
urlpatterns = [
|
||||
path('admin/', admin.site.urls),
|
||||
path('', include(router.urls)),
|
||||
|
|
|
|||
Loading…
Reference in New Issue