Skip to content

Commit

Permalink
Create School model
Browse files Browse the repository at this point in the history
  • Loading branch information
tizot committed Jan 26, 2016
1 parent 14185c0 commit 435f321
Show file tree
Hide file tree
Showing 6 changed files with 72 additions and 0 deletions.
2 changes: 2 additions & 0 deletions sigma/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,15 @@

from sigma_core.views.user import UserViewSet
from sigma_core.views.group import GroupViewSet
from sigma_core.views.school import SchoolViewSet
from sigma_core.views.group_user import GroupUserViewSet
from sigma_core.views.group_member import GroupMemberViewSet

router = routers.DefaultRouter()

router.register(r'user', UserViewSet)
router.register(r'group', GroupViewSet)
router.register(r'school', SchoolViewSet)
router.register(r'group-member', GroupMemberViewSet)

urlpatterns = [
Expand Down
2 changes: 2 additions & 0 deletions sigma_core/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@

from sigma_core.models.user import User
from sigma_core.models.group import Group
from sigma_core.models.school import School
from sigma_core.models.group_member import GroupMember


admin.site.unregister(AuthGroup)
admin.site.register(User)
admin.site.register(Group)
admin.site.register(School)
admin.site.register(GroupMember)
24 changes: 24 additions & 0 deletions sigma_core/migrations/0010_school.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9 on 2016-01-26 13:41
from __future__ import unicode_literals

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('sigma_core', '0009_auto_20160111_0057'),
]

operations = [
migrations.CreateModel(
name='School',
fields=[
('group_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='sigma_core.Group')),
('design', models.CharField(max_length=255)),
],
bases=('sigma_core.group',),
),
]
7 changes: 7 additions & 0 deletions sigma_core/models/school.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from django.db import models

from sigma_core.models.group import Group


class School(Group):
design = models.CharField(max_length=255)
22 changes: 22 additions & 0 deletions sigma_core/serializers/school.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from rest_framework import serializers

from sigma_core.models.school import School



class BasicSchoolSerializer(serializers.ModelSerializer):
"""
Serialize School model without memberships.
"""
class Meta:
model = School


class SchoolSerializer(BasicSchoolSerializer):
"""
Serialize School model with memberships.
"""
class Meta:
model = School

memberships = serializers.PrimaryKeyRelatedField(read_only=True, many=True)
15 changes: 15 additions & 0 deletions sigma_core/views/school.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from django.http import Http404

from rest_framework import viewsets, decorators, status
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
from dry_rest_permissions.generics import DRYPermissions

from sigma_core.models.school import School
from sigma_core.serializers.school import SchoolSerializer


class SchoolViewSet(viewsets.ModelViewSet):
queryset = School.objects.all()
serializer_class = SchoolSerializer
permission_classes = [IsAuthenticated, ]#DRYPermissions, ]

0 comments on commit 435f321

Please sign in to comment.