コード例 #1
0
ファイル: info.py プロジェクト: tweetz0r/tkapi
def get_commissie_namen():
    commissies = TKApi().get_commissies()
    namen = []
    for commissie in commissies:
        if commissie.naam:
            namen.append(commissie.naam)
    return sorted(set(namen))
コード例 #2
0
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,
        )
コード例 #3
0
ファイル: test_agendapunt.py プロジェクト: tweetz0r/tkapi
 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)
コード例 #4
0
ファイル: queries.py プロジェクト: tweetz0r/tkapi
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
コード例 #5
0
ファイル: queries.py プロジェクト: tweetz0r/tkapi
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
コード例 #6
0
ファイル: queries.py プロジェクト: tweetz0r/tkapi
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)
コード例 #7
0
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
コード例 #8
0
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))
コード例 #9
0
 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)
コード例 #10
0
 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)
コード例 #11
0
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
コード例 #12
0
ファイル: gift.py プロジェクト: tweetz0r/openkamer
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,
        )
コード例 #13
0
ファイル: info.py プロジェクト: tweetz0r/tkapi
def get_vergadering_soorten():
    verslagen = TKApi().get_vergaderingen()
    return get_soorten(verslagen)
コード例 #14
0
ファイル: queries.py プロジェクト: tweetz0r/tkapi
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)
コード例 #15
0
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,
コード例 #16
0
ファイル: queries.py プロジェクト: tweetz0r/tkapi
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)
コード例 #17
0
ファイル: queries.py プロジェクト: tweetz0r/tkapi
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)
コード例 #18
0
ファイル: queries.py プロジェクト: tweetz0r/tkapi
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)
コード例 #19
0
ファイル: info.py プロジェクト: tweetz0r/tkapi
def get_commissie_soorten():
    commissies = TKApi().get_commissies()
    return get_soorten(commissies)
コード例 #20
0
 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]