Skip to content

Commit

Permalink
fixtures, automatic group_nr, structuring /uploads
Browse files Browse the repository at this point in the history
  • Loading branch information
PJDeSmijter committed Mar 7, 2024
1 parent 685e2ba commit 88a5c0e
Show file tree
Hide file tree
Showing 10 changed files with 290 additions and 10 deletions.
186 changes: 186 additions & 0 deletions backend/fixtures.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
[
{
"model": "users.user",
"pk": 1,
"fields": {
"email": "Kermit@gmail.com",
"first_name": "Kermit",
"last_name": "The Frog",
"username": "Kermit The Frog"
}
},
{
"model": "users.user",
"pk": 2,
"fields": {
"email": "miss@gmail.com",
"first_name": "Miss",
"last_name": "Piggie",
"username": "Miss Piggie"
}
},
{
"model": "users.user",
"pk": 3,
"fields": {
"email": "fozzy@gmail.com",
"first_name": "Fozzy",
"last_name": "Bear",
"username": "Fozzy Bear"
}
},
{
"model": "users.user",
"pk": 4,
"fields": {
"email": "gonzo@gmail.com",
"first_name": "Gonzo",
"last_name": "TheGreat",
"username": "Gonzo The Great"
}
},
{
"model": "users.user",
"pk": 5,
"fields": {
"email": "rowl@gmail.com",
"first_name": "Rowl",
"last_name": "TheDog",
"username": "RowlTheDog"
}
},
{
"model": "courses.course",
"pk": 1,
"fields": {
"name": "Math",
"description": "Mathematics"
}
},
{
"model": "courses.course",
"pk": 2,
"fields": {
"name": "English",
"description": "The English Language"
}
},
{
"model": "users.student",
"pk": 1,
"fields": {
"number": 1,
"course": [
1,
2
],
"id": 1
}
},
{
"model": "users.student",
"pk": 2,
"fields": {
"number": 2,
"course": [
1,
2
],
"id": 2
}
},
{
"model": "users.student",
"pk": 3,
"fields": {
"number": 3,
"course": [
1
],
"id": 3
}
},
{
"model": "users.teacher",
"pk": 1,
"fields": {
"course": [
1
],
"id": 4,
"is_admin": true,
"is_assistant": false
}
},
{
"model": "users.teacher",
"pk": 2,
"fields": {
"course": [
2
],
"id": 5,
"is_admin": true,
"is_assistant": false
}
},
{
"model": "projects.project",
"pk": 1,
"fields": {
"course_id": 1,
"name": "Math project 1",
"description": "2 + 2 = 4"
}
},
{
"model": "projects.project",
"pk": 2,
"fields": {
"course_id": 1,
"name": "Math project 2",
"description": "4 - 1 = 3"
}
},
{
"model": "groups.group",
"pk": 1,
"fields": {
"project_id": 1,
"student": [
1,
2
],
"feedback": "feedback"
}
},
{
"model": "groups.group",
"pk": 1,
"fields": {
"project_id": 1,
"student": [
3
],
"feedback": "feedback"
}
},
{
"model": "submissions.submissions",
"pk": 1,
"fields": {
"group_id": 1,
"submission_nr": 1,
"timestamp": "2023-04-01T00:00:00Z"
}
},
{
"model": "submissions.submissions",
"pk": 2,
"fields": {
"group_id": 1,
"submission_nr": 1,
"timestamp": "2023-03-01T00:00:00Z"
}
}
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 5.0.2 on 2024-03-07 20:30

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('groups', '0002_initial'),
]

