diff --git a/src/account/migrations/0003_profile_nick.py b/src/account/migrations/0003_profile_nick.py new file mode 100644 index 0000000000000000000000000000000000000000..7a3542787808c4e28493012327718f79731e9f3c --- /dev/null +++ b/src/account/migrations/0003_profile_nick.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-12-23 11:06 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('account', '0002_auto_20171114_2144'), + ] + + operations = [ + migrations.AddField( + model_name='profile', + name='nick', + field=models.CharField(blank=True, max_length=15, null=True), + ), + ] diff --git a/src/account/migrations/0004_profile_signed.py b/src/account/migrations/0004_profile_signed.py new file mode 100644 index 0000000000000000000000000000000000000000..424407361c1f04b2068daab365199eb7d5aa9e2b --- /dev/null +++ b/src/account/migrations/0004_profile_signed.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-12-23 11:10 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('account', '0003_profile_nick'), + ] + + operations = [ + migrations.AddField( + model_name='profile', + name='signed', + field=models.BooleanField(default=False), + ), + ] diff --git a/src/account/models.py b/src/account/models.py index 6b0bb79c09d62f3d045e97ef37b976931cc2cb2d..2524e6df28e3804afb1bc02975e7ce88a42e2a32 100644 --- a/src/account/models.py +++ b/src/account/models.py @@ -5,7 +5,7 @@ import datetime class Profile(models.Model): - join_date = models.DateField() + join_date = models.DateField(auto_now=True) user = models.OneToOneField(User, on_delete=models.CASCADE) TEAMS = ( ('DT', 'DevTeam'), @@ -16,6 +16,8 @@ class Profile(models.Model): ('N', 'None'), ) pref_group = models.CharField(max_length=10, choices=TEAMS, default='None') + nick = models.CharField(max_length=15, blank=True, null=True) + signed = models.BooleanField(default=False, null=False) # Homeworks=models.ForeignKey(Homework) def __str__(self): diff --git a/src/account/serializers.py b/src/account/serializers.py index 62021e9bfca6fed293f5b93d010c95a36150ad7a..fd724fb59c351b4cb2bf771edd845b12ebb92f5a 100644 --- a/src/account/serializers.py +++ b/src/account/serializers.py @@ -6,3 +6,16 @@ class ProfileSerializer(serializers.ModelSerializer): class Meta: model = models.Profile fields = '__all__' + + +class ProfileCreateSerializer(serializers.ModelSerializer): + class Meta: + model = models.Profile + fields = [ + 'user.username', + 'nick', + 'pref_group', + 'signed', + ] + + # def create(self, *args, **kwargs, obj): diff --git a/src/account/urls.py b/src/account/urls.py index 96decfda8d97835f067de97638c465ff3481d11b..1dc4f599fc5bba5f1811f050940d0dbf20d13a0e 100644 --- a/src/account/urls.py +++ b/src/account/urls.py @@ -1,8 +1,11 @@ from rest_framework import routers +from django.conf.urls import url from . import views router = routers.DefaultRouter(trailing_slash=False) router.register(r'profiles', views.ProfileViewSet) - -urlpatterns = router.urls +urlpatterns = [ + url(r'^profiles/create', views.ProfileCreateView.as_view()) +] +urlpatterns += router.urls diff --git a/src/account/views.py b/src/account/views.py index 50a0c059173f7d140f2a930f979cd8f6814abbd0..348fddcfe5b6dbdea733e5c6f17dafe83e9bef61 100644 --- a/src/account/views.py +++ b/src/account/views.py @@ -1,9 +1,16 @@ -from rest_framework import viewsets +from rest_framework import viewsets, generics +from rest_framework.permissions import IsAuthenticated from . import models from . import serializers +class ProfileCreateView(generics.CreateAPIView): + serializer_class = serializers.ProfileCreateSerializer + queryset = models.Profile.objects.all() + permission_classes = [IsAuthenticated, ] + + class ProfileViewSet(viewsets.ModelViewSet): serializer_class = serializers.ProfileSerializer queryset = models.Profile.objects.all() diff --git a/src/kszkepzes/urls.py b/src/kszkepzes/urls.py index 7d26d9b142492fc84a1fb37b63a8f822934854ef..98b91c94f1975a08a991dbfc87a59402a4be3b78 100644 --- a/src/kszkepzes/urls.py +++ b/src/kszkepzes/urls.py @@ -20,5 +20,6 @@ urlpatterns = [ url(r'^admin/', admin.site.urls), url('', include('social_django.urls', namespace='social')), url(r'^api/v1/', include('stats.urls')), + url(r'^api/v1/', include('account.urls')), ]