Source code for endoreg_db.models.administration.center.center

from django.db import models
from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from ...medical import Endoscope, EndoscopyProcessor
    from ...administration import (
        FirstName, LastName,
        CenterProduct,
        CenterWaste, CenterResource
    )
    from ...media import AnonymExaminationReport, AnonymHistologyReport

class CenterManager(models.Manager):
    def get_by_natural_key(self, name) -> "Center":
        return self.get(name=name)


[docs] class Center(models.Model): objects = CenterManager() # import_id = models.IntegerField(primary_key=True) name = models.CharField(max_length=255) name_de = models.CharField(max_length=255, blank=True, null=True) name_en = models.CharField(max_length=255, blank=True, null=True) first_names = models.ManyToManyField( to="FirstName", related_name="centers", ) last_names = models.ManyToManyField("LastName", related_name="centers") if TYPE_CHECKING: center_products: models.QuerySet["CenterProduct"] center_resources: models.QuerySet["CenterResource"] center_wastes: models.QuerySet["CenterWaste"] endoscopy_processors: models.QuerySet["EndoscopyProcessor"] endoscopes: models.QuerySet["Endoscope"] first_names: models.QuerySet["FirstName"] last_names: models.QuerySet["LastName"] anonymexaminationreport_set: models.QuerySet["AnonymExaminationReport"] anonymhistologyreport_set: models.QuerySet["AnonymHistologyReport"] objects: CenterManager
[docs] @classmethod def get_by_name(cls, name): return cls.objects.get(name=name)
[docs] def natural_key(self) -> tuple[str]: return (self.name,)
def __str__(self) -> str: return str(object=self.name)
[docs] def get_first_names(self): return self.first_names.all()
[docs] def get_last_names(self): return self.last_names.all()
[docs] def get_endoscopes(self): return self.endoscopes.all()