Skip to content

Commit

Permalink
App Datenmanagement: neues Datenthema Mobilfunkantennen
Browse files Browse the repository at this point in the history
  • Loading branch information
gdmhrogut committed May 2, 2024
1 parent 2edd512 commit bec2c71
Show file tree
Hide file tree
Showing 4 changed files with 424 additions and 6 deletions.
3 changes: 3 additions & 0 deletions datenmanagement/models/constants_vars.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@
linien_linie_message = 'Die <strong><em>Linie</em></strong> muss mit einer ' \
'Ziffer oder einem Großbuchstaben beginnen, der bzw. ' \
'dem optional weitere Ziffern und/oder Großbuchstaben folgen können.'
mobilfunkantennen_stob_regex = r'^[0-9]{6,8}$'
mobilfunkantennen_stob_message = 'Die <strong><em>Standortbescheinigungsnummer</em></strong> ' \
'muss aus sechs bis acht Ziffern bestehen.'
parkscheinautomaten_bewohnerparkgebiet_regex = r'^[A-Z][0-9]$'
parkscheinautomaten_bewohnerparkgebiet_message = 'Das <strong><em>Bewohnerparkgebiet</em>' \
'</strong> muss aus genau einem ' \
Expand Down
135 changes: 134 additions & 1 deletion datenmanagement/models/models_simple.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
hydranten_bezeichnung_regex, hydranten_bezeichnung_message, \
ingenieurbauwerke_nummer_asb_regex, ingenieurbauwerke_nummer_asb_message, \
ingenieurbauwerke_baujahr_regex, ingenieurbauwerke_baujahr_message, \
kleinklaeranlagen_zulassung_regex, kleinklaeranlagen_zulassung_message, poller_nummer_regex, \
kleinklaeranlagen_zulassung_regex, kleinklaeranlagen_zulassung_message, \
mobilfunkantennen_stob_regex, mobilfunkantennen_stob_message, poller_nummer_regex, \
poller_nummer_message, trinkwassernotbrunnen_nummer_regex, trinkwassernotbrunnen_nummer_message
from .fields import ChoiceArrayField, NullTextField, PositiveSmallIntegerMinField, \
PositiveSmallIntegerRangeField, point_field, line_field, multiline_field, polygon_field, \
Expand Down Expand Up @@ -4040,6 +4041,138 @@ def __str__(self):
(', Adresse: ' + str(self.adresse) if self.adresse else '') + ']'


class Mobilfunkantennen(SimpleModel):
"""
Mobilfunkantennen
"""

adresse = ForeignKey(
to=Adressen,
verbose_name='Adresse',
on_delete=SET_NULL,
db_column='adresse',
to_field='uuid',
related_name='%(app_label)s_%(class)s_adressen',
blank=True,
null=True
)
stob = CharField(
verbose_name='Standortbescheinigungsnummer',
max_length=255,
validators=[
RegexValidator(
regex=mobilfunkantennen_stob_regex,
message=mobilfunkantennen_stob_message
)
]
)
erteilungsdatum = DateField(
verbose_name='Erteilungsdatum',
default=date.today
)
techniken = ArrayField(
CharField(
verbose_name='Techniken',
max_length=255,
blank=True,
null=True,
validators=standard_validators
),
verbose_name='Techniken',
blank=True,
null=True
)
betreiber = ArrayField(
CharField(
verbose_name='Betreiber',
max_length=255,
blank=True,
null=True,
validators=standard_validators
),
verbose_name='Betreiber',
blank=True,
null=True
)
montagehoehe = CharField(
verbose_name='Montagehöhe',
max_length=255,
blank=True,
null=True,
validators=standard_validators
)
anzahl_gsm = PositiveSmallIntegerMinField(
verbose_name='Anzahl GSM-Einheiten',
min_value=1,
blank=True,
null=True
)
anzahl_umts = PositiveSmallIntegerMinField(
verbose_name='Anzahl UMTS-Einheiten',
min_value=1,
blank=True,
null=True
)
anzahl_lte = PositiveSmallIntegerMinField(
verbose_name='Anzahl LTE-Einheiten',
min_value=1,
blank=True,
null=True
)
anzahl_sonstige = PositiveSmallIntegerMinField(
verbose_name='Anzahl sonstige Einheiten',
min_value=1,
blank=True,
null=True
)
geometrie = point_field

class Meta(SimpleModel.Meta):
db_table = 'fachdaten_adressbezug\".\"mobilfunkantennen_hro'
verbose_name = 'Mobilfunkantenne'
verbose_name_plural = 'Mobilfunkantennen'

