generated from dopt-python/py311
1110 lines
29 KiB
Python
1110 lines
29 KiB
Python
from __future__ import annotations
|
|
|
|
import dataclasses as dc
|
|
import enum
|
|
import uuid
|
|
from collections.abc import Sequence
|
|
from typing import Any, Final
|
|
|
|
import babel
|
|
|
|
from wce_crm.custom_widget_registry import CUSTOM_WIDGET_NAMES
|
|
|
|
|
|
class FormFieldType(enum.StrEnum):
|
|
GROUP = enum.auto()
|
|
TEXT = enum.auto()
|
|
LONGTEXT = enum.auto()
|
|
DATE = enum.auto()
|
|
DATETIME = enum.auto()
|
|
DROPDOWN = enum.auto()
|
|
EXTENDED_DROPDOWN = enum.auto()
|
|
DYNAMIC_LIST = enum.auto()
|
|
DYNAMIC_DROPDOWN_NUMERIC = enum.auto()
|
|
DYNAMIC_DROPDOWN_OPTION = enum.auto()
|
|
TEXT_SEARCH = enum.auto()
|
|
CUSTOM = enum.auto()
|
|
TEXT_DATE = enum.auto()
|
|
TEXT_DATETIME = enum.auto()
|
|
|
|
|
|
@dc.dataclass(slots=True)
|
|
class FormField:
|
|
label: str
|
|
type: FormFieldType
|
|
children: Sequence[FormField] = dc.field(default_factory=list)
|
|
parent: FormField | None = None
|
|
required: bool = False
|
|
placeholder: str = ""
|
|
fill_value: str = ""
|
|
readonly: bool = False
|
|
options: dc.InitVar[Sequence[tuple[str, Any]]] = tuple()
|
|
dropdown_options: Sequence[DropdownOption] = dc.field(default=tuple(), init=False)
|
|
key: str = ""
|
|
tooltip: str = ""
|
|
info: str = ""
|
|
custom_widget: str = ""
|
|
init_label: str = dc.field(init=False)
|
|
ignore_get_data: bool = False
|
|
trigger_value: str = ""
|
|
enable_uuid_key: bool = False
|
|
|
|
def __post_init__(
|
|
self,
|
|
options: Sequence[tuple[str, Any]],
|
|
) -> None:
|
|
if not self.key and self.enable_uuid_key:
|
|
self.key = str(uuid.uuid4())
|
|
|
|
self.label = self.label.strip()
|
|
self.init_label = self.label.replace("*", "").replace(":", "")
|
|
if not self.label.endswith(":") and self.type is not FormFieldType.GROUP:
|
|
self.label += ":"
|
|
if self.required:
|
|
self.label += "*"
|
|
|
|
if self.type is FormFieldType.CUSTOM and not self.custom_widget:
|
|
raise ValueError("Custom widget must be named using parameter >custom_widget<")
|
|
elif (
|
|
self.type is FormFieldType.CUSTOM
|
|
and self.custom_widget not in CUSTOM_WIDGET_NAMES
|
|
):
|
|
raise KeyError(
|
|
(
|
|
f"Custom widget >{self.custom_widget}< is not a known member "
|
|
"of the custom widget registry"
|
|
)
|
|
)
|
|
|
|
if self.type in (FormFieldType.DROPDOWN, FormFieldType.EXTENDED_DROPDOWN):
|
|
self.dropdown_options = tuple(DropdownOption(op[0], op[1]) for op in options)
|
|
|
|
if self.type is FormFieldType.DYNAMIC_DROPDOWN_OPTION and not self.trigger_value:
|
|
raise ValueError(
|
|
"Dynamic Dropdown Option Widget must have a defined option or decision value"
|
|
)
|
|
|
|
if self.children:
|
|
self.required = self.required or any((child.required for child in self.children))
|
|
for child in self.children:
|
|
child.parent = self
|
|
|
|
def enhanced_label(
|
|
self,
|
|
add_text: str,
|
|
) -> str:
|
|
enhanced_label = self.init_label + f" {add_text}"
|
|
if not enhanced_label.endswith(":") and self.type is not FormFieldType.GROUP:
|
|
enhanced_label += ":"
|
|
if self.required:
|
|
enhanced_label += "*"
|
|
|
|
return enhanced_label
|
|
|
|
|
|
@dc.dataclass(slots=True)
|
|
class DropdownOption:
|
|
label: str
|
|
_data: dc.InitVar[Any | None] = None
|
|
data: Any = dc.field(init=False)
|
|
|
|
def __post_init__(
|
|
self,
|
|
_data: Any | None,
|
|
) -> None:
|
|
if _data is None:
|
|
self.data = self.label
|
|
else:
|
|
self.data = _data
|
|
|
|
|
|
@dc.dataclass(slots=True)
|
|
class CountryList:
|
|
iso_to_country: dict[str, str]
|
|
for_dropdown: Sequence[tuple[str, str]]
|
|
|
|
|
|
def get_country_list_german() -> CountryList:
|
|
locale = babel.Locale("de", "DE")
|
|
countries: list[tuple[str, str]] = []
|
|
iso_to_country: dict[str, str] = {}
|
|
|
|
for iso_code, country_name in locale.territories.items():
|
|
if len(iso_code) == 2 and not iso_code.isdigit():
|
|
countries.append((country_name, iso_code))
|
|
iso_to_country[iso_code] = country_name
|
|
|
|
countries.sort(key=lambda x: x[0])
|
|
|
|
return CountryList(
|
|
iso_to_country=iso_to_country,
|
|
for_dropdown=tuple(countries),
|
|
)
|
|
|
|
|
|
def get_list_germany_states() -> CountryList:
|
|
states: list[tuple[str, str]] = []
|
|
short_code_to_name: dict[str, str] = {}
|
|
|
|
STATE_LIST: list[tuple[str, str]] = [
|
|
("Bayern", "BY"),
|
|
("Niedersachen", "NI"),
|
|
("Baden-Württemberg", "BW"),
|
|
("Berlin", "BE"),
|
|
("Brandenburg", "BB"),
|
|
("Bremen", "HB"),
|
|
("Hamburg", "HH"),
|
|
("Hessen", "HE"),
|
|
("Mecklenburg", "MV"),
|
|
("Nordrhein-Westfalen", "NW"),
|
|
("Rheinland-Pfalz", "RP"),
|
|
("Saarland", "SL"),
|
|
("Sachsen", "SN"),
|
|
("Sachsen-Anhalt", "ST"),
|
|
("Schleswig-Holstein", "SH"),
|
|
("Thüringen", "TH"),
|
|
]
|
|
STATE_LIST.sort(key=lambda x: x[1])
|
|
|
|
for country_name, code in STATE_LIST:
|
|
states.append((country_name, code))
|
|
short_code_to_name[code] = country_name
|
|
|
|
return CountryList(
|
|
iso_to_country=short_code_to_name,
|
|
for_dropdown=tuple(states),
|
|
)
|
|
|
|
|
|
COUNTRY_LIST: Final[CountryList] = get_country_list_german()
|
|
GERMAN_STATE_LIST: Final[CountryList] = get_list_germany_states()
|
|
|
|
|
|
INITREC_COMP_SEARCH_HEAD = [
|
|
FormField(
|
|
"Suche",
|
|
FormFieldType.EXTENDED_DROPDOWN,
|
|
required=True,
|
|
key="un_suche",
|
|
placeholder="Suche...",
|
|
),
|
|
FormField(
|
|
"Name Unternehmen/Netzwerkpartner",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="un_name",
|
|
readonly=True,
|
|
info="ma_unternehmensname",
|
|
),
|
|
FormField(
|
|
"Straße",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="un_straße",
|
|
readonly=True,
|
|
info="ma_strasse",
|
|
),
|
|
FormField(
|
|
"Hausnummer",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="un_hausnummer",
|
|
readonly=True,
|
|
info="ma_hausnummer",
|
|
),
|
|
FormField(
|
|
"PLZ",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="un_PLZ",
|
|
readonly=True,
|
|
info="ma_plz",
|
|
),
|
|
FormField(
|
|
"Ort",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="un_ort",
|
|
readonly=True,
|
|
info="ma_ort",
|
|
),
|
|
FormField(
|
|
"Suche Ansprechpartner",
|
|
FormFieldType.EXTENDED_DROPDOWN,
|
|
required=True,
|
|
key="person_suche",
|
|
placeholder="Suche...",
|
|
),
|
|
FormField(
|
|
"Titel",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="person_titel",
|
|
readonly=True,
|
|
info="an_titel",
|
|
),
|
|
FormField(
|
|
"Anrede",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="person_anrede",
|
|
readonly=True,
|
|
info="an_anrede",
|
|
),
|
|
FormField(
|
|
"Name",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="person_name",
|
|
readonly=True,
|
|
info="an_nachname",
|
|
),
|
|
FormField(
|
|
"Vorname",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="person_vorname",
|
|
readonly=True,
|
|
info="an_vorname",
|
|
),
|
|
FormField(
|
|
"Telefon",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="person_telefon",
|
|
readonly=True,
|
|
info="an_festnetz",
|
|
),
|
|
FormField(
|
|
"Mobil",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="person_mobilfunk",
|
|
readonly=True,
|
|
info="an_mobil",
|
|
),
|
|
FormField(
|
|
"E-Mail",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="person_email",
|
|
readonly=True,
|
|
info="an_mail",
|
|
),
|
|
FormField(
|
|
"Funktion im Unternehmen",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="person_funktion",
|
|
readonly=True,
|
|
info="an_position",
|
|
),
|
|
FormField(
|
|
"Wie sind Sie auf uns aufmerksam geworden?",
|
|
FormFieldType.DROPDOWN,
|
|
required=False,
|
|
key="kanal_aufmerksamkeit",
|
|
options=[
|
|
("Agentur für Arbeit", None),
|
|
("Ausländerbehörde", None),
|
|
("Jobcenter", None),
|
|
("Freunde/Familie", None),
|
|
("Anerkennungsstelle", None),
|
|
("Beratungsstelle", None),
|
|
("Internet", None),
|
|
("Arbeitgeber", None),
|
|
("Bildungsdienstleister", None),
|
|
("Welcome-Mappe", None),
|
|
("Newsletter WFE", None),
|
|
("Newsletter RM", None),
|
|
("Sonstiges", None),
|
|
],
|
|
),
|
|
]
|
|
|
|
INITREC_CONTACT_PERSON = [
|
|
FormField(
|
|
"Name Unternehmen/Netzwerkpartner (vorausgefüllt von Suche)",
|
|
FormFieldType.TEXT,
|
|
key="KP_name_partner",
|
|
required=False,
|
|
placeholder="Text wird nach gewähltem Unternehmen angezeigt",
|
|
readonly=True,
|
|
),
|
|
FormField(
|
|
"Titel",
|
|
FormFieldType.TEXT,
|
|
key="KP_titel",
|
|
required=False,
|
|
tooltip=(
|
|
"* nur wenn anrufende Person oder kontaktaufnehmende Person "
|
|
"nicht die zu beratende Person ist"
|
|
),
|
|
),
|
|
FormField(
|
|
"Anrede_Anschrift",
|
|
FormFieldType.TEXT,
|
|
key="KP_anrede_anschrift",
|
|
required=True,
|
|
),
|
|
FormField(
|
|
"Name",
|
|
FormFieldType.TEXT,
|
|
key="KP_name",
|
|
required=True,
|
|
),
|
|
FormField(
|
|
"Vorname",
|
|
FormFieldType.TEXT,
|
|
key="KP_vorname",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"Festnetznummer",
|
|
FormFieldType.TEXT,
|
|
key="KP_festnetznummer",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"Mobilfunknummer",
|
|
FormFieldType.TEXT,
|
|
key="KP_mobilfunknummer",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"E-Mail",
|
|
FormFieldType.TEXT,
|
|
key="KP_email",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"Funktion/Beziehung zur beratenden Person",
|
|
FormFieldType.TEXT,
|
|
key="KP_funktion_beziehung",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"Adresse",
|
|
FormFieldType.LONGTEXT,
|
|
key="KP_adresse",
|
|
required=False,
|
|
),
|
|
]
|
|
|
|
|
|
INITREC_MASTER_DATA = [
|
|
FormField(
|
|
"Titel",
|
|
FormFieldType.TEXT,
|
|
key="titel",
|
|
required=False,
|
|
tooltip=(
|
|
"* nur wenn anrufende Person oder kontaktaufnehmende Person "
|
|
"nicht die zu beratende Person ist"
|
|
),
|
|
),
|
|
FormField(
|
|
"Anrede",
|
|
FormFieldType.TEXT,
|
|
key="anrede_anschrift",
|
|
required=True,
|
|
),
|
|
FormField(
|
|
"Name",
|
|
FormFieldType.TEXT,
|
|
key="name",
|
|
required=True,
|
|
),
|
|
FormField(
|
|
"Vorname",
|
|
FormFieldType.TEXT,
|
|
key="vorname",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"Geburtsdatum",
|
|
FormFieldType.DATE,
|
|
key="geburtsdatum",
|
|
required=False,
|
|
tooltip=(
|
|
"* Wichtig zu erfragen, da u.a. Mindestgehaltsschwelle davon abhängt "
|
|
"(Regelung bei Ü45 Jahre)"
|
|
),
|
|
),
|
|
FormField(
|
|
"Herkunftsland",
|
|
FormFieldType.EXTENDED_DROPDOWN,
|
|
key="herkunftsland",
|
|
required=True,
|
|
placeholder="Suche...",
|
|
options=COUNTRY_LIST.for_dropdown,
|
|
tooltip=("* Wichtig zu erfragen aufgrund eventueller EU-Freizügigkeitsregelung"),
|
|
),
|
|
FormField(
|
|
"Staatsangehörigkeit",
|
|
FormFieldType.EXTENDED_DROPDOWN,
|
|
key="staatsangehoerigkeit",
|
|
required=False,
|
|
placeholder="Suche...",
|
|
options=COUNTRY_LIST.for_dropdown,
|
|
tooltip=("* Wichtig zu erfragen aufgrund eventueller EU-Freizügigkeitsregelung"),
|
|
),
|
|
FormField(
|
|
"Rückkehrer",
|
|
FormFieldType.DROPDOWN,
|
|
key="rueckkehrer",
|
|
required=False,
|
|
options=[("ja", None), ("nein", None)],
|
|
tooltip=("* Wichtig zu erfragen aufgrund eventueller EU-Freizügigkeitsregelung"),
|
|
),
|
|
FormField(
|
|
"Wo befindet sich die Person?",
|
|
FormFieldType.DROPDOWN,
|
|
key="aufenthaltsort",
|
|
required=True,
|
|
options=[("Inland", None), ("Ausland EU/EWR", None), ("Ausland Drittstaat", None)],
|
|
),
|
|
FormField(
|
|
"Straße",
|
|
FormFieldType.TEXT,
|
|
key="strasse",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"Hausnummer",
|
|
FormFieldType.TEXT,
|
|
key="hausnummer",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"PLZ",
|
|
FormFieldType.TEXT,
|
|
key="PLZ",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"Ort",
|
|
FormFieldType.TEXT,
|
|
key="ort",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"Bundesland",
|
|
FormFieldType.DROPDOWN,
|
|
key="bundesland",
|
|
required=False,
|
|
options=GERMAN_STATE_LIST.for_dropdown,
|
|
tooltip=("nur wenn Inland angegeben"),
|
|
),
|
|
FormField(
|
|
"Land",
|
|
FormFieldType.EXTENDED_DROPDOWN,
|
|
key="land",
|
|
required=False,
|
|
placeholder="Suche...",
|
|
options=COUNTRY_LIST.for_dropdown,
|
|
),
|
|
FormField(
|
|
"Festnetznummer",
|
|
FormFieldType.TEXT,
|
|
key="festnetznummer",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"Mobilfunknummer",
|
|
FormFieldType.TEXT,
|
|
key="mobilfunknummer",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"E-Mail",
|
|
FormFieldType.TEXT,
|
|
key="email",
|
|
required=False,
|
|
),
|
|
FormField(
|
|
"Familienstand",
|
|
FormFieldType.TEXT,
|
|
key="familienstand",
|
|
required=False,
|
|
tooltip="* Wichtig zu erfragen aufgrund Lebensunterhaltssicherung",
|
|
),
|
|
FormField(
|
|
"Anzahl Kinder",
|
|
FormFieldType.DYNAMIC_DROPDOWN_NUMERIC,
|
|
required=False,
|
|
tooltip="* Wichtig zu erfragen aufgrund Lebensunterhaltssicherung",
|
|
key="anzahl_kinder",
|
|
children=[
|
|
FormField(
|
|
"Anzahl Kinder",
|
|
FormFieldType.DROPDOWN,
|
|
required=False,
|
|
options=[(str(x), None) for x in range(11)],
|
|
tooltip="* Wichtig zu erfragen aufgrund Lebensunterhaltssicherung",
|
|
key="anzahl",
|
|
children=[
|
|
FormField("Alter Kind", FormFieldType.TEXT, key="alter"),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
]
|
|
|
|
|
|
INITREC_ADDITIONAL_DATA = [
|
|
FormField(
|
|
"Deutsch als Kommunikationssprache",
|
|
FormFieldType.DROPDOWN,
|
|
required=False,
|
|
key="WI_deutsch_sprache",
|
|
options=[
|
|
("nein", None),
|
|
("ja, als Muttersprache", None),
|
|
("ja, als Fremdsprache", None),
|
|
],
|
|
),
|
|
FormField(
|
|
"Aufenthaltstitel",
|
|
FormFieldType.DROPDOWN,
|
|
required=False,
|
|
key="WI_aufenthaltstitel",
|
|
options=[
|
|
("anerkannter Flüchtling §§ 22 - 26 AufenthG", None),
|
|
("Aufenthaltsgestattung §55 AufenthG", None),
|
|
("Blaue Karte EU § 18g AufenthG", None),
|
|
("BüMA (Bescheinigung über Meldung als Asylsuchender)", None),
|
|
("Duldung § 60 AufenthG", None),
|
|
("bisher kein Aufenthaltstitel", None),
|
|
("Deutscher", None),
|
|
("familiäre Gründe §§ 27 - 36 AufenthG", None),
|
|
("Niederlassungserlaubnis §9 AufenthG", None),
|
|
("Staatsbürger EUR/EWR/CH", None),
|
|
("Aufenthalt für Ausbildung §§ 16 - 17 AufenthG", None),
|
|
("Aufenthalt für Erwerbstätigkeit §§ 18- 21 AufenthG", None),
|
|
("Chancenaufenthaltsrecht §104c AufenthG", None),
|
|
("Sonstiges", None),
|
|
],
|
|
tooltip="sofern nicht bekannt, unbedingt einfordern",
|
|
),
|
|
FormField(
|
|
"Gültigkeit Aufenthaltsstatus",
|
|
FormFieldType.DATE,
|
|
required=False,
|
|
key="WI_gueltigkeit_aufenthaltstitel",
|
|
),
|
|
FormField(
|
|
"Arbeitsstatus aktuell",
|
|
FormFieldType.DROPDOWN,
|
|
required=False,
|
|
key="WI_arbeitsstatus",
|
|
options=[
|
|
("Arbeitslos", None),
|
|
("Ausbildung/Qualifizierung Inland", None),
|
|
("geringfügig beschäftigt", None),
|
|
("in Anstellung Inland", None),
|
|
("selbstständig Inland", None),
|
|
("Ausbildung/Qualifizierung Ausland", None),
|
|
("in Anstellung Ausland", None),
|
|
("selbstständig Ausland", None),
|
|
],
|
|
),
|
|
FormField(
|
|
"Gemeldet bei Institutionen ",
|
|
FormFieldType.DROPDOWN,
|
|
required=False,
|
|
key="WI_meldung_institution",
|
|
options=[
|
|
("bei keiner", None),
|
|
("Jobcenter mit Leistungsbezug", None),
|
|
("Jobcenter ohne Leistungsbezug", None),
|
|
("Sozialamt mit Leistungsbezug", None),
|
|
("Sozialamt ohne Leistungsbezug", None),
|
|
("Agentur für Arbeit mit Leistungsbezug", None),
|
|
("Agentur für Arbeit ohne Leistungsbezug", None),
|
|
],
|
|
),
|
|
]
|
|
|
|
|
|
INITREC_SCHOOL = [
|
|
FormField("Abschluss", FormFieldType.TEXT, required=False, key="SB_abschluss"),
|
|
FormField(
|
|
"Abschlussgrad laut Dokument",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="SB_abschlussgrad",
|
|
),
|
|
FormField(
|
|
"Schule",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="SB_schule",
|
|
),
|
|
FormField(
|
|
"Ort",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="SB_ort",
|
|
),
|
|
FormField(
|
|
"Land",
|
|
FormFieldType.EXTENDED_DROPDOWN,
|
|
key="SB_land",
|
|
required=False,
|
|
placeholder="Suche...",
|
|
options=COUNTRY_LIST.for_dropdown,
|
|
),
|
|
FormField("Abschlussjahr", FormFieldType.TEXT, required=False, key="SB_abschlussjahr"),
|
|
FormField(
|
|
"Bemerkungsfeld",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="SB_bemerkungsfeld",
|
|
),
|
|
]
|
|
|
|
|
|
INITREC_HIGHER_EDUCATION = [
|
|
FormField(
|
|
"Anerkennung",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="HB_anerkennung",
|
|
),
|
|
FormField(
|
|
"Abschlussgrad",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="HB_abschlussgrad",
|
|
tooltip=(
|
|
"bitte den Titel eingeben z.B. Doktor, Diplom oder "
|
|
"Betriebswirt (Fachschulabschluss)"
|
|
),
|
|
),
|
|
FormField(
|
|
"Abschlussgrad laut Dokument",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="HB_abschlussgrad_dokument",
|
|
),
|
|
FormField(
|
|
"Hochschule / Ausbildungsbetrieb / Berufsschule",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="HB_organisation",
|
|
),
|
|
FormField(
|
|
"Beruf / Fachrichtung",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="HB_beruf",
|
|
tooltip=(
|
|
"bitte spezifizieren z.B. Allgemeinmedizin, Ingenieur Maschinenbau, "
|
|
"technischer Betriebswirt Datenverarbeitung"
|
|
),
|
|
),
|
|
FormField(
|
|
"Land",
|
|
FormFieldType.EXTENDED_DROPDOWN,
|
|
key="HB_land",
|
|
required=False,
|
|
placeholder="Suche...",
|
|
options=COUNTRY_LIST.for_dropdown,
|
|
),
|
|
FormField(
|
|
"Ort",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="HB_ort",
|
|
),
|
|
FormField(
|
|
"Abschlussjahr",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="HB_abschlussjahr",
|
|
),
|
|
FormField(
|
|
"Bemerkungsfeld",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="HB_bemerkungsfeld",
|
|
tooltip="z.B. Promotionen oder den Studiengang angeben",
|
|
),
|
|
]
|
|
|
|
|
|
INITREC_WORK_EXPERIENCE = [
|
|
FormField(
|
|
"Branche",
|
|
FormFieldType.DROPDOWN,
|
|
required=False,
|
|
key="AE_branche",
|
|
options=[
|
|
(part, None)
|
|
for part in (
|
|
"Metallerzeugung & -bearbeitung",
|
|
"Elektro, Energie, Chemie",
|
|
"IT & Software",
|
|
"Kunststoff, Papier, Textil",
|
|
"Logistik, Verkehr, Transport",
|
|
"Handwerk, Bau, Grüne Berufe",
|
|
"Gesundheit & Pflege",
|
|
"Tourismus & Gastronomie",
|
|
"Handel",
|
|
"Bildung & Soziales",
|
|
"Entwicklung, Planung, Qualität",
|
|
"Administration, Finanzen, Verwaltung",
|
|
"Marketing, Design, Vertrieb",
|
|
"Einkauf, Lager, Wartung",
|
|
"Sonstige",
|
|
"Keine Schwerpunkte, branchenübergreifende Rekrutierung",
|
|
)
|
|
],
|
|
),
|
|
FormField(
|
|
"Berufsbezeichnung/Tätigkeit",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="AE_bezeichnung",
|
|
),
|
|
FormField(
|
|
"Funktion",
|
|
FormFieldType.DROPDOWN,
|
|
required=False,
|
|
key="AE_funktion",
|
|
options=[
|
|
("Auszubildender", None),
|
|
("Fachkraft", None),
|
|
("Hilfskraft", None),
|
|
("Akademiker", None),
|
|
("Führungskraft", None),
|
|
("Praktikant", None),
|
|
("FSJ/BFD", None),
|
|
("Elternzeit", None),
|
|
("Sabbatical", None),
|
|
("Sonstiges", None),
|
|
],
|
|
),
|
|
FormField(
|
|
"Unternehmen",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="AE_unternehmen",
|
|
),
|
|
FormField(
|
|
"Land",
|
|
FormFieldType.EXTENDED_DROPDOWN,
|
|
key="AE_land",
|
|
required=False,
|
|
placeholder="Suche...",
|
|
options=COUNTRY_LIST.for_dropdown,
|
|
),
|
|
FormField(
|
|
"Zeitspanne (von ... bis ...)",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="AE_zeitspanne",
|
|
),
|
|
FormField(
|
|
"Beschäftsigungsart",
|
|
FormFieldType.DROPDOWN,
|
|
required=False,
|
|
key="AE_beschaeftigungsart",
|
|
options=[
|
|
("Vollzeit", None),
|
|
("Teilzeit", None),
|
|
("Sonstiges", None),
|
|
],
|
|
tooltip="Minijob, Praktikum, Wehrdienst, soziale Dienste",
|
|
),
|
|
FormField(
|
|
"Bemerkungsfeld",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="AE_bemerkungsfeld",
|
|
),
|
|
]
|
|
|
|
|
|
INITREC_LANGUAGES = [
|
|
FormField(
|
|
"Sprache",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="SP_sprache",
|
|
),
|
|
FormField(
|
|
"Niveau",
|
|
FormFieldType.DROPDOWN,
|
|
required=False,
|
|
key="SP_niveau",
|
|
options=[
|
|
("A1", None),
|
|
("A2", None),
|
|
("B1", None),
|
|
("B2", None),
|
|
("C1", None),
|
|
("C2", None),
|
|
],
|
|
),
|
|
FormField(
|
|
"Nachweis",
|
|
FormFieldType.DYNAMIC_DROPDOWN_OPTION,
|
|
key="",
|
|
trigger_value="vorhanden",
|
|
children=[
|
|
FormField(
|
|
"Nachweis",
|
|
FormFieldType.DROPDOWN,
|
|
required=False,
|
|
options=[("vorhanden", None), ("nicht vorhanden", None)],
|
|
key="SP_nachweis",
|
|
children=[
|
|
FormField(
|
|
"Art des Nachweises",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="SP_art_nachweis",
|
|
),
|
|
FormField(
|
|
"Datum des Nachweises",
|
|
FormFieldType.DATE,
|
|
required=False,
|
|
key="SP_datum_nachweis",
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
]
|
|
|
|
|
|
INITREC_COMP = [
|
|
FormField(
|
|
"Ersteintrag Datum",
|
|
FormFieldType.TEXT_DATETIME,
|
|
required=False,
|
|
key="Metadaten_erstellung",
|
|
readonly=True,
|
|
ignore_get_data=True,
|
|
),
|
|
FormField(
|
|
"Aktualisierung Datum",
|
|
FormFieldType.TEXT_DATETIME,
|
|
required=False,
|
|
key="Metadaten_aktualisierung",
|
|
readonly=True,
|
|
ignore_get_data=True,
|
|
),
|
|
FormField(
|
|
"Aktualisierung Nutzer",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="Metadaten_nutzer",
|
|
readonly=True,
|
|
),
|
|
FormField(
|
|
"Fallnummer",
|
|
FormFieldType.TEXT,
|
|
required=True,
|
|
key="Grunderfassung_fallnummer",
|
|
),
|
|
FormField(
|
|
"Notizen",
|
|
FormFieldType.LONGTEXT,
|
|
required=False,
|
|
key="Grunderfassung_notiz",
|
|
),
|
|
FormField(
|
|
"Suche",
|
|
FormFieldType.CUSTOM,
|
|
custom_widget="grunderfassung_suche",
|
|
key="Partnersuche",
|
|
children=INITREC_COMP_SEARCH_HEAD,
|
|
),
|
|
FormField(
|
|
"Status && Projektrelevanz",
|
|
FormFieldType.GROUP,
|
|
key="Projektrelevanz",
|
|
children=[
|
|
FormField(
|
|
"Projektrelevanz",
|
|
FormFieldType.DYNAMIC_DROPDOWN_OPTION,
|
|
key="",
|
|
trigger_value="ja",
|
|
children=[
|
|
FormField(
|
|
"Relevanz",
|
|
FormFieldType.DROPDOWN,
|
|
required=True,
|
|
options=[("ja", None), ("nein", None)],
|
|
key="relevanz",
|
|
children=[
|
|
FormField(
|
|
"Förderperiode", FormFieldType.TEXT, key="foerderperiode"
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
FormField(
|
|
"Daten Kontaktperson",
|
|
FormFieldType.GROUP,
|
|
key="Kontaktperson",
|
|
children=INITREC_CONTACT_PERSON,
|
|
),
|
|
FormField(
|
|
"Stammdaten",
|
|
FormFieldType.GROUP,
|
|
key="Stammdaten",
|
|
children=INITREC_MASTER_DATA,
|
|
),
|
|
FormField(
|
|
"Weitere Informationen",
|
|
FormFieldType.GROUP,
|
|
key="WeitereInfos",
|
|
children=INITREC_ADDITIONAL_DATA,
|
|
),
|
|
FormField(
|
|
"Schulbildung",
|
|
FormFieldType.DYNAMIC_LIST,
|
|
children=INITREC_SCHOOL,
|
|
key="Schulbildung",
|
|
),
|
|
FormField(
|
|
"Studium/Ausbildung",
|
|
FormFieldType.DYNAMIC_LIST,
|
|
children=INITREC_HIGHER_EDUCATION,
|
|
key="HoehereBildung",
|
|
),
|
|
FormField(
|
|
"Arbeitserfahrung",
|
|
FormFieldType.DYNAMIC_LIST,
|
|
children=INITREC_WORK_EXPERIENCE,
|
|
key="Arbeitserfahrung",
|
|
),
|
|
FormField(
|
|
"Sprachkenntnisse",
|
|
FormFieldType.DYNAMIC_LIST,
|
|
children=INITREC_LANGUAGES,
|
|
key="Sprachkenntnisse",
|
|
),
|
|
]
|
|
|
|
INITREC_PERSON = [
|
|
FormField(
|
|
"Ersteintrag Datum",
|
|
FormFieldType.TEXT_DATETIME,
|
|
required=False,
|
|
key="Metadaten_erstellung",
|
|
readonly=True,
|
|
ignore_get_data=True,
|
|
),
|
|
FormField(
|
|
"Aktualisierung Datum",
|
|
FormFieldType.TEXT_DATETIME,
|
|
required=False,
|
|
key="Metadaten_aktualisierung",
|
|
readonly=True,
|
|
ignore_get_data=True,
|
|
),
|
|
FormField(
|
|
"Aktualisierung Nutzer",
|
|
FormFieldType.TEXT,
|
|
required=False,
|
|
key="Metadaten_nutzer",
|
|
readonly=True,
|
|
),
|
|
FormField(
|
|
"Wiedereintrittsdatum",
|
|
FormFieldType.DATE,
|
|
required=False,
|
|
key="Metadaten_wiedereintrittsdatum",
|
|
readonly=False,
|
|
),
|
|
FormField(
|
|
"Fallnummer",
|
|
FormFieldType.TEXT,
|
|
required=True,
|
|
key="Grunderfassung_fallnummer",
|
|
),
|
|
FormField(
|
|
"Notizen",
|
|
FormFieldType.LONGTEXT,
|
|
required=False,
|
|
key="Grunderfassung_notiz",
|
|
),
|
|
FormField(
|
|
"Status && Projektrelevanz",
|
|
FormFieldType.GROUP,
|
|
key="Projektrelevanz",
|
|
children=[
|
|
FormField(
|
|
"Projektrelevanz",
|
|
FormFieldType.DYNAMIC_DROPDOWN_OPTION,
|
|
key="",
|
|
trigger_value="ja",
|
|
children=[
|
|
FormField(
|
|
"Relevanz",
|
|
FormFieldType.DROPDOWN,
|
|
required=True,
|
|
options=[("ja", None), ("nein", None)],
|
|
key="relevanz",
|
|
children=[
|
|
FormField(
|
|
"Förderperiode", FormFieldType.TEXT, key="foerderperiode"
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
FormField(
|
|
"Daten Kontaktperson",
|
|
FormFieldType.GROUP,
|
|
key="Kontaktperson",
|
|
children=INITREC_CONTACT_PERSON,
|
|
),
|
|
FormField(
|
|
"Stammdaten",
|
|
FormFieldType.GROUP,
|
|
key="Stammdaten",
|
|
children=INITREC_MASTER_DATA,
|
|
),
|
|
FormField(
|
|
"Weitere Informationen",
|
|
FormFieldType.GROUP,
|
|
key="WeitereInfos",
|
|
children=INITREC_ADDITIONAL_DATA,
|
|
),
|
|
FormField(
|
|
"Schulbildung",
|
|
FormFieldType.DYNAMIC_LIST,
|
|
children=INITREC_SCHOOL,
|
|
key="Schulbildung",
|
|
),
|
|
FormField(
|
|
"Studium/Ausbildung",
|
|
FormFieldType.DYNAMIC_LIST,
|
|
children=INITREC_HIGHER_EDUCATION,
|
|
key="HoehereBildung",
|
|
),
|
|
FormField(
|
|
"Arbeitserfahrung",
|
|
FormFieldType.DYNAMIC_LIST,
|
|
children=INITREC_WORK_EXPERIENCE,
|
|
key="Arbeitserfahrung",
|
|
),
|
|
FormField(
|
|
"Sprachkenntnisse",
|
|
FormFieldType.DYNAMIC_LIST,
|
|
children=INITREC_LANGUAGES,
|
|
key="Sprachkenntnisse",
|
|
),
|
|
]
|