Skip to content

Commit

Permalink
[api] oprava cisla lekce v ucasti pro lekce jednotlivcu
Browse files Browse the repository at this point in the history
zobrazovala se -1, ale nemelo se zobrazovat nic (tedy se zasila None, ktere se ale pri serializaci odstrani spolu s klicem "number")
  • Loading branch information
rodlukas committed Jun 26, 2020
1 parent 7897da0 commit aaeb1d2
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
https://groups.google.com/d/msg/django-rest-framework/5twgbh427uQ/4oEra8ogBQAJ
"""

from typing import Union, cast, Any
from typing import Union, cast

from django.core.exceptions import ObjectDoesNotExist
from django.core.validators import RegexValidator
Expand Down Expand Up @@ -258,11 +258,14 @@ class Meta:
model = Attendance
exclude = ("lecture",) # ochrana proti cykleni

def __init__(self, *args: Any, **kwargs: Any):
super(AttendanceSerializer, self).__init__(*args, **kwargs)

if self.instance and not self.instance.lecture.group:
self.fields.pop("number")
def to_representation(self, instance: Attendance) -> dict:
"""
Při serializaci odstraní "number" pro lekce jednotlivců (využívá se jen pro skupiny).
"""
ret = super().to_representation(instance)
if not instance.lecture.group:
ret.pop("number")
return ret

def update(self, instance: Attendance, validated_data: dict) -> Attendance: # type: ignore
"""
Expand Down Expand Up @@ -290,15 +293,15 @@ def validate(self, data: dict) -> dict:
return data

@staticmethod
def get_number(obj: Attendance) -> Union[int, str]:
def get_number(obj: Attendance) -> Union[int, str, None]:
"""
Vypočítá pořadové číslo lekce pro daného klienta skupiny.
Pro jednotlivce se pole nezobrazuje, tedy neni treba nic pocitat.
Pokud se nedá číslo dopočítat kvůli chybějícímu výchozímu stavu účasti, vrátí upozornění.
"""
# pro lekce jednotlivcu pole neukazujeme, tedy nic neni treba pocitat
if not obj.lecture.group:
return -1
return None
# proved vypocet poradoveho cisla pro ucastnika skupinove lekce
try:
# je potreba najit vychozi stav
Expand Down

0 comments on commit aaeb1d2

Please sign in to comment.