def test_uniqueness_identificatie(self):
        zaaktype = ZaakTypeFactory.create()
        zaaktype_url = reverse(zaaktype)
        ZaakFactory.create(identificatie="strtmzk-0001",
                           bronorganisatie="517439943")

        url = get_operation_url("zaak_create")
        data = {
            "zaaktype": f"http://testserver{zaaktype_url}",
            "vertrouwelijkheidaanduiding":
            VertrouwelijkheidsAanduiding.openbaar,
            "identificatie": "strtmzk-0001",
            "bronorganisatie": "517439943",
            "verantwoordelijkeOrganisatie": VERANTWOORDELIJKE_ORGANISATIE,
            "startdatum": "2018-06-11",
        }

        response = self.client.post(url, data, **ZAAK_WRITE_KWARGS)

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertEqual(response.data["code"], "invalid")

        error = get_validation_errors(response, "identificatie")
        self.assertEqual(error["code"], "identificatie-niet-uniek")
    def test_geef_zelf_identificatie(self):
        """
        Garandeer dat de client zelf een identificatie kan genereren.
        """
        zaaktype = ZaakTypeFactory.create()
        zaaktype_url = reverse(zaaktype)
        url = get_operation_url("zaak_create")
        data = {
            "zaaktype": f"http://testserver{zaaktype_url}",
            "vertrouwelijkheidaanduiding":
            VertrouwelijkheidsAanduiding.openbaar,
            "identificatie": "strtmzk-0001",
            "verantwoordelijkeOrganisatie": VERANTWOORDELIJKE_ORGANISATIE,
            "bronorganisatie": "517439943",
            "startdatum": "2018-06-11",
        }

        response = self.client.post(url, data, **ZAAK_WRITE_KWARGS)

        self.assertEqual(response.status_code, status.HTTP_201_CREATED,
                         response.data)

        zaak = Zaak.objects.get()
        self.assertEqual(zaak.identificatie, "strtmzk-0001")
Esempio n. 3
0
 def setUpTestData(cls):
     cls.zaaktype = ZaakTypeFactory.create()
     super().setUpTestData()
Esempio n. 4
0
    def test_create_melding(self):
        """
        Maak een zaak voor een melding.
        """
        zaaktype = ZaakTypeFactory.create(concept=False)
        zaaktype_url = reverse(zaaktype)
        zaak_create_url = get_operation_url("zaak_create")
        data = {
            "zaaktype": f"http://testserver{zaaktype_url}",
            "vertrouwelijkheidaanduiding": VertrouwelijkheidsAanduiding.openbaar,
            "bronorganisatie": "517439943",
            "verantwoordelijkeOrganisatie": VERANTWOORDELIJKE_ORGANISATIE,
            "startdatum": "2018-07-25",
            "einddatum": "2018-08-25",  # afhankelijk van ZTC configuratie (doorlooptijd)
            "einddatumGepland": "2018-08-25",  # afhankelijk van ZTC configuratie (servicenorm)
            "toelichting": "De struik aan de straatkant belemmert het uitzicht "
            "vanaf mijn balkon.",
            "omschrijving": "",
            "zaakgeometrie": {"type": "Point", "coordinates": [4.4683077, 51.9236739]},
        }

        # aanmaken zaak
        response = self.client.post(zaak_create_url, data, **ZAAK_WRITE_KWARGS)

        self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.data)
        data = response.json()
        self.assertIn("identificatie", data)
        self.assertEqual(data["registratiedatum"], date.today().strftime("%Y-%m-%d"))
        self.assertEqual(data["einddatumGepland"], "2018-08-25")

        zaak_url = data["url"]

        # verwijzen naar melding
        zo_create_url = get_operation_url("zaakobject_create")

        response = self.client.post(
            zo_create_url,
            {"zaak": zaak_url, "object": MOR, "objectType": ZaakobjectTypes.adres},
        )
        self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.data)

        zaak = Zaak.objects.get()
        melding = zaak.zaakobject_set.get()
        self.assertEqual(melding.object_type, ZaakobjectTypes.adres)

        # toevoegen initiator
        # BRP kan/moet bevraagd worden met NAW -> INITIATOR url is resultaat

        rol_create_url = get_operation_url("rol_create")
        roltype = RolTypeFactory.create(
            zaaktype=zaaktype,
            omschrijving=RolOmschrijving.initiator,
            omschrijving_generiek=RolOmschrijving.initiator,
        )
        roltype_url = reverse(roltype)

        response = self.client.post(
            rol_create_url,
            {
                "zaak": zaak_url,
                "betrokkene": INITIATOR,
                "betrokkene_type": RolTypes.natuurlijk_persoon,  # 'Natuurlijk persoon'
                "roltype": f"http://testserver{roltype_url}",
                "roltoelichting": "initiele melder",
            },
        )

        self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.data)

        initiator = zaak.rol_set.get(omschrijving_generiek=RolOmschrijving.initiator)
        self.assertEqual(initiator.betrokkene, INITIATOR)

        # toevoegen behandelaar
        roltype2 = RolTypeFactory.create(
            zaaktype=zaaktype,
            omschrijving=RolOmschrijving.behandelaar,
            omschrijving_generiek=RolOmschrijving.behandelaar,
        )
        roltype2_url = reverse(roltype2)
        response = self.client.post(
            rol_create_url,
            {
                "zaak": zaak_url,
                "betrokkene": BEHANDELAAR,
                "betrokkene_type": RolTypes.vestiging,  # 'Vestiging'
                "roltype": f"http://testserver{roltype2_url}",
                "roltoelichting": "behandelaar",
            },
        )
        self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.data)

        behandelaar = zaak.rol_set.get(
            omschrijving_generiek=RolOmschrijving.behandelaar
        )
        self.assertEqual(behandelaar.betrokkene, BEHANDELAAR)
Esempio n. 5
0
    def setUpTestData(cls):
        super().setUpTestData()

        cls.zaaktype = ZaakTypeFactory.create(concept=False)
        cls.zaaktype_url = reverse(cls.zaaktype)
Esempio n. 6
0
    def test_full_flow(self):
        zaaktype = ZaakTypeFactory.create()
        zaaktype_url = reverse(zaaktype)
        zaak_create_url = get_operation_url("zaak_create")
        zaakobject_create_url = get_operation_url("zaakobject_create")
        status_create_url = get_operation_url("status_create")
        rol_create_url = get_operation_url("rol_create")

        # Creeer InzageVerzoek
        # self.client.post(...)

        # Creeer Zaak
        data = {
            "zaaktype": zaaktype_url,
            "vertrouwelijkheidaanduiding": VertrouwelijkheidsAanduiding.openbaar,
            "bronorganisatie": "517439943",
            "verantwoordelijkeOrganisatie": VERANTWOORDELIJKE_ORGANISATIE,
            "identificatie": "AVG-inzageverzoek-1",
            "omschrijving": "Melding binnengekomen via website.",
            "toelichting": "Vanuit melding: Beste,\n\nGraag zou ik ...",
            "startdatum": "2018-08-22",
            "kenmerken": [
                {"kenmerk": "kenmerk 1", "bron": "bron 1"},
                {"kenmerk": "kenmerk 2", "bron": "bron 2"},
            ],
        }
        response = self.client.post(zaak_create_url, data, **ZAAK_WRITE_KWARGS)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.data)

        zaak = response.json()

        # Koppel Zaak aan InzageVerzoek
        data = {
            "zaak": zaak["url"],
            "object": AVG_INZAGE_VERZOEK,
            "relatieomschrijving": "Inzage verzoek horend bij deze zaak.",
            "objectType": ZaakobjectTypes.adres,
        }
        response = self.client.post(zaakobject_create_url, data)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.data)

        # Geef de Zaak een initiele Status
        statustype = StatusTypeFactory.create(zaaktype=zaaktype)
        statustype_url = reverse(statustype)
        StatusTypeFactory.create(zaaktype=zaaktype)
        data = {
            "zaak": zaak["url"],
            "statustype": statustype_url,
            "datumStatusGezet": datetime.datetime.now().isoformat(),
        }

        response = self.client.post(status_create_url, data)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.data)

        # Haal mogelijke rollen op uit ZTC...
        # self.client.get(...)

        # Voeg een behandelaar toe.
        roltype = RolTypeFactory.create(
            zaaktype=zaaktype,
            omschrijving=RolOmschrijving.behandelaar,
            omschrijving_generiek=RolOmschrijving.behandelaar,
        )
        roltype_url = reverse(roltype)
        data = {
            "zaak": zaak["url"],
            "betrokkene": BEHANDELAAR,
            "betrokkeneType": RolTypes.natuurlijk_persoon,
            "roltype": roltype_url,
            "roltoelichting": "Initiele behandelaar die meerdere (deel)behandelaren kan aanwijzen.",
        }
        response = self.client.post(rol_create_url, data)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.data)

        # Status wijzigingen...

        # Update Zaak met nieuwe behandeltermijn, uitstel van 2 weken.
        zaak_update_url = get_operation_url(
            "zaak_update", uuid=zaak["url"].rsplit("/", 1)[1]
        )

        if zaak["einddatumGepland"]:
            end_date_planned = parse_isodatetime(zaak["einddatumGepland"])
        else:
            end_date_planned = datetime.datetime.now()

        data = zaak.copy()
        data["verlenging"] = None
        data["opschorting"] = None
        data["einddatumGepland"] = (
            end_date_planned + datetime.timedelta(days=14)
        ).strftime("%Y-%m-%d")

        response = self.client.put(zaak_update_url, data, **ZAAK_WRITE_KWARGS)
        self.assertEqual(response.status_code, status.HTTP_200_OK, response.data)
Esempio n. 7
0
    def test_zaak_archiefactiedatum_afleidingswijze_ingangsdatum_besluit(self):
        zaaktype = ZaakTypeFactory.create()
        zaak = ZaakFactory.create(zaaktype=zaaktype)
        zaak_url = reverse(zaak)
        statustype1 = StatusTypeFactory.create(zaaktype=zaaktype)
        statustype1_url = reverse(statustype1)
        statustype2 = StatusTypeFactory.create(zaaktype=zaaktype)
        statustype2_url = reverse(statustype2)
        resultaattype = ResultaatTypeFactory.create(
            zaaktype=zaaktype,
            archiefactietermijn=relativedelta(years=10),
            archiefnominatie=Archiefnominatie.blijvend_bewaren,
            brondatum_archiefprocedure_afleidingswijze=BrondatumArchiefprocedureAfleidingswijze.ingangsdatum_besluit,
        )
        resultaattype_url = reverse(resultaattype)

        BesluitFactory.create(zaak=zaak, ingangsdatum="2020-05-03")

        # Set initial status
        status_list_url = reverse("status-list")

        response = self.client.post(
            status_list_url,
            {
                "zaak": zaak_url,
                "statustype": f"http://testserver{statustype1_url}",
                "datumStatusGezet": isodatetime(2018, 10, 1, 10, 00, 00),
            },
        )
        self.assertEqual(
            response.status_code, status.HTTP_201_CREATED, response.content
        )

        zaak.refresh_from_db()
        self.assertIsNone(zaak.einddatum)

        # add a result for the case
        resultaat_create_url = get_operation_url("resultaat_create")
        data = {
            "zaak": zaak_url,
            "resultaattype": f"http://testserver{resultaattype_url}",
            "toelichting": "",
        }

        response = self.client.post(resultaat_create_url, data)

        self.assertEqual(response.status_code, status.HTTP_201_CREATED, response.data)

        # Set eindstatus
        datum_status_gezet = utcdatetime(2018, 10, 22, 10, 00, 00)

        response = self.client.post(
            status_list_url,
            {
                "zaak": zaak_url,
                "statustype": f"http://testserver{statustype2_url}",
                "datumStatusGezet": datum_status_gezet.isoformat(),
            },
        )
        self.assertEqual(
            response.status_code, status.HTTP_201_CREATED, response.content
        )

        zaak.refresh_from_db()
        self.assertEqual(zaak.einddatum, datum_status_gezet.date())
        self.assertEqual(
            zaak.archiefactiedatum, date(2030, 5, 3)  # 2020-05-03 + 10 years
        )
Esempio n. 8
0
 def setUpTestData(cls):
     cls.zaaktype = ZaakTypeFactory.create()
     cls.zaak = ZaakFactory.create(zaaktype=cls.zaaktype, closed=True)
     super().setUpTestData()