class BasemodelMeta(SimpleModel.BasemodelMeta):
description = 'Mobilfunkantennen in der Hanse- und Universitätsstadt Rostock'
as_overlay = True
address_type = 'Adresse'
address_mandatory = False
geometry_type = 'Point'
list_fields = {
'aktiv': 'aktiv?',
'adresse': 'Adresse',
'stob': 'Standortbescheinigungsnummer',
'erteilungsdatum': 'Erteilungsdatum',
'techniken': 'Techniken',
'betreiber': 'Betreiber',
'montagehoehe': 'Montagehöhe',
'anzahl_gsm': 'Anzahl GSM-Einheiten',
'anzahl_umts': 'Anzahl UMTS-Einheiten',
'anzahl_lte': 'Anzahl LTE-Einheiten',
'anzahl_sonstige': 'Anzahl sonstige Einheiten'
}
list_fields_with_date = ['erteilungsdatum']
list_fields_with_foreign_key = {
'adresse': 'adresse'
}
map_feature_tooltip_fields = ['stob']
map_filter_fields = {
'aktiv': 'aktiv?',
'stob': 'Standortbescheinigungsnummer',
'erteilungsdatum': 'Erteilungsdatum',
'techniken': 'Techniken',
'betreiber': 'Betreiber',
'montagehoehe': 'Montagehöhe',
'anzahl_gsm': 'Anzahl GSM-Einheiten',
'anzahl_umts': 'Anzahl UMTS-Einheiten',
'anzahl_lte': 'Anzahl LTE-Einheiten',
'anzahl_sonstige': 'Anzahl sonstige Einheiten'
}

def __str__(self):
return self.stob


class Mobilpunkte(SimpleModel):
"""
Mobilpunkte
Expand Down
44 changes: 43 additions & 1 deletion datenmanagement/sql/schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ CREATE FUNCTION fachdaten.foto() RETURNS trigger
AS $$
BEGIN
IF NEW.foto = '' THEN
NEW.foto := NULL;
NEW.foto := NULL;
END IF;
RETURN NEW;
END;
Expand Down Expand Up @@ -3430,6 +3430,32 @@ CREATE TABLE fachdaten_adressbezug.meldedienst_punkthaft_hro (
);


--
-- Name: mobilfunkantennen_hro; Type: TABLE; Schema: fachdaten_adressbezug; Owner: -
--

CREATE TABLE fachdaten_adressbezug.mobilfunkantennen_hro (
uuid uuid DEFAULT public.uuid_generate_v4() NOT NULL,
aktualisiert date DEFAULT (now())::date NOT NULL,
erstellt date DEFAULT (now())::date NOT NULL,
id_fachsystem character varying(255),
id_zielsystem character varying(255),
aktiv boolean DEFAULT true NOT NULL,
deaktiviert date,
adresse uuid,
stob character varying(8) NOT NULL,
erteilungsdatum date NOT NULL,
techniken character varying(255)[],
betreiber character varying(255)[],
montagehoehe character varying(255),
anzahl_gsm smallint,
anzahl_umts smallint,
anzahl_lte smallint,
anzahl_sonstige smallint,
geometrie public.geometry(Point,25833) NOT NULL
);


--
-- Name: parkmoeglichkeiten_hro; Type: TABLE; Schema: fachdaten_adressbezug; Owner: -
--
Expand Down Expand Up @@ -6269,6 +6295,22 @@ ALTER TABLE ONLY fachdaten_adressbezug.meldedienst_punkthaft_hro
ADD CONSTRAINT meldedienst_punkthaft_hro_pk PRIMARY KEY (uuid);


--
-- Name: mobilfunkantennen_hro mobilfunkantennen_hro_pk; Type: CONSTRAINT; Schema: fachdaten_adressbezug; Owner: -
--

ALTER TABLE ONLY fachdaten_adressbezug.mobilfunkantennen_hro
ADD CONSTRAINT mobilfunkantennen_hro_pk PRIMARY KEY (uuid);


--
-- Name: mobilfunkantennen_hro mobilfunkantennen_hro_stob_unique; Type: CONSTRAINT; Schema: fachdaten_adressbezug; Owner: -
--

ALTER TABLE ONLY fachdaten_adressbezug.mobilfunkantennen_hro
ADD CONSTRAINT mobilfunkantennen_hro_stob_unique UNIQUE (stob);


--
-- Name: parkmoeglichkeiten_hro parkmoeglichkeiten_hro_pk; Type: CONSTRAINT; Schema: fachdaten_adressbezug; Owner: -
--
Expand Down
Loading

0 comments on commit bec2c71

Please sign in to comment.