-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4 from MykytaMaliarenko/dev
0.3
- Loading branch information
Showing
24 changed files
with
710 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
from rest_framework.pagination import PageNumberPagination | ||
|
||
|
||
class XSResultsSetPagination(PageNumberPagination): | ||
page_size = 5 | ||
page_size_query_param = 'page_size' | ||
max_page_size = 20 | ||
|
||
|
||
class SMResultsSetPagination(PageNumberPagination): | ||
page_size = 20 | ||
page_size_query_param = 'page_size' | ||
max_page_size = 80 | ||
|
||
|
||
class MDResultsSetPagination(PageNumberPagination): | ||
page_size = 80 | ||
page_size_query_param = 'page_size' | ||
max_page_size = 200 | ||
|
||
|
||
class LGResultsSetPagination(PageNumberPagination): | ||
page_size = 200 | ||
page_size_query_param = 'page_size' | ||
max_page_size = 500 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# Generated by Django 3.0.7 on 2020-07-20 11:44 | ||
|
||
from django.db import migrations, models | ||
import django.db.models.deletion | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
initial = True | ||
|
||
dependencies = [ | ||
('rooms', '0001_initial'), | ||
('groups', '0001_initial'), | ||
('teachers', '0001_initial'), | ||
('timeslots', '0001_initial'), | ||
] | ||
|
||
operations = [ | ||
migrations.CreateModel( | ||
name='Class', | ||
fields=[ | ||
('id', models.IntegerField(primary_key=True, serialize=False)), | ||
('name', models.CharField(max_length=200)), | ||
('type', models.CharField(max_length=10)), | ||
('day_of_week', models.IntegerField()), | ||
('week_number', models.IntegerField()), | ||
('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='classes', to='groups.Group')), | ||
('room', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='classes', to='rooms.Room')), | ||
('teacher', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='classes', to='teachers.Teacher')), | ||
('time_slot', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='classes', to='timeslots.TimeSlot')), | ||
], | ||
options={ | ||
'db_table': 'class', | ||
}, | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# Generated by Django 3.0.7 on 2020-07-20 11:57 | ||
|
||
from django.db import migrations, models | ||
from djangoapps.classes.models import Class | ||
|
||
|
||
def transfer_old_group_relation(apps, schema_editor): | ||
class_model: Class = apps.get_model('classes', 'Class') | ||
for university_class in class_model.objects.all(): | ||
university_class.groups_new.add(university_class.group) | ||
university_class.save() | ||
|
||
|
||
class Migration(migrations.Migration): | ||
""" | ||
Change relation between class-group from many-to-one --> many-to-many | ||
""" | ||
|
||
dependencies = [ | ||
('groups', '0001_initial'), | ||
('classes', '0001_initial'), | ||
] | ||
|
||
operations = [ | ||
migrations.AddField( | ||
model_name='class', | ||
name='groups_new', | ||
field=models.ManyToManyField(related_name='classes_new', to='groups.Group'), | ||
), | ||
|
||
migrations.RunPython(transfer_old_group_relation), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Generated by Django 3.0.7 on 2020-07-22 09:47 | ||
|
||
from django.db import migrations | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
('groups', '0001_initial'), | ||
('classes', '0002_class_groups_new'), | ||
] | ||
|
||
operations = [ | ||
migrations.RemoveField( | ||
model_name='class', | ||
name='group', | ||
), | ||
migrations.RenameField( | ||
model_name='class', | ||
old_name='groups_new', | ||
new_name='groups', | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,82 @@ | ||
from django.test import TestCase | ||
import json | ||
|
||
# Create your tests here. | ||
from django.urls import reverse | ||
from rest_framework import status | ||
from rest_framework.test import APITestCase | ||
|
||
from djangoapps.tests_data_setup import generate_classes | ||
|
||
from djangoapps.groups.models import Group | ||
from djangoapps.classes.models import Class | ||
from djangoapps.rooms.models import Room | ||
from djangoapps.teachers.models import Teacher | ||
|
||
|
||
class ClassesTest(APITestCase): | ||
|
||
@classmethod | ||
def setUpTestData(cls): | ||
test_group = Group( | ||
id=0, | ||
name='км-92', | ||
) | ||
Group.save(test_group) | ||
|
||
test_room = Room( | ||
id=0, | ||
name='0', | ||
university_building=0, | ||
) | ||
Room.save(test_room) | ||
|
||
test_teacher = Teacher( | ||
id=0, | ||
name='teacher', | ||
official_name='off teacher', | ||
) | ||
Teacher.save(test_teacher) | ||
|
||
classes = generate_classes(1, | ||
groups=[test_group], | ||
rooms=[test_room], | ||
teachers=[test_teacher]) | ||
for test_class in classes: | ||
Class.save(test_class) | ||
|
||
def test_get_classes_by_group_name(self): | ||
""" | ||
Testing ClassesByGroupList view by name. | ||
""" | ||
url = reverse('classes-by-group', kwargs={'group': 'км-92'}) | ||
response = self.client.get(url, format='json') | ||
self.default_classes_assert(response) | ||
|
||
def test_get_classes_by_group_id(self): | ||
""" | ||
Testing ClassesByGroupList view by id. | ||
""" | ||
url = reverse('classes-by-group', kwargs={'group': 0}) | ||
response = self.client.get(url, format='json') | ||
self.default_classes_assert(response) | ||
|
||
def test_get_classes_by_room_id(self): | ||
""" | ||
Testing ClassesByRoom view. | ||
""" | ||
url = reverse('classes-by-room', kwargs={'room': 0}) | ||
response = self.client.get(url, format='json') | ||
self.default_classes_assert(response) | ||
|
||
def test_get_classes_by_teacher_id(self): | ||
""" | ||
Testing ClassesByTeacher view. | ||
""" | ||
url = reverse('classes-by-teacher', kwargs={'teacher': 0}) | ||
response = self.client.get(url, format='json') | ||
self.default_classes_assert(response) | ||
|
||
def default_classes_assert(self, resp): | ||
json_response = json.loads(resp.content) | ||
self.assertEqual(resp.status_code, status.HTTP_200_OK) | ||
self.assertEqual(type(json_response), list) | ||
self.assertGreater(len(json_response), 0) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.