def get_commissie_namen(): commissies = TKApi().get_commissies() namen = [] for commissie in commissies: if commissie.naam: namen.append(commissie.naam) return sorted(set(namen))
def create_travels(max_items=None): travels = TKApi.get_items(PersoonReis, max_items=max_items) logger.info('{} travels found.'.format(len(travels))) if len(travels) < 1000: logger.error( 'Only {} travels found. This is unexpected. Skip re-creating travels.' .format(len(travels))) Travel.objects.all().delete() TravelPersonPosition.objects.all().delete() for travel in travels: person = Person.find_surname_initials(travel.persoon.achternaam, travel.persoon.initialen) if person is None: logger.warning('No person found for travel: {}'.format(travel.id)) continue if travel.van is None or travel.tot_en_met is None: logger.warning('No date found for travel: {}'.format(travel.id)) continue Travel.objects.create( person=person, destination=travel.bestemming, purpose=travel.doel, paid_by=travel.betaald_door, date_begin=travel.van, date_end=travel.tot_en_met, )
def test_filter_agendapunten_with_activiteit(self): max_items = 5 agendapunt_filter = Agendapunt.create_filter() agendapunt_filter.filter_has_activiteit() agendapunten = TKApi().get_agendapunten(max_items=max_items) for agendapunt in agendapunten: self.assertTrue(agendapunt.activiteit) self.assertEqual(len(agendapunten), max_items)
def get_dossier(nummer, toevoeging=None): filter = Dossier.create_filter() filter.filter_nummer(nummer) if toevoeging: filter.filter_toevoeging(toevoeging) dossiers = TKApi().get_dossiers(filter=filter) dossier = dossiers[0] return dossier
def get_fractieleden_actief(): filter = Fractie.create_filter() filter.filter_actief() fracties_actief = TKApi().get_fracties(filter=filter) leden_actief = [] for fractie in fracties_actief: leden_actief += fractie.leden_actief return leden_actief
def get_dossier_besluiten_with_stemmingen(nummer, toevoeging=None) -> List[Besluit]: zaken = get_dossier_zaken(nummer, toevoeging=toevoeging) besluiten = [] for zaak in zaken: filter = Besluit.create_filter() filter.filter_zaak(zaak.nummer) filter.filter_non_empty(Stemming) besluiten += TKApi().get_besluiten(filter=filter) return filter_duplicates(besluiten)
def get_zaken_dossier_main(dossier_id_main, dossier_id_sub=None) -> List[Zaak]: # TODO BR: filter by Wetgeving OR Initiatiefwetgeving if tkapi makes it possible filter = Zaak.create_filter() filter.filter_kamerstukdossier(nummer=dossier_id_main, toevoeging=dossier_id_sub) filter.filter_soort(ZaakSoort.WETGEVING) zaken = TKApi.get_zaken(filter=filter) if not zaken: filter = Zaak.create_filter() filter.filter_kamerstukdossier(nummer=dossier_id_main, toevoeging=dossier_id_sub) filter.filter_soort(ZaakSoort.INITIATIEF_WETGEVING) zaken = TKApi.get_zaken(filter=filter) if not zaken: filter = Zaak.create_filter() filter.filter_kamerstukdossier(nummer=dossier_id_main, toevoeging=dossier_id_sub) filter.filter_soort(ZaakSoort.BEGROTING) zaken = TKApi.get_zaken(filter=filter) return zaken
def example_kamervragen(): """Example that shows how to get kamervragen and antwoorden for a date range.""" filter = Zaak.create_filter() begin_datetime = datetime.datetime(year=2015, month=1, day=1) end_datetime = datetime.datetime(year=2015, month=1, day=10) filter.filter_date_range(begin_datetime, end_datetime) filter.filter_soort(ZaakSoort.SCHRIFTELIJKE_VRAGEN) zaken = TKApi.get_zaken(filter=filter) for zaak in zaken: for doc in zaak.documenten: print('{}: {}'.format(doc.soort.value, doc.onderwerp))
def test_combined_answers(self): filter = TKDocument.create_filter() filter.filter_aanhangselnummer('151601580') docs = TKApi.get_documenten(filter=filter) self.assertEqual(1, len(docs)) doc = docs[0] overheidnl_document_id = 'ah-tk-20152016-1580' kamerantwoord = openkamer.kamervraag.create_kamerantwoord( doc, overheidnl_document_id) self.assertEqual(4, kamerantwoord.antwoord_set.count()) antwoorden = kamerantwoord.antwoord_set.all() self.assertEqual(None, antwoorden[0].see_answer_nr) self.assertEqual(None, antwoorden[1].see_answer_nr) self.assertEqual(2, antwoorden[2].see_answer_nr) self.assertEqual(None, antwoorden[3].see_answer_nr)
def test_create_verslag(self): filter = TKDocument.create_filter() dossier_id = 26234 kamerstuk_nr = 225 filter.filter_dossier(dossier_id) filter.filter_volgnummer(kamerstuk_nr) docs = TKApi.get_documenten(filter=filter, max_items=10) self.assertEqual(1, len(docs)) overheidnl_document_id = 'kst-{}-{}'.format(dossier_id, kamerstuk_nr) commissie = Commissie.objects.create(name='test commissie', name_short='tc', slug='tc') verslag = openkamer.verslagao.create_verslag( tk_document=docs[0], overheidnl_document_id=overheidnl_document_id, dossier_id=dossier_id, kamerstuk_nr=kamerstuk_nr, commissie=commissie)
def create_or_update_dossier(dossier_id): logger.info('BEGIN - dossier id: {}'.format(dossier_id)) Dossier.objects.filter(dossier_id=dossier_id).delete() dossier_url = 'https://zoek.officielebekendmakingen.nl/dossier/{}'.format( dossier_id) dossier_id_main, dossier_id_sub = Dossier.split_dossier_id(dossier_id) dossier_filter = TKDossier.create_filter() dossier_filter.filter_nummer(dossier_id_main) if dossier_id_sub: dossier_filter.filter_toevoeging(dossier_id_sub) dossiers = TKApi.get_dossiers(filter=dossier_filter) if len(dossiers) != 1: logger.error('{} dossiers found while one expected for {}'.format( len(dossiers), dossier_id)) tk_dossier = dossiers[0] # TODO BR: create a list of related dossier decisions instead of one, see dossier 34792 for example logger.info('dossier id main: {} | dossier id sub: {}'.format( dossier_id_main, dossier_id_sub)) last_besluit = get_besluit_last_with_voting(dossier_id_main, dossier_id_sub) if not last_besluit: last_besluit = get_besluit_last(dossier_id_main, dossier_id_sub) decision_text = 'Onbekend' if last_besluit: decision_text = last_besluit.tekst.replace('.', '') dossier_new = Dossier.objects.create(dossier_id=dossier_id, dossier_main_id=dossier_id_main, dossier_sub_id=dossier_id_sub, title=tk_dossier.titel, url=dossier_url, decision_text=decision_text) create_dossier_documents(dossier_new, dossier_id) create_dossier_decisions(dossier_id_main, dossier_id_sub, dossier_new) voting_factory = VotingFactory() voting_factory.create_votings(dossier_id) dossier_new.set_derived_fields() logger.info('END - dossier id: ' + str(dossier_id)) return dossier_new
def create_gifts(max_items=None): gifts = TKApi.get_items(PersoonGeschenk, max_items=max_items) logger.info('{} gifts found.'.format(len(gifts))) if len(gifts) < 1000: logger.error('Only {} gifts found. This is unexpected. Skip re-creating gifts.'.format(len(gifts))) Gift.objects.all().delete() PersonPosition.objects.all().delete() for gift in gifts: value = find_gift_value(gift.omschrijving) gift_type = find_gift_type(gift.omschrijving) person = Person.find_surname_initials(gift.persoon.achternaam, gift.persoon.initialen) if person is None: logger.warning('No person found for gift: {}'.format(gift.id)) continue if gift.datum is None: logger.warning('No date found for gift: {}'.format(gift.id)) continue Gift.objects.create( person=person, value_euro=value, description=gift.omschrijving, date=gift.datum, type=gift_type, )
def get_vergadering_soorten(): verslagen = TKApi().get_vergaderingen() return get_soorten(verslagen)
def get_dossier_zaken(nummer, toevoeging=None) -> List[Zaak]: zaak_filter = Zaak.create_filter() zaak_filter.filter_kamerstukdossier(nummer=nummer, toevoeging=toevoeging) return TKApi().get_zaken(filter=zaak_filter)
from tkapi.persoon import PersoonReis from tkapi.persoon import PersoonGeschenk from tkapi.persoon import PersoonOnderwijs from tkapi.persoon import PersoonNevenfunctie from tkapi.persoon import PersoonNevenfunctieInkomsten from tkapi.persoon import PersoonContactinformatie from tkapi.stemming import Stemming from tkapi.vergadering import Vergadering from tkapi.verslag import Verslag from tkapi.zaak import Zaak from tkapi.zaak import ZaakActor from tkapi.filter import VerwijderdFilter logger = logging.getLogger(__name__) api = TKApi(verbose=True) entity_types = [ Fractie, Zaal, ActiviteitActor, CommissieContactinformatie, CommissieZetel, CommissieZetelVastPersoon, CommissieZetelVervangerPersoon, CommissieZetelVastVacature, CommissieZetelVervangerVacature, DocumentActor, DocumentVersie, FractieZetel, FractieZetelPersoon,
def get_dossier_documenten(nummer, toevoeging=None) -> List[Document]: document_filter = Document.create_filter() document_filter.filter_dossier(nummer, toevoeging=toevoeging) return TKApi().get_documenten(document_filter)
def get_dossier_documenten_with_activiteit(nummer, toevoeging=None) -> List[Document]: document_filter = Document.create_filter() document_filter.filter_dossier(nummer, toevoeging=toevoeging) document_filter.filter_has_activiteit() return TKApi().get_documenten(document_filter)
def get_kamerstuk_zaken(nummer, volgnummer, toevoeging=None) -> List[Zaak]: zaak_filter = Zaak.create_filter() zaak_filter.filter_kamerstukdossier(nummer, toevoeging=toevoeging) zaak_filter.filter_document(volgnummer) return TKApi().get_zaken(zaak_filter)
def get_commissie_soorten(): commissies = TKApi().get_commissies() return get_soorten(commissies)
def get_tk_zaak(zaak_nummer): filter = Zaak.create_filter() filter.filter_nummer(zaak_nummer) tk_zaken = TKApi.get_zaken(filter=filter) return tk_zaken[0]