| 15 | | - '''Bijlagen''' Het invoeren van bestanden met een multi-select file dialoog. Met ctrl-klik en shift-klik kunnen nu meerdere bestanden geselecteerd en toegevoegd worden. |
| | 16 | - '''Lijsten''' De werk-, plan- en controle-lijsten zijn volledig herzien. Zie hieronder. |
| | 17 | |
| | 18 | == Lijsten == |
| | 19 | |
| | 20 | De plan-, werk- en controlelijsten zijn fink veranderd in OpenAC v2.012. |
| | 21 | Dit is zowel zichtbaar voor de gebruikers die de lijsten zien, als voor |
| | 22 | de beheerders die de programmatuur voor de lijsten maken. |
| | 23 | |
| | 24 | De drie lijsten-schermen voor planlijsten, werklijsten en controlelijsten |
| | 25 | zijn zo veranderd dat ze niet meer '''alle''' gegevens van alle lijsten |
| | 26 | ophalen bij elke verandering in het scherm. Ze halen alleen de gegevens |
| | 27 | op waar expliciet om gevraagd is. Dit betekent dat het openen van de schermen |
| | 28 | veel sneller is, het wisselen van lijsten sneller is, en het wijzigen van |
| | 29 | de filters voor lijsten ook sneller gaat. |
| | 30 | |
| | 31 | Als een van deze schermen geopend wordt, dan haalt OpenAC '''geen''' gegevens op. |
| | 32 | Er is immers nog geen lijst geselecteerd. In de taakbox zijn wel alle mogelijke |
| | 33 | parameters te zien voor de lijsten. Zolang er geen lijst geselecteer is, kunnen |
| | 34 | de parameters allemaal aangepast worden tot de gewenste filters (locatie, |
| | 35 | financieringsbron, medewerker, activiteit, aantekening en een periode) ingesteld zijn. |
| | 36 | |
| | 37 | [[Image(lijst-start.png, class=inline-center, align=center)]] |
| | 38 | |
| | 39 | Pas als een lijst geselecteerd wordt, worden gegevens opgehaald voor die lijst. |
| | 40 | |
| | 41 | [[Image(lijst-selected.png, class=inline-center, align=center)]] |
| | 42 | |
| | 43 | De gegevens blijven bewaard zolang de filters niet veranderen, dus als je naar |
| | 44 | een andere lijst wisselt, blijft het aantal staan. |
| | 45 | |
| | 46 | [[Image(lijst-selected2.png, class=inline-center, align=center)]] |
| | 47 | |
| | 48 | Bij elke lijst worden alleen die parameters getoond die er toe doen voor die |
| | 49 | lijst. Zo heeft de lijst ''openstaande acties'' geen activiteit-filter en |
| | 50 | geen aantekening-filter. |
| | 51 | |
| | 52 | [[Image(lijst-parameters.png, class=inline-center, align=center)]] |
| | 53 | |
| | 54 | Als de parameters worden veranderd, dan worden de nieuwe gegevens voor |
| | 55 | de geselecteerde lijst opgehaald. Andere lijsten die eerder zijn geselecteerd, |
| | 56 | die door de verandering opnieuw zouden moeten worden berekend, worden |
| | 57 | weggegooid. Dit is te zien doordat het aantal achter de lijst-naam verdwijnt. |
| | 58 | |
| | 59 | Met de knop ''verversen'' worden alle lijsten weggegooid en de geselecteerde |
| | 60 | lijst opnieuw berekend. De knop ''laden'' haalt voor alle lijsten met de |
| | 61 | huidige parameters de aantallen op -- dat kan gebruikt worden om het |
| | 62 | "oude" beeld te geven van de lijsten waar alle aantallen bij het openen |
| | 63 | meteen al berekend worden. Tot slot is er de knop ''export'' die de |
| | 64 | geselecteerde lijst exporteert naar een Excel-document (dit kan ook |
| | 65 | via het menu ''Bewerken'' -> ''Export''). |
| | 66 | |
| | 117 | === Lijsten (beheer) === |
| | 118 | |
| | 119 | Voorheen werden werk-, plan- en controlelijsten aangemeld in twee stappen: |
| | 120 | - callbacks met een specifieke naam registreren, |
| | 121 | - `s040_werklijsten.mode_toevoegen()` aanroepen, |
| | 122 | - definieer eventueel dispatch- en opbouw-functies. |
| | 123 | Deze manier van aanmelden is volledig vervangen. Lijsten worden nu zo aangemeld: |
| | 124 | - maak een Python subklasse van WerkLijst, PlanLijst of ControleLijst, |
| | 125 | - registreer die met `s040_werklijsten.registreer_implementatie()`. |
| | 126 | ACs met eigen werklijsten moeten die lijsten migreren naar de nieuwe opzet. |
| | 127 | De bestaande code voor het berekenen van de lijsten en aantallen kan behouden |
| | 128 | blijven, maar de registratie van de subklasse moet aangemaakt worden. Een |
| | 129 | eenvoudige (plan)lijst ziet er zo uit: |
| | 130 | |
| | 131 | {{{ |
| | 132 | class PlanActies(PlanLijst): |
| | 133 | identifier = "s040.PAC" |
| | 134 | naam = "Openstaande acties" |
| | 135 | tooltip = naam |
| | 136 | parameters = ("begindatum", "einddatum", "locatiecode", "medewerkercode", "financieringsbron") |
| | 137 | volgnummer = 100 |
| | 138 | |
| | 139 | def _get_aantal(self, parameters): |
| | 140 | return sa_s040_pac(parameters) |
| | 141 | |
| | 142 | def _get_lijst(self, parameters): |
| | 143 | return sl_s040_pac(parameters) |
| | 144 | }}} |
| | 145 | |
| | 146 | De identifier is doorgaans dezelfde als de uitgang van de callback. Met ''naam'' |
| | 147 | en ''tooltip'' wordt de weergave van de lijst op het scherm geregeld. |
| | 148 | Hier wordt de naam herhaald als tooltip, maar er mag ook een ander of langer verhaal staan. |
| | 149 | De ''parameters'' geven aan welke parameters / velden relevant zijn voor deze lijst. |
| | 150 | Geef hier de namen van de parameters (behalve wat hier te zien is, zijn ook nog |
| | 151 | "activiteitcode" en "aantekening" mogelijk) op. |
| | 152 | Met ''volgnummer'' wordt de volgorde van de lijsten beinvloed in het scherm. |
| | 153 | De functionaliteit van de lijst wordt door de twee functies `_get_aantal()` |
| | 154 | en `_get_lijst()` gerealiseerd. Die kunnen gewoon de bestaande functies |
| | 155 | die voorheen als callback zijn geregistreerd, aanroepen. |
| | 156 | |
| | 157 | NB. Als er `KeyErrors` voorkomen omdat het parameters object een bepaald attribuut |
| | 158 | mist, dan betekent dat dat de ''parameters'' lijst van de lijstklasse niet goed |
| | 159 | is gevuld. |
| | 160 | |
| | 161 | Eenmaal aangemaakt, wordt de lijst aangemeld met: |
| | 162 | |
| | 163 | {{{ |
| | 164 | s040_werklijsten.registreer_implementatie(PlanActies) |
| | 165 | }}} |
| | 166 | |
| | 167 | |