Skip to content
Snippets Groups Projects
Unverified Commit 5f92aa2e authored by Chif Gergő's avatar Chif Gergő Committed by GitHub
Browse files

Merge pull request #1 from DevTeamSCH/login

Login
parents 5f3fbdf3 bb58750d
No related branches found
No related tags found
No related merge requests found
Showing
with 242 additions and 19 deletions
from django.contrib import admin
from .models import Profile
from . import models
@admin.register(Profile)
@admin.register(models.Profile)
class ProfileAdmin(admin.ModelAdmin):
list_display = ('user_username', 'join_date', 'pref_group')
list_display = ('user_username', 'join_date')
def user_username(self, obj):
return obj.user.username
user_username.admin_order_field = 'user__username'
# Register your models here.
admin.site.register(models.GroupChoice)
# -*- 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),
),
]
# -*- 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),
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2017-12-23 13:55
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0004_profile_signed'),
]
operations = [
migrations.AlterField(
model_name='profile',
name='join_date',
field=models.DateField(auto_now=True),
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2018-01-23 16:13
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('account', '0005_auto_20171223_1455'),
]
operations = [
migrations.CreateModel(
name='GroupChoice',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('pref_group', models.CharField(choices=[('DT', 'DevTeam'), ('NET', 'NeTeam'), ('ST', 'SecurITeam'), ('SYS', 'SysAdmin'), ('HAT', 'Hallgatói Tudásbázis'), ('N', 'None')], default='None', max_length=10)),
],
),
migrations.RemoveField(
model_name='profile',
name='pref_group',
),
migrations.AddField(
model_name='groupchoice',
name='profile',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='preferd_groups', to='account.Profile'),
),
migrations.AlterUniqueTogether(
name='groupchoice',
unique_together=set([('pref_group', 'profile')]),
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2018-01-23 16:23
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('account', '0006_auto_20180123_1713'),
]
operations = [
migrations.RenameField(
model_name='groupchoice',
old_name='pref_group',
new_name='choice',
),
migrations.AlterUniqueTogether(
name='groupchoice',
unique_together=set([('choice', 'profile')]),
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2018-01-24 17:21
from __future__ import unicode_literals
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('account', '0007_auto_20180123_1723'),
]
operations = [
migrations.AlterField(
model_name='profile',
name='user',
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL),
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2018-01-24 17:43
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0008_auto_20180124_1821'),
]
operations = [
migrations.AddField(
model_name='profile',
name='motivation',
field=models.TextField(null=True),
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2018-01-24 18:29
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0009_profile_motivation'),
]
operations = [
migrations.AddField(
model_name='profile',
name='groups',
field=models.ManyToManyField(related_name='profiles', to='account.GroupChoice'),
),
migrations.AlterField(
model_name='groupchoice',
name='choice',
field=models.CharField(choices=[('DT', 'DevTeam'), ('NET', 'NeTeam'), ('ST', 'SecurITeam'), ('SYS', 'SysAdmin'), ('HAT', 'Hallgatói Tudásbázis'), ('N', 'None')], default='N', max_length=10, unique=True),
),
migrations.AlterUniqueTogether(
name='groupchoice',
unique_together=set([]),
),
migrations.RemoveField(
model_name='groupchoice',
name='profile',
),
]
from django.db import models
from django.contrib.auth.models import User
from django.core.exceptions import ValidationError
import datetime
class Profile(models.Model):
join_date = models.DateField()
user = models.OneToOneField(User, on_delete=models.CASCADE)
class GroupChoice(models.Model):
TEAMS = (
('DT', 'DevTeam'),
('NET', 'NeTeam'),
......@@ -15,12 +11,20 @@ class Profile(models.Model):
('HAT', 'Hallgatói Tudásbázis'),
('N', 'None'),
)
pref_group = models.CharField(max_length=10, choices=TEAMS, default='None')
choice = models.CharField(max_length=10, choices=TEAMS, default='N', unique=True)
def __str__(self):
return self.choice
class Profile(models.Model):
join_date = models.DateField(auto_now=True)
user = models.OneToOneField(User, related_name='profile', on_delete=models.CASCADE)
motivation = models.TextField(null=True)
nick = models.CharField(max_length=15, blank=True, null=True)
signed = models.BooleanField(default=False, null=False)
groups = models.ManyToManyField(GroupChoice, related_name='profiles')
# Homeworks=models.ForeignKey(Homework)
def __str__(self):
return self.user.username
def clean(self):
if self.join_date > datetime.date.today() or self.join_date < datetime.date(2015, 1, 1):
raise ValidationError('Invalid date')
from rest_framework import serializers
from . import models
from account import models
class ChoiceSerializer(serializers.ModelSerializer):
class Meta:
model = models.GroupChoice
fields = ('choice', 'profile')
class ProfileSerializer(serializers.ModelSerializer):
groups = serializers.SlugRelatedField(many=True, slug_field="choice", queryset=models.GroupChoice.objects.all())
class Meta:
model = models.Profile
fields = '__all__'
fields = ('id', 'join_date', 'user', 'nick', 'motivation', 'signed', 'groups')
from rest_framework import routers
from . import views
router = routers.DefaultRouter(trailing_slash=False)
router.register(r'profiles', views.ProfileViewSet)
router = routers.DefaultRouter()
router.register(r'profiles', views.ProfileViewSet, base_name='profile')
urlpatterns = router.urls
from rest_framework import viewsets
from rest_framework import permissions
from rest_framework.response import Response
from rest_framework.decorators import list_route
from . import models
from . import serializers
......@@ -6,4 +9,14 @@ from . import serializers
class ProfileViewSet(viewsets.ModelViewSet):
serializer_class = serializers.ProfileSerializer
queryset = models.Profile.objects.all()
permission_classes = (permissions.IsAuthenticated, )
def get_queryset(self):
user = self.request.user
if user.has_perm(permissions.IsAdminUser):
return models.Profile.objects.all()
@list_route(methods=['get'])
def me(self, request):
serializer = self.serializer_class(request.user.profile)
return Response(serializer.data)
......@@ -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')),
]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment