Versiehistorie in een tabel, voor site en app

De versiehistorie stond als tekst in zowel de app als de website. Nu staat hij in
tabel version_history, met een beheerpagina (Beheer > Versiehistorie) op de site.
De site leest de tabel rechtstreeks, de app via de nieuwe actie app.versiehistorie.
Startrijen: db/handmatig/22b_versiehistorie_startrijen.sql (als root).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014MGLqt1uKfNARQHut9ifcx
This commit is contained in:
jf
2026-10-20 11:47:06 +00:00
co-authored by Claude Sonnet 5.5
parent 90c58fc42e
commit 5446dd4170
28 changed files with 996 additions and 108 deletions
+45
View File
@@ -0,0 +1,45 @@
-- MijnBesluit - de versiehistorie in de database in plaats van in de code
--
-- De lijst "wat is er nieuw" stond vast in twee bestanden (Versiehistorie.razor in de site en in de
-- app), en moest dus bij elke wijziging op twee plekken worden aangepast. En de app die al in de
-- Play Store staat kon een nieuwe regel nooit tonen. Nu staat de lijst hier: de beheerder
-- onderhoudt hem op de website (/beheer/versiehistorie), de site leest hem uit de database en de
-- app vraagt hem aan de server. Een nieuwe regel is meteen overal te zien.
--
-- version_history een regel per nieuwe of wezenlijk gewijzigde functie. Regels met dezelfde
-- datum (en versie) worden samen onder één kop getoond.
--
-- Regels die de server afdwingt (niet de database):
-- * Alleen een beheerder maakt, wijzigt of verwijdert een regel.
-- * Een verborgen regel (zichtbaar = 0) ziet alleen de beheerder.
-- * Platte tekst: er gaat geen opmaak of HTML door.
--
-- Draaien met:
-- mysql -u root -p mijnbesluit < db\22_versiehistorie.sql
--
-- Opnieuw draaien mag: er gebeurt dan niets.
--
-- Na dit script, eenmalig als root:
-- mysql -u root -p < db\02_applicatiegebruiker.sql (rechten op de nieuwe tabel)
-- mysql -u root -p mijnbesluit < db\handmatig\22b_versiehistorie_startrijen.sql (de bestaande regels)
USE `mijnbesluit`;
CREATE TABLE IF NOT EXISTS `version_history` (
`id` INT NOT NULL AUTO_INCREMENT,
`datum` DATE NOT NULL, -- de dag waarop de functie er kwam
`versie` VARCHAR(20) NULL, -- bijvoorbeeld 1.1; leeg als het geen app-versie betreft
`kop` VARCHAR(120) NOT NULL, -- het vette stukje: wat kun je nu
`tekst` VARCHAR(1000) NOT NULL, -- de uitleg erachter, platte tekst
`zichtbaar` TINYINT(1) NOT NULL DEFAULT 1,
`aangemaakt_op` DATETIME(3) NOT NULL,
`gewijzigd_op` DATETIME(3) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ux_version_history_datum_kop` (`datum`, `kop`),
KEY `ix_version_history_datum` (`datum`)
) ENGINE=InnoDB;
-- Startrijen staan NIET hier maar in handmatig\22b_versiehistorie_startrijen.sql: de uitrolagent
-- draait dit script met een account dat geen gegevens mag invoegen (zie 21_kluissoorten.sql).
SELECT 'Klaar. De tabel voor de versiehistorie staat klaar. Vergeet handmatig\\22b_versiehistorie_startrijen.sql en 02_applicatiegebruiker.sql niet (als root).' AS melding;