Пример #1
0
    def calculate(self) -> Union[None, date]:
        if self.zaak.archiefactiedatum:
            return

        resultaattype = self.zaak.resultaat.resultaattype

        archiefactietermijn = resultaattype.archiefactietermijn
        if not archiefactietermijn:
            return

        # if loose-fk-field - convert to relative-delta
        if isinstance(archiefactietermijn, str):
            archiefactietermijn = parse_relativedelta(archiefactietermijn)

        brondatum_archiefprocedure = resultaattype.brondatum_archiefprocedure
        afleidingswijze = brondatum_archiefprocedure["afleidingswijze"]
        datum_kenmerk = brondatum_archiefprocedure["datumkenmerk"]
        objecttype = brondatum_archiefprocedure["objecttype"]
        procestermijn = brondatum_archiefprocedure["procestermijn"]
        # if loose-fk-field - convert to relative-delta
        if isinstance(procestermijn, str):
            procestermijn = parse_relativedelta(procestermijn)

        # FIXME: nasty side effect
        orig_value = self.zaak.einddatum
        self.zaak.einddatum = self.datum_status_gezet.date()
        brondatum = get_brondatum(self.zaak, afleidingswijze, datum_kenmerk,
                                  objecttype, procestermijn)
        self.zaak.einddatum = orig_value
        if not brondatum:
            return

        return brondatum + archiefactietermijn
Пример #2
0
    def save(self, *args, **kwargs):
        """
        Save some derived fields into local object as a means of caching.
        """
        if (self.resultaattypeomschrijving
                and self.resultaattypeomschrijving is not no_fetch):
            response = requests.get(self.resultaattypeomschrijving).json()
            self.omschrijving_generiek = response["omschrijving"]

        # derive the default archiefnominatie
        if not self.archiefnominatie and self.selectielijstklasse:
            selectielijstklasse = self.get_selectielijstklasse()
            self.archiefnominatie = selectielijstklasse["waardering"]

        if not self.archiefactietermijn and self.selectielijstklasse:
            selectielijstklasse = self.get_selectielijstklasse()
            parsed_relativedelta = (
                parse_relativedelta(selectielijstklasse["bewaartermijn"])
                if selectielijstklasse["bewaartermijn"] else None)
            self.archiefactietermijn = parsed_relativedelta

        # Met de attribuutsoorten van dit groepatribuutsoort worden deze situaties
        # geparametrieerd. Dit is alleen relevant indien sprake is van de Archiefnominatie
        # "vernietigen"; voor te bewaren zaakdossiers start de Archiefactietermijn op de
        # einddatum van de zaak.
        if (self.archiefnominatie == Archiefnominatie.blijvend_bewaren
                and not self.brondatum_archiefprocedure_afleidingswijze):
            self.brondatum_archiefprocedure_afleidingswijze = (
                Afleidingswijze.afgehandeld)

        super().save(*args, **kwargs)
Пример #3
0
    def get_context(self, name, value: Union[relativedelta, str], attrs=None):
        attrs = {} if attrs is None else attrs
        context = super().get_context(name, value, attrs)

        value = value or relativedelta()
        final_attrs = self.build_attrs(attrs)
        final_attrs.update({"min": 0})

        if isinstance(value, str):
            value = parse_relativedelta(value)

        years_widget = self._build_subwidget_context(
            name, value, final_attrs, "years", _("# jaren"), required=True
        )
        months_widget = self._build_subwidget_context(
            name, value, final_attrs, "months", _("# maanden"), required=True
        )
        days_widget = self._build_subwidget_context(
            name, value, final_attrs, "days", _("# dagen"), required=True
        )
        hours_widget = self._build_subwidget_context(
            name, value, final_attrs, "hours", _("# uren")
        )
        minutes_widget = self._build_subwidget_context(
            name, value, final_attrs, "minutes", _("# minuten")
        )
        seconds_widget = self._build_subwidget_context(
            name, value, final_attrs, "seconds", _("# seconden")
        )
        microseconds_widget = self._build_subwidget_context(
            name, value, final_attrs, "microseconds", _("# microseconden")
        )
        subwidgets = [
            years_widget,
            months_widget,
            # weeks is skipped, because internally it's converted to days
            days_widget,
            hours_widget,
            minutes_widget,
            seconds_widget,
            microseconds_widget,
        ]
        context["widget"]["subwidgets"] = [
            widget for widget in subwidgets if widget is not None
        ]
        return context
Пример #4
0
    def save(self, *args, **kwargs):
        """
        Save some derived fields into local object as a means of caching.
        """
        if not self.omschrijving_generiek and self.resultaattypeomschrijving:
            response = requests.get(self.resultaattypeomschrijving).json()
            self.omschrijving_generiek = response["omschrijving"]

        # derive the default archiefnominatie
        if not self.archiefnominatie and self.selectielijstklasse:
            selectielijstklasse = self.get_selectielijstklasse()
            self.archiefnominatie = selectielijstklasse["waardering"]

        if not self.archiefactietermijn and self.selectielijstklasse:
            selectielijstklasse = self.get_selectielijstklasse()
            parsed_relativedelta = parse_relativedelta(
                selectielijstklasse["bewaartermijn"])
            self.archiefactietermijn = parsed_relativedelta

        super().save(*args, **kwargs)
Пример #5
0
 def to_python(self, value):
     if value in self.empty_values:
         return None
     return relativedeltafield.parse_relativedelta(value)