-
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.
- Loading branch information
Showing
21 changed files
with
266 additions
and
17 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,26 @@ | ||
name: Django CI | ||
|
||
on: | ||
push: | ||
branches: [ "develop" ] | ||
pull_request: | ||
branches: [ "develop" ] | ||
|
||
jobs: | ||
build: | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up Python 3.10 | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: '3.10' | ||
- name: Install Dependencies | ||
run: | | ||
python3 -m pip install --upgrade pip | ||
pip install -r requirements.txt | ||
- name: Run Tests | ||
run: | | ||
python manage.py test |
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 |
---|---|---|
|
@@ -3,4 +3,5 @@ projectenv | |
/venv/ | ||
**/__pycache__/ | ||
migrations | ||
.env | ||
.env | ||
htmlcov |
Binary file not shown.
Binary file modified
BIN
-5 Bytes
(100%)
...igrations/__pycache__/0002_remove_student_id_remove_student_name_and_more.cpython-311.pyc
Binary file not shown.
Binary file modified
BIN
-5 Bytes
(99%)
api/migrations/__pycache__/0003_alter_student_subjects.cpython-311.pyc
Binary file not shown.
Binary file modified
BIN
-5 Bytes
(99%)
api/migrations/__pycache__/0004_alter_student_subjects.cpython-311.pyc
Binary file not shown.
Binary file modified
BIN
-5 Bytes
(99%)
api/migrations/__pycache__/0005_alter_vak_teachers.cpython-311.pyc
Binary file not shown.
Binary file modified
BIN
-5 Bytes
(99%)
...migrations/__pycache__/0006_remove_lesgever_id_alter_lesgever_lesgever_id.cpython-311.pyc
Binary file not shown.
Binary file modified
BIN
-5 Bytes
(100%)
api/migrations/__pycache__/0007_alter_lesgever_subjects_alter_vak_teachers.cpython-311.pyc
Binary file not shown.
Binary file not shown.
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,67 @@ | ||
from django.db import models | ||
from django.contrib.auth.models import User | ||
|
||
|
||
class Student(models.Model): | ||
user = models.OneToOneField(User, on_delete=models.CASCADE,primary_key=True,default=None) | ||
subjects = models.ManyToManyField('Vak', related_name='students_enrolled') | ||
|
||
def __str__(self): | ||
return self.user.first_name | ||
|
||
class Lesgever(models.Model): | ||
lesgever_id = models.AutoField(primary_key=True) | ||
name = models.CharField(max_length=100) | ||
email = models.EmailField(default=False) | ||
subjects = models.ManyToManyField('Vak', related_name='lesgevers_enrolled', blank=True) | ||
is_admin = models.BooleanField(default=False) | ||
|
||
def __str__(self): | ||
return self.name | ||
|
||
class Vak(models.Model): | ||
vak_id = models.AutoField(primary_key=True) | ||
name = models.CharField(max_length=100) | ||
students = models.ManyToManyField('Student', related_name='subjects_enrolled', blank=True) | ||
teachers = models.ManyToManyField('Lesgever', related_name='subjects_teachers') | ||
projects = models.ManyToManyField('Project', related_name='subjects_projects', blank=True) | ||
|
||
def __str__(self): | ||
return self.name | ||
|
||
class Groep(models.Model): | ||
group_id = models.AutoField(primary_key=True) | ||
students = models.ManyToManyField('Student', related_name='groups_students', blank=True) | ||
project = models.ForeignKey('Project', on_delete=models.CASCADE) | ||
|
||
def __str__(self): | ||
return f"Group {self.group_id}" | ||
|
||
class Project(models.Model): | ||
project_id = models.AutoField(primary_key=True) | ||
titel = models.CharField(max_length=100) | ||
description = models.TextField() | ||
opgavebestanden = models.FileField(upload_to='opgave/') | ||
vak = models.ForeignKey(Vak, on_delete=models.CASCADE) | ||
deadline = models.DateTimeField(null=True) | ||
# indiening restricties | ||
|
||
def __str__(self): | ||
return self.titel | ||
|
||
class Indiening(models.Model): | ||
indiening_id = models.AutoField(primary_key=True) | ||
indiener = models.ForeignKey('Groep', on_delete=models.CASCADE) | ||
indieningsbestanden = models.FileField(upload_to='uploads/') | ||
tijdstip = models.DateTimeField(null=False) | ||
|
||
def __str__(self): | ||
return self.tijdstip | ||
|
||
class Score(models.Model): | ||
score = models.SmallIntegerField() | ||
indiening = models.ForeignKey('Indiening', on_delete=models.CASCADE) | ||
groep = models.ForeignKey('Groep', on_delete=models.CASCADE) | ||
|
||
def __str__(self): | ||
return self.score |
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,120 @@ | ||
from datetime import datetime | ||
from rest_framework import serializers | ||
from rest_framework.renderers import JSONRenderer | ||
import io | ||
from rest_framework.parsers import JSONParser | ||
|
||
from .models import Student, Lesgever, Vak, Groep, Project, Indiening, Score | ||
|
||
class StudentSerializer(serializers.ModelSerializer): | ||
class Meta: | ||
model = Student | ||
fields = '__all__' | ||
|
||
def create(self, validated_data): | ||
return Student.objects.create(**validated_data) | ||
|
||
def update(self, instance, validated_data): | ||
# Update the subjects list | ||
subjects_data = validated_data.pop('subjects', None) | ||
if subjects_data is not None: | ||
instance.subjects.clear() # Remove existing subjects | ||
for subject_data in subjects_data: | ||
instance.subjects.add(subject_data) | ||
|
||
instance.save() | ||
return instance | ||
|
||
class LesgeverSerializer(serializers.ModelSerializer): | ||
class Meta: | ||
model = Lesgever | ||
fields = '__all__' | ||
|
||
def create(self, validated_data): | ||
return Lesgever.objects.create(**validated_data) | ||
|
||
def update(self, instance, validated_data): | ||
instance.name = validated_data.get('name', instance.name) | ||
# Update other fields similarly | ||
instance.save() | ||
return instance | ||
|
||
class VakSerializer(serializers.ModelSerializer): | ||
class Meta: | ||
model = Vak | ||
fields = '__all__' | ||
|
||
def create(self, validated_data): | ||
return Vak.objects.create(**validated_data) | ||
|
||
def update(self, instance, validated_data): | ||
instance.name = validated_data.get('name', instance.name) | ||
# Update other fields similarly | ||
instance.save() | ||
return instance | ||
|
||
class GroepSerializer(serializers.ModelSerializer): | ||
class Meta: | ||
model = Groep | ||
fields = '__all__' | ||
|
||
def create(self, validated_data): | ||
return Groep.objects.create(**validated_data) | ||
|
||
def update(self, instance, validated_data): | ||
# Implement update method for Groep model | ||
pass | ||
|
||
class ProjectSerializer(serializers.ModelSerializer): | ||
class Meta: | ||
model = Project | ||
fields = '__all__' | ||
|
||
def create(self, validated_data): | ||
return Project.objects.create(**validated_data) | ||
|
||
def update(self, instance, validated_data): | ||
# Implement update method for Project model | ||
pass | ||
|
||
class IndieningSerializer(serializers.ModelSerializer): | ||
class Meta: | ||
model = Indiening | ||
fields = '__all__' | ||
|
||
def create(self, validated_data): | ||
return Indiening.objects.create(**validated_data) | ||
|
||
def update(self, instance, validated_data): | ||
# Implement update method for Indiening model | ||
pass | ||
|
||
class ScoreSerializer(serializers.ModelSerializer): | ||
class Meta: | ||
model = Score | ||
fields = '__all__' | ||
|
||
def create(self, validated_data): | ||
return Score.objects.create(**validated_data) | ||
|
||
def update(self, instance, validated_data): | ||
# Implement update method for Score model | ||
pass | ||
|
||
|
||
|
||
# gebruiksvoorbeelden | ||
|
||
# serializing objects | ||
#serializer = ProfSerializer(prof) | ||
#serializer.data | ||
#json = JSONRenderer().render(serializer.data) | ||
#json | ||
|
||
#deserializing objects | ||
#stream = io.BytesIO(json) | ||
#data = JSONParser().parse(stream) | ||
#serializer = ProfSerializer(data=data) | ||
#serializer.is_valid() | ||
#serializer.validated_data | ||
#serializer.save() |
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,3 @@ | ||
[flake8] | ||
exclude = .git,*migrations,*venv* | ||
max-line-length = 119 |
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,12 @@ | ||
from django.test import TestCase | ||
|
||
class ModelTesting(TestCase): | ||
|
||
def setUp(self): | ||
pass | ||
#bv: self.api = Score.objects.create(score=10, ...) | ||
|
||
def test_post_model(self): | ||
#d = self.api | ||
#self.assertTrue(isinstance(d, Score)) | ||
self.assertTrue(True) |
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
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 |
---|---|---|
|
@@ -4,3 +4,5 @@ psycopg2-binary | |
djangorestframework~=3.14.0 | ||
django-auth-adfs | ||
python-dotenv | ||
coverage | ||
flake8 |