operations = [
migrations.AlterField(
model_name='group',
name='group_nr',
field=models.IntegerField(blank=True, null=True),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 5.0.2 on 2024-03-07 20:36

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('groups', '0003_alter_group_group_nr'),
]

operations = [
migrations.AlterField(
model_name='group',
name='final_score',
field=models.IntegerField(blank=True, null=True),
),
]
13 changes: 11 additions & 2 deletions backend/pigeonhole/apps/groups/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,23 @@

class Group(models.Model):
group_id = models.BigAutoField(primary_key=True)
group_nr = models.IntegerField()
group_nr = models.IntegerField(blank=True, null=True)
project_id = models.ForeignKey(Project, on_delete=models.CASCADE)
student = models.ManyToManyField(Student)
feedback = models.TextField(null=True)
final_score = models.IntegerField()
final_score = models.IntegerField(null=True, blank=True)

objects = models.Manager()

def save(self, *args, **kwargs):
if not self.group_id:
if self.group_nr is None:
max_group_nr = Group.objects.filter(
project_id=self.project_id).aggregate(
models.Max('group_nr'))['group_nr__max'] or 0
self.group_nr = max_group_nr + 1
super().save(*args, **kwargs)


class GroupSerializer(serializers.ModelSerializer):
class Meta:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Generated by Django 5.0.2 on 2024-03-07 20:26

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('submissions',
'0003_alter_submissions_file_alter_submissions_output_test'),
]

operations = [
migrations.AlterField(
model_name='submissions',
name='file',
field=models.FileField(
max_length=255,
null=True,
upload_to='uploads/submissions/files/<django.db.models.fields.'
'related.ForeignKey>/<django.db.models.fields.IntegerField>/'),
),
migrations.AlterField(
model_name='submissions',
name='output_test',
field=models.FileField(
max_length=255,
null=True,
upload_to='uploads/submissions/outputs/<django.db.models.fields.'
'related.ForeignKey>/<django.db.models.fields.IntegerField>'
'/output_test/'),
),
]
4 changes: 2 additions & 2 deletions backend/pigeonhole/apps/submissions/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ class Submissions(models.Model):
submission_id = models.BigAutoField(primary_key=True)
group_id = models.ForeignKey(Group, on_delete=models.CASCADE, blank=False)
submission_nr = models.IntegerField()
file = models.FileField(upload_to='uploads/' + str(group_id) + '/' + str(submission_nr) + '/',
file = models.FileField(upload_to='uploads/submissions/files/' + str(group_id) + '/' + str(submission_nr) + '/',
null=True, blank=False, max_length=255)
timestamp = models.DateTimeField(auto_now_add=True)
output_test = models.FileField(upload_to='uploads/' + str(group_id) + '/' + str(submission_nr) + '/output_test/',
output_test = models.FileField(upload_to='uploads/submissions/outputs/' + str(group_id) + '/' + str(submission_nr) + '/output_test/',
null=True, blank=False, max_length=255)

objects = models.Manager()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 5.0.2 on 2024-03-07 18:53

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('users', '0001_initial'),
]

operations = [
migrations.RenameField(
model_name='teacher',
old_name='is_assistent',
new_name='is_assistant',
),
]
2 changes: 1 addition & 1 deletion backend/pigeonhole/apps/users/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class Teacher(models.Model):
id = models.ForeignKey(User, on_delete=models.CASCADE, primary_key=True)
course = models.ManyToManyField(Course)
is_admin = models.BooleanField(default=False)
is_assistent = models.BooleanField(default=False)
is_assistant = models.BooleanField(default=False)

objects = models.Manager()

Expand Down
2 changes: 0 additions & 2 deletions backend/pigeonhole/tests/test_models/test_submissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,7 @@ def setUp(self):

# Create group
group = Group.objects.create(
group_nr=1,
project_id=project,
final_score=0,
)

# Add student to the group
Expand Down
6 changes: 3 additions & 3 deletions backend/pigeonhole/tests/test_models/test_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,12 @@ def test_teacher(self):
teacher = Teacher.objects.get(id__email="teacher@gmail.com")
self.assertEqual(teacher.is_admin, True)

self.assertEqual(teacher.is_assistent, False)
self.assertEqual(teacher.is_assistant, False)
# update teacher is_assistent
teacher.is_assistent = True
teacher.is_assistant = True
teacher.save()
teacher = Teacher.objects.get(id__email="teacher@gmail.com")
self.assertEqual(teacher.is_assistent, True)
self.assertEqual(teacher.is_assistant, True)
# delete teacher
teacher.delete()
with self.assertRaises(Teacher.DoesNotExist):
Expand Down

0 comments on commit 88a5c0e

Please sign in to comment.