| 42 | | == Thema-Engine == |
| 43 | | |
| 44 | | Omdat velden niet voor alle thema's van toepassing zijn, kan de layout van een decursus-entry aangepast worden per thema. De meest eenvoudige manier om dat te doen maakt gebruik van een ''thema-engine''. Deze wordt in het adaptatie-script ingesteld. De thema-engine maakt velden zichtbaar of onzichtbaar al naar gelang het gekozen thema. |
| 45 | | |
| 46 | | Als een veld slechts in enkele thema's zichtbaar hoeft te zijn, is het aan te bevelen het in de layout van de tabel `cursusentry` juist '''onzichtbaar''' te maken; dan laten we aan de thema-engine over om het zichtbaar te maken. Net zo kunnen we bij een veld dat meestal zichtbaar moet zijn (maar in enkele gevallen niet) het veld het beste een layout geven, en dan de thema-engine het laten verhullen als het niet nodig is. |
| 47 | | |
| 48 | | Documentatie over het gebruik van de thema-engine is te vinden in de broncode van [browser:/development/kern/s080_decursus/themaengine.py]. In de adaptatie-script wordt een thema gekoppeld aan gewenste effecten op de layout van de velden met code als deze: |
| 49 | | |
| 50 | | {{{ |
| 51 | | themaengine.registreer_thema( |
| 52 | | "uitbehandeld", |
| 53 | | layout={ |
| 54 | | "uitbehandelingsreden" : "2:8x3", |
| 55 | | "anamnese" : "-" |
| 56 | | }) |
| 57 | | }}} |
| 58 | | |
| 59 | | Het effect van zo'n thema met layout-wijzigingen is dat een thema "uitbehandeld" een eigen veld met codetabel kan krijgen, dat alleen zichtbaar is in dat thema, zoals in het screenshot hieronder. |
| 60 | | |
| 61 | | [[Image(decursusthema3.png)]] |
| 62 | | |
| 63 | | |
| 64 | | == Briefteksten == |
| | 52 | === Briefteksten === |
| | 53 | |
| 78 | | == Invoervelden == |
| 79 | | |
| 80 | | [[NoteBox(tip, Deze informatie maakt het mogelijk om tot aan de kleinste details de layout en het gedrag van decursusentries aan te passen. Voor dagelijks gebruik is het gebruik van een thema-engine te prefereren.)]] |
| | 68 | === Layout === |
| | 69 | |
| | 70 | In de `structuur.tsv` file kan je een ''groep'' invullen (in de kolom ''box'') voor een veld en een ''layout''. |
| | 71 | Met de groep geef je aan hoe de velden in groepjes bij elkaar binnen de box vertoond worden. |
| | 72 | Er komt een horizontale streep tussen de groepjes. In een gewoon decursus-entry heb je drie |
| | 73 | groepen, bovenaan de datum en het thema, dan een boel velden en onderaan de documenten-selector. |
| | 74 | Door in de structuur tabel te kijken zie je dat de groepen nummers 1, 2 en 8 (bestanden) hebben. |
| | 75 | |
| | 76 | Binnen een groep kan je een veld een volgnummer geven. Het veld wordt dan met dat volgnummer vertoond; |
| | 77 | velden met hetzelfde volgnummer worden bij elkaar vertoond op volgorde van binnenkomst. |
| | 78 | |
| | 79 | Voor het aangeven van een groep en volgnummer, gebruik de notatie ''groep''[`.`''volgnummer'']: |
| | 80 | het nummer van de groep, eventueel gevolgd door een punt (.) en een volgnummer. Hiermee kan je de |
| | 81 | '''plaats''' van een veld in een box helemaal vastleggen. |
| | 82 | |
| | 83 | De '''vormgeving''' van het veld wordt bepaald door de layout. Hiermee geef je aan hoe groot het |
| | 84 | label is voor het veld (in bijna alle boxen in OpenAC is dat 2) en hoe breed het veld zelf is |
| | 85 | (de volle breedte van een box is meestal 10, dus voor velden die de gehele breedte naast het label nemen |
| | 86 | schrijf je 8). Voor tekst-velden is het ook wel eens handig om ze meer dan een regel hoog te maken, |
| | 87 | zodat er meer tekst in te zien is. De notatie is ''labelbreedte''`:`''veldbreedte''[`x`''veldhoogte'']: |
| | 88 | de breedte van het label in vakjes (bijna altijd 2), een dubbele punt, dan de breedte van |
| | 89 | het veld (dikwijls 8), eventueel gevolgd door de letter `x` en dan de hoogte van het veld in regels. |
| | 90 | |
| | 91 | Een volledige plaats en vorm-bepaling van een veld kan er dus zo uit zien: `2.5 2:8x3`, te lezen als |
| | 92 | "in de tweede groep, het vijfde veld, met een label van 2 vakjes breed, en dan acht breed en drie |
| | 93 | regels hoog". Dat is een redelijk normale specificatie voor een tekstveld. |
| | 94 | |
| | 95 | De plaats kan alleen in de tabeldefinitie vastgelegd worden en is niet te veranderen |
| | 96 | tijdens het gebruik van OpenAC. De layout kan wel veranderd worden door in OpenAC |
| | 97 | van een entry de `meta.layouts` aan te passen. Dit wordt in de decursus-themaengine |
| | 98 | gedaan. De layout die je opgeeft aan de themaengine wordt toegepast -- zoals hierboven, |
| | 99 | schrijf je dan dingen als `2:8x3` in de layouts. |
| | 100 | |
| | 101 | == Thema-Engine == |
| | 102 | |
| | 103 | Omdat velden niet voor alle thema's van toepassing zijn, kan de layout van een decursus-entry aangepast worden per thema. De meest eenvoudige manier om dat te doen maakt gebruik van een ''thema-engine''. Deze wordt in het adaptatie-script ingesteld. De thema-engine maakt velden zichtbaar of onzichtbaar al naar gelang het gekozen thema. |
| | 104 | |
| | 105 | Als een veld slechts in enkele thema's zichtbaar hoeft te zijn, is het aan te bevelen het in de layout van de tabel `cursusentry` juist '''onzichtbaar''' te maken; dan laten we aan de thema-engine over om het zichtbaar te maken. Net zo kunnen we bij een veld dat meestal zichtbaar moet zijn (maar in enkele gevallen niet) het veld het beste een layout geven, en dan de thema-engine het laten verhullen als het niet nodig is. |
| | 106 | |
| | 107 | Documentatie over het gebruik van de thema-engine is te vinden in de broncode van [browser:/development/kern/s080_decursus/themaengine.py]. In de adaptatie-script wordt een thema gekoppeld aan gewenste effecten op de layout van de velden met code als deze: |
| | 108 | |
| | 109 | {{{ |
| | 110 | themaengine.registreer_thema( |
| | 111 | "uitbehandeld", |
| | 112 | layout={ |
| | 113 | "uitbehandelingsreden" : "2:8x3", |
| | 114 | "anamnese" : "-" |
| | 115 | }) |
| | 116 | }}} |
| | 117 | |
| | 118 | Het effect van zo'n thema met layout-wijzigingen is dat een thema "uitbehandeld" een eigen veld met codetabel kan krijgen, dat alleen zichtbaar is in dat thema, zoals in het screenshot hieronder. |
| | 119 | |
| | 120 | [[Image(decursusthema3.png)]] |
| | 121 | |
| | 122 | |
| | 123 | |
| | 124 | == Programmatisch Inrichten == |
| | 125 | |
| | 126 | [[NoteBox(warn, Deze informatie maakt het mogelijk om tot aan de kleinste details de layout en het gedrag van decursusentries aan te passen. Voor dagelijks gebruik is het gebruik van een thema-engine te prefereren.)]] |