示例#1
0
class Koordinat(FikspunktregisterObjekt):
    __tablename__ = "koordinat"
    sridid = Column(Integer, ForeignKey("sridtype.sridid"), nullable=False)
    srid = relationship("Srid", lazy="joined")
    sx = Column(Float)
    sy = Column(Float)
    sz = Column(Float)
    t = Column(TIMESTAMP(timezone=True), default=func.current_timestamp())
    transformeret = Column(StringEnum(Boolean),
                           nullable=False,
                           default=Boolean.FALSE)
    _fejlmeldt = Column("fejlmeldt",
                        StringEnum(Boolean),
                        nullable=False,
                        default=Boolean.FALSE)
    artskode = Column(IntEnum(Artskode), nullable=True, default=Artskode.NULL)
    x = Column(Float)
    y = Column(Float)
    z = Column(Float)
    sagseventfraid = Column(String, ForeignKey("sagsevent.id"), nullable=False)
    sagsevent = relationship("Sagsevent",
                             foreign_keys=[sagseventfraid],
                             back_populates="koordinater")
    sagseventtilid = Column(String, ForeignKey("sagsevent.id"), nullable=True)
    slettet = relationship(
        "Sagsevent",
        foreign_keys=[sagseventtilid],
        back_populates="koordinater_slettede",
    )

    punktid = Column(String(36), ForeignKey("punkt.id"), nullable=False)
    punkt = relationship("Punkt", back_populates="koordinater")
    beregninger = relationship("Beregning",
                               secondary=beregning_koordinat,
                               back_populates="koordinater")

    tidsserier = relationship(
        "Tidsserie",
        order_by="Tidsserie.objektid",
        viewonly=True,
        secondary=tidsserie_koordinat,
    )

    @property
    def fejlmeldt(self):
        return self._fejlmeldt == Boolean.TRUE

    @fejlmeldt.setter
    def fejlmeldt(self, value: Boolean):
        if value:
            self._fejlmeldt = Boolean.TRUE
        else:
            self._fejlmeldt = Boolean.FALSE
示例#2
0
class ObservationsType(DeclarativeBase):
    __tablename__ = "observationstype"
    objektid = Column(Integer, primary_key=True)
    observationstypeid = Column(Integer, unique=True, nullable=False)
    name = Column("observationstype", String(4000), nullable=False)
    beskrivelse = Column(String(4000), nullable=False)
    value1 = Column(String, nullable=False)
    value2 = Column(String)
    value3 = Column(String)
    value4 = Column(String)
    value5 = Column(String)
    value6 = Column(String)
    value7 = Column(String)
    value8 = Column(String)
    value9 = Column(String)
    value10 = Column(String)
    value11 = Column(String)
    value12 = Column(String)
    value13 = Column(String)
    value14 = Column(String)
    value15 = Column(String)
    sigtepunkt = Column(StringEnum(Boolean), nullable=False, default=Boolean.FALSE)
    observationer = relationship(
        "Observation",
        order_by="Observation.objektid",
        back_populates="observationstype",
    )
示例#3
0
class Sagsinfo(RegisteringTidObjekt):
    __tablename__ = "sagsinfo"
    aktiv = Column(StringEnum(Boolean), nullable=False, default=Boolean.TRUE)
    journalnummer = Column(String)
    behandler = Column(String, nullable=False)
    beskrivelse = Column(String)
    sagsid = Column(String, ForeignKey("sag.id"), nullable=False)
    sag = relationship("Sag", back_populates="sagsinfos")
示例#4
0
class Grafik(FikspunktregisterObjekt):
    __tablename__ = "grafik"
    sagseventfraid = Column(String, ForeignKey("sagsevent.id"), nullable=False)
    sagsevent = relationship("Sagsevent",
                             foreign_keys=[sagseventfraid],
                             back_populates="grafikker")
    sagseventtilid = Column(String, ForeignKey("sagsevent.id"), nullable=True)
    slettet = relationship(
        "Sagsevent",
        foreign_keys=[sagseventtilid],
        back_populates="grafikker_slettede",
    )

    objektid = Column(Integer, primary_key=True)
    grafik = Column(LargeBinary, nullable=False)
    type = Column(StringEnum(GrafikType), nullable=False)
    mimetype = Column(String(3), nullable=False)
    filnavn = Column(String(100), nullable=False)
    punktid = Column(String(36), ForeignKey("punkt.id"), nullable=False)
    punkt = relationship("Punkt", back_populates="grafikker")

    @classmethod
    def fra_fil(cls, punkt: Punkt, sti: Path):
        """Opret Grafik ud fra en billedfil."""
        with open(sti, "rb") as f:
            blob = f.read()

        (mimetype, _) = mimetypes.guess_type(sti)
        if mimetype not in ("image/png", "image/jpeg"):
            raise ValueError(
                f"Filen {sti} kan ikke læses, forkert MIME type: {mimetype}")
        # antag at en png-fil er en skitse
        if mimetype == "image/png":
            grafiktype = GrafikType.SKITSE.value
        else:
            grafiktype = GrafikType.FOTO.value

        filnavn = sti.name

        return cls(
            punkt=punkt,
            grafik=blob,
            type=grafiktype,
            mimetype=mimetype,
            filnavn=filnavn,
        )