Renamed UserGroup to SchoolClass and reset migrations
This commit is contained in:
parent
21c85941be
commit
b2cac389cf
|
|
@ -1,6 +1,5 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 12:28
|
# Generated by Django 2.0.6 on 2018-10-05 08:56
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
import django_extensions.db.fields
|
import django_extensions.db.fields
|
||||||
|
|
@ -11,8 +10,6 @@ class Migration(migrations.Migration):
|
||||||
initial = True
|
initial = True
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
||||||
('books', '0002_contentblock_hidden_for'),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
|
|
@ -65,19 +62,4 @@ class Migration(migrations.Migration):
|
||||||
name='assignment',
|
name='assignment',
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='submissions', to='assignments.Assignment'),
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='submissions', to='assignments.Assignment'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
|
||||||
model_name='studentsubmission',
|
|
||||||
name='student',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='assignment',
|
|
||||||
name='module',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='assignments', to='books.Module'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='assignment',
|
|
||||||
name='owner',
|
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL),
|
|
||||||
),
|
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
# Generated by Django 2.0.6 on 2018-10-05 08:56
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('assignments', '0001_initial'),
|
||||||
|
('books', '0001_initial'),
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='studentsubmission',
|
||||||
|
name='student',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='assignment',
|
||||||
|
name='module',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='assignments', to='books.Module'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='assignment',
|
||||||
|
name='owner',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 07:39
|
# Generated by Django 2.0.6 on 2018-10-05 08:56
|
||||||
|
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
|
|
@ -12,8 +12,8 @@ class Migration(migrations.Migration):
|
||||||
initial = True
|
initial = True
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('wagtailcore', '0040_page_draft_title'),
|
|
||||||
('wagtailimages', '0021_image_file_hash'),
|
('wagtailimages', '0021_image_file_hash'),
|
||||||
|
('wagtailcore', '0040_page_draft_title'),
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 07:39
|
# Generated by Django 2.0.6 on 2018-10-05 08:56
|
||||||
|
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
@ -8,14 +8,14 @@ class Migration(migrations.Migration):
|
||||||
initial = True
|
initial = True
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('user', '0001_initial'),
|
|
||||||
('books', '0001_initial'),
|
('books', '0001_initial'),
|
||||||
|
('user', '0001_initial'),
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='contentblock',
|
model_name='contentblock',
|
||||||
name='hidden_for',
|
name='hidden_for',
|
||||||
field=models.ManyToManyField(to='user.UserGroup'),
|
field=models.ManyToManyField(to='user.SchoolClass'),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ from wagtail.images.blocks import ImageChooserBlock
|
||||||
from books.blocks import TextBlock, BasicKnowledgeBlock, LinkBlock, VideoBlock, DocumentBlock, \
|
from books.blocks import TextBlock, BasicKnowledgeBlock, LinkBlock, VideoBlock, DocumentBlock, \
|
||||||
ImageUrlBlock, AssignmentBlock
|
ImageUrlBlock, AssignmentBlock
|
||||||
from core.wagtail_utils import StrictHierarchyPage
|
from core.wagtail_utils import StrictHierarchyPage
|
||||||
from user.models import UserGroup
|
from user.models import SchoolClass
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
@ -30,7 +30,7 @@ class ContentBlock(StrictHierarchyPage):
|
||||||
(BLUE, 'Blau'),
|
(BLUE, 'Blau'),
|
||||||
)
|
)
|
||||||
|
|
||||||
hidden_for = models.ManyToManyField(UserGroup)
|
hidden_for = models.ManyToManyField(SchoolClass)
|
||||||
|
|
||||||
contents = StreamField([
|
contents = StreamField([
|
||||||
('text_block', TextBlock()),
|
('text_block', TextBlock()),
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ from django.core.exceptions import ValidationError
|
||||||
from graphene import relay
|
from graphene import relay
|
||||||
|
|
||||||
from api.utils import get_object, get_errors
|
from api.utils import get_object, get_errors
|
||||||
from books.models import ContentBlock, Chapter, UserGroup
|
from books.models import ContentBlock, Chapter, SchoolClass
|
||||||
from books.schema.inputs import ContentBlockInput
|
from books.schema.inputs import ContentBlockInput
|
||||||
from books.schema.queries import ContentBlockNode
|
from books.schema.queries import ContentBlockNode
|
||||||
|
|
||||||
|
|
@ -34,7 +34,7 @@ class MutateContentBlock(relay.ClientIDMutation):
|
||||||
|
|
||||||
if visibility_list is not None:
|
if visibility_list is not None:
|
||||||
for v in visibility_list:
|
for v in visibility_list:
|
||||||
user_group = get_object(UserGroup, v.user_group_id)
|
user_group = get_object(SchoolClass, v.user_group_id)
|
||||||
if v.hidden:
|
if v.hidden:
|
||||||
content_block.hidden_for.add(user_group)
|
content_block.hidden_for.add(user_group)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 07:39
|
# Generated by Django 2.0.6 on 2018-10-05 08:56
|
||||||
|
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 07:39
|
# Generated by Django 2.0.6 on 2018-10-05 08:56
|
||||||
|
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
|
|
@ -17,6 +17,6 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='visibility',
|
model_name='visibility',
|
||||||
name='user_group',
|
name='user_group',
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.UserGroup'),
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.SchoolClass'),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
from books.models import ContentBlock
|
from books.models import ContentBlock
|
||||||
from user.models import UserGroup
|
from user.models import SchoolClass
|
||||||
|
|
||||||
|
|
||||||
class Visibility(models.Model):
|
class Visibility(models.Model):
|
||||||
|
|
@ -9,7 +9,7 @@ class Visibility(models.Model):
|
||||||
verbose_name = 'Visibility'
|
verbose_name = 'Visibility'
|
||||||
verbose_name_plural = 'Visibilities'
|
verbose_name_plural = 'Visibilities'
|
||||||
|
|
||||||
user_group = models.ForeignKey(UserGroup, blank=False, null=False, on_delete=models.CASCADE)
|
user_group = models.ForeignKey(SchoolClass, blank=False, null=False, on_delete=models.CASCADE)
|
||||||
content_block = models.ForeignKey(ContentBlock, blank=False, null=False, on_delete=models.CASCADE, related_name='visible_to')
|
content_block = models.ForeignKey(ContentBlock, blank=False, null=False, on_delete=models.CASCADE, related_name='visible_to')
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 07:39
|
# Generated by Django 2.0.6 on 2018-10-05 08:56
|
||||||
|
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 07:39
|
# Generated by Django 2.0.6 on 2018-10-05 08:56
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
|
|
@ -10,9 +10,9 @@ class Migration(migrations.Migration):
|
||||||
initial = True
|
initial = True
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('books', '0002_contentblock_hidden_for'),
|
|
||||||
('objectives', '0001_initial'),
|
('objectives', '0001_initial'),
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
('books', '0002_contentblock_hidden_for'),
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
|
|
@ -10,7 +10,7 @@ from books.blocks import ImageUrlBlock
|
||||||
from books.factories import TextBlockFactory, BasicKnowledgeBlockFactory, ImageUrlBlockFactory, LinkBlockFactory
|
from books.factories import TextBlockFactory, BasicKnowledgeBlockFactory, ImageUrlBlockFactory, LinkBlockFactory
|
||||||
from core.factories import fake, fake_paragraph
|
from core.factories import fake, fake_paragraph
|
||||||
from rooms.models import Room, RoomEntry
|
from rooms.models import Room, RoomEntry
|
||||||
from user.models import UserGroup
|
from user.models import SchoolClass
|
||||||
|
|
||||||
|
|
||||||
class RoomFactory(factory.django.DjangoModelFactory):
|
class RoomFactory(factory.django.DjangoModelFactory):
|
||||||
|
|
@ -18,7 +18,7 @@ class RoomFactory(factory.django.DjangoModelFactory):
|
||||||
model = Room
|
model = Room
|
||||||
|
|
||||||
title = factory.LazyAttribute(lambda x: fake.sentence(nb_words=random.randint(4, 8)))
|
title = factory.LazyAttribute(lambda x: fake.sentence(nb_words=random.randint(4, 8)))
|
||||||
user_group = factory.Iterator(UserGroup.objects.all())
|
user_group = factory.Iterator(SchoolClass.objects.all())
|
||||||
appearance = factory.LazyAttribute(lambda x: random.choice(['red', 'green', 'brown']))
|
appearance = factory.LazyAttribute(lambda x: random.choice(['red', 'green', 'brown']))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 07:39
|
# Generated by Django 2.0.6 on 2018-10-05 08:56
|
||||||
|
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
import django_extensions.db.fields
|
import django_extensions.db.fields
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 07:39
|
# Generated by Django 2.0.6 on 2018-10-05 08:56
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
|
|
@ -29,6 +29,6 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='room',
|
model_name='room',
|
||||||
name='user_group',
|
name='user_group',
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.UserGroup'),
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.SchoolClass'),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
@ -5,7 +5,7 @@ from wagtail.core.fields import StreamField
|
||||||
|
|
||||||
from books.blocks import ImageUrlBlock, LinkBlock, VideoBlock
|
from books.blocks import ImageUrlBlock, LinkBlock, VideoBlock
|
||||||
from books.models import ContentBlock, TextBlock
|
from books.models import ContentBlock, TextBlock
|
||||||
from user.models import UserGroup
|
from user.models import SchoolClass
|
||||||
|
|
||||||
|
|
||||||
class Room(TitleSlugDescriptionModel):
|
class Room(TitleSlugDescriptionModel):
|
||||||
|
|
@ -13,7 +13,7 @@ class Room(TitleSlugDescriptionModel):
|
||||||
verbose_name = 'Raum'
|
verbose_name = 'Raum'
|
||||||
verbose_name_plural = 'Räume'
|
verbose_name_plural = 'Räume'
|
||||||
|
|
||||||
user_group = models.ForeignKey(UserGroup, blank=False, null=False, on_delete=models.CASCADE)
|
user_group = models.ForeignKey(SchoolClass, blank=False, null=False, on_delete=models.CASCADE)
|
||||||
appearance = models.CharField(blank=True, null=False, max_length=255)
|
appearance = models.CharField(blank=True, null=False, max_length=255)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ from rooms.inputs import UpdateRoomArgument, AddRoomArgument, AddRoomEntryArgume
|
||||||
from rooms.models import Room, RoomEntry
|
from rooms.models import Room, RoomEntry
|
||||||
from rooms.schema import RoomNode, RoomEntryNode
|
from rooms.schema import RoomNode, RoomEntryNode
|
||||||
from rooms.serializers import RoomSerializer, RoomEntrySerializer
|
from rooms.serializers import RoomSerializer, RoomEntrySerializer
|
||||||
from user.models import UserGroup
|
from user.models import SchoolClass
|
||||||
|
|
||||||
|
|
||||||
class MutateRoom(relay.ClientIDMutation):
|
class MutateRoom(relay.ClientIDMutation):
|
||||||
|
|
@ -16,7 +16,7 @@ class MutateRoom(relay.ClientIDMutation):
|
||||||
@classmethod
|
@classmethod
|
||||||
def mutate_and_get_payload(cls, *args, **kwargs):
|
def mutate_and_get_payload(cls, *args, **kwargs):
|
||||||
room_data = kwargs.get('room')
|
room_data = kwargs.get('room')
|
||||||
user_group = get_object(UserGroup, room_data.get('user_group').get('id'))
|
user_group = get_object(SchoolClass, room_data.get('user_group').get('id'))
|
||||||
room_data['user_group'] = user_group.id
|
room_data['user_group'] = user_group.id
|
||||||
if room_data.get('id') is not None:
|
if room_data.get('id') is not None:
|
||||||
room = get_object(Room, room_data['id'])
|
room = get_object(Room, room_data['id'])
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.auth.admin import UserAdmin
|
from django.contrib.auth.admin import UserAdmin
|
||||||
|
|
||||||
from .models import User, UserGroup, School, SchoolRole, UserSchoolRole
|
from .models import User, SchoolClass, School, SchoolRole, UserSchoolRole
|
||||||
|
|
||||||
admin.site.register(User, UserAdmin)
|
admin.site.register(User, UserAdmin)
|
||||||
|
|
||||||
|
|
||||||
@admin.register(UserGroup)
|
@admin.register(SchoolClass)
|
||||||
class UserGroupAdmin(admin.ModelAdmin):
|
class UserGroupAdmin(admin.ModelAdmin):
|
||||||
list_display = ('id', 'name', 'year')
|
list_display = ('id', 'name', 'year')
|
||||||
list_filter = ('year',)
|
list_filter = ('year',)
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import random
|
||||||
|
|
||||||
import factory
|
import factory
|
||||||
|
|
||||||
from user.models import UserGroup
|
from user.models import SchoolClass
|
||||||
|
|
||||||
class_types = ['DA', 'KV', 'INF', 'EE']
|
class_types = ['DA', 'KV', 'INF', 'EE']
|
||||||
class_suffix = ['A', 'B', 'C', 'D', 'E']
|
class_suffix = ['A', 'B', 'C', 'D', 'E']
|
||||||
|
|
@ -14,7 +14,7 @@ class_suffix = ['A', 'B', 'C', 'D', 'E']
|
||||||
|
|
||||||
class UserGroupFactory(factory.django.DjangoModelFactory):
|
class UserGroupFactory(factory.django.DjangoModelFactory):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserGroup
|
model = SchoolClass
|
||||||
|
|
||||||
name = factory.Sequence(lambda n: '{}{}{}'.format(random.choice(class_types), '18', class_suffix[n % len(class_suffix)]))
|
name = factory.Sequence(lambda n: '{}{}{}'.format(random.choice(class_types), '18', class_suffix[n % len(class_suffix)]))
|
||||||
year = factory.LazyAttribute(lambda x: random.choice([2017, 2018, 2019]))
|
year = factory.LazyAttribute(lambda x: random.choice([2017, 2018, 2019]))
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 07:39
|
# Generated by Django 2.0.6 on 2018-10-05 08:56
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
import django.contrib.auth.models
|
import django.contrib.auth.models
|
||||||
import django.contrib.auth.validators
|
import django.contrib.auth.validators
|
||||||
import django.core.validators
|
import django.core.validators
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
import django.utils.timezone
|
import django.utils.timezone
|
||||||
|
import user.models
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
@ -44,13 +46,49 @@ class Migration(migrations.Migration):
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='UserGroup',
|
name='School',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(max_length=100, verbose_name='Name')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='SchoolClass',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('name', models.CharField(max_length=100)),
|
('name', models.CharField(max_length=100)),
|
||||||
('year', models.PositiveIntegerField(validators=[django.core.validators.MinValueValidator(1900), django.core.validators.MaxValueValidator(2200)])),
|
('year', models.PositiveIntegerField(validators=[django.core.validators.MinValueValidator(1900), django.core.validators.MaxValueValidator(2200)])),
|
||||||
('is_deleted', models.BooleanField(default=False)),
|
('is_deleted', models.BooleanField(default=False)),
|
||||||
|
('school', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.School')),
|
||||||
('users', models.ManyToManyField(to=settings.AUTH_USER_MODEL)),
|
('users', models.ManyToManyField(to=settings.AUTH_USER_MODEL)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='SchoolRole',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('key', models.CharField(max_length=100, verbose_name='Key')),
|
||||||
|
('name', models.CharField(max_length=100, verbose_name='Name')),
|
||||||
|
('role_permission', models.ManyToManyField(blank=True, related_name='role_set', related_query_name='role', to='auth.Permission', verbose_name='Role permission')),
|
||||||
|
('school', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.School')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'permissions': (('can_create_contentblocks', 'Can create new contentblocks'),),
|
||||||
|
},
|
||||||
|
managers=[
|
||||||
|
('objects', user.models.SchoolRoleManager()),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='UserSchoolRole',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('school_role', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.SchoolRole')),
|
||||||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name='schoolrole',
|
||||||
|
unique_together={('key', 'school')},
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 12:46
|
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
import user.models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('auth', '0009_alter_user_last_name_max_length'),
|
|
||||||
('user', '0001_initial'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='School',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('name', models.CharField(max_length=100, verbose_name='Name')),
|
|
||||||
('old_id', models.IntegerField(blank=True, null=True)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='SchoolRole',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('key', models.CharField(max_length=100, verbose_name='Key')),
|
|
||||||
('name', models.CharField(max_length=100, verbose_name='Name')),
|
|
||||||
('role_permission', models.ManyToManyField(blank=True, related_name='role_set', related_query_name='role', to='auth.Permission', verbose_name='Role permission')),
|
|
||||||
('school', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.School')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'permissions': (('can_create_contentblocks', 'Can create new contentblocks'),),
|
|
||||||
},
|
|
||||||
managers=[
|
|
||||||
('objects', user.models.SchoolRoleManager()),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='UserSchoolRole',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('school_role', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.SchoolRole')),
|
|
||||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.AlterUniqueTogether(
|
|
||||||
name='schoolrole',
|
|
||||||
unique_together={('key', 'school')},
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 13:13
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('user', '0002_auto_20181004_1246'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='school',
|
|
||||||
name='old_id',
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
# Generated by Django 2.0.6 on 2018-10-04 13:47
|
|
||||||
|
|
||||||
import django.db.models.deletion
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('user', '0003_remove_school_old_id'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='usergroup',
|
|
||||||
name='school',
|
|
||||||
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='user.School'),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -43,7 +43,7 @@ class School(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class UserGroup(models.Model):
|
class SchoolClass(models.Model):
|
||||||
name = models.CharField(max_length=100, blank=False, null=False)
|
name = models.CharField(max_length=100, blank=False, null=False)
|
||||||
year = models.PositiveIntegerField(blank=False, null=False, validators=[MinValueValidator(1900), MaxValueValidator(2200)])
|
year = models.PositiveIntegerField(blank=False, null=False, validators=[MinValueValidator(1900), MaxValueValidator(2200)])
|
||||||
is_deleted = models.BooleanField(blank=False, null=False, default=False)
|
is_deleted = models.BooleanField(blank=False, null=False, default=False)
|
||||||
|
|
@ -51,7 +51,7 @@ class UserGroup(models.Model):
|
||||||
school = models.ForeignKey('School', null=False, on_delete=models.CASCADE)
|
school = models.ForeignKey('School', null=False, on_delete=models.CASCADE)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return 'UserGroup {}-{}-{}'.format(self.id, self.name, self.year)
|
return 'SchoolClass {}-{}-{}'.format(self.id, self.name, self.year)
|
||||||
|
|
||||||
|
|
||||||
class SchoolRoleManager(models.Manager):
|
class SchoolRoleManager(models.Manager):
|
||||||
|
|
@ -202,7 +202,7 @@ class UserSchoolRole(models.Model):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def groups(self):
|
def groups(self):
|
||||||
return UserGroup.objects.filter(Q(school_id=self.school_role.school.id) & Q(users=self.user.id))
|
return SchoolClass.objects.filter(Q(school_id=self.school_role.school.id) & Q(users=self.user.id))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def group_ids(self):
|
def group_ids(self):
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ from graphene import relay
|
||||||
from graphene_django import DjangoObjectType
|
from graphene_django import DjangoObjectType
|
||||||
from graphene_django.filter import DjangoFilterConnectionField
|
from graphene_django.filter import DjangoFilterConnectionField
|
||||||
|
|
||||||
from user.models import UserGroup, User
|
from user.models import SchoolClass, User
|
||||||
|
|
||||||
|
|
||||||
class UserNode(DjangoObjectType):
|
class UserNode(DjangoObjectType):
|
||||||
|
|
@ -31,7 +31,7 @@ class UserGroupNode(DjangoObjectType):
|
||||||
pk = graphene.Int()
|
pk = graphene.Int()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserGroup
|
model = SchoolClass
|
||||||
filter_fields = ['name']
|
filter_fields = ['name']
|
||||||
interfaces = (relay.Node,)
|
interfaces = (relay.Node,)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue