Made group name unique and improved group creation functionality

This commit is contained in:
Keannu Christian Bernasol 2023-09-28 21:03:34 +08:00
parent 032ed36af6
commit c5f04328e5
7 changed files with 38 additions and 24 deletions

View file

@ -23,7 +23,7 @@ class CustomStudentStatusForm(forms.ModelForm):
# Filter the Subject objects by these names
subjects = Subject.objects.filter(name__in=subject_instance_names)
self.fields['subject'].queryset = subjects
# To fix: study group is still empty despite student already joined one
subject = forms.ModelChoiceField(
queryset=Subject.objects.none(), required=False)

View file

@ -4,6 +4,7 @@ from subjects.models import Subject
from django.contrib.gis.geos import Point
from drf_extra_fields.geo_fields import PointField
from landmarks.models import Landmark
from study_groups.models import StudyGroup
class StudentStatusSerializer(serializers.ModelSerializer):
@ -16,6 +17,8 @@ class StudentStatusSerializer(serializers.ModelSerializer):
timestamp = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
active = serializers.BooleanField(required=True)
study_group = serializers.SlugRelatedField(queryset=StudyGroup.objects.all(
), many=False, slug_field='name', required=False, allow_null=True)
class Meta:
model = StudentStatus
@ -40,7 +43,7 @@ class StudentStatusSerializer(serializers.ModelSerializer):
validated_data['subject'] = None
validated_data['landmark'] = None
validated_data['study_group'] = None
else:
elif ('active' in validated_data):
if 'subject' not in validated_data:
raise serializers.ValidationError(
{'subject': 'This field may not be empty if active is true'})
@ -62,6 +65,8 @@ class StudentStatusLocationSerializer(serializers.ModelSerializer):
distance = serializers.SerializerMethodField()
landmark = serializers.SlugRelatedField(
queryset=Landmark.objects.all(), many=False, slug_field='name', required=False, allow_null=True)
study_group = serializers.SlugRelatedField(queryset=StudyGroup.objects.all(
), many=False, slug_field='name', required=False, allow_null=True)
class Meta:
model = StudentStatus