Wat Morris stil bijhoudt terwijl je aan recepten werkt
Bij elke wijziging bewaart Morris een volledige momentopname van het recept, maakt hij zelf een unieke naam in het webadres, en houdt hij de zoekindex bij. Drie dingen die je nooit ziet gebeuren, maar waar ander gedrag op leunt.
Wanneer gebruik je dit
Je vraagt je af of een oude stand van een recept nog ergens bestaat, waarom een tweede gerecht met dezelfde naam ineens een volgnummer kreeg, of waarom een gerecht bij het zoeken ook op een ingrediëntnaam gevonden wordt.
Elke wijziging bewaart een momentopname
Bij het aanmaken van een recept, bij elke bewerking, bij het kopiëren naar een ander filiaal en bij het overnemen van wijzigingen uit een origineel legt Morris een volledige momentopname vast: het hele recept zoals het op dat moment is, met ingrediëntregels, stappen, allergenen en aantekeningen. Elke bewerking verhoogt daarbij het versienummer met één.
Die momentopnamen zijn meer dan een archief. De driewegvergelijking tussen een origineel en zijn kopieën leunt er volledig op: zonder "hoe het was" kan Morris niet zien wíe er iets veranderd heeft, alleen dát er iets verschilt.
Er is geen scherm waarop je door de historie bladert. De versies zijn wel
op te vragen via de API (GET /api/recepten/recipes/<id>/versions voor de
lijst, GET /api/recepten/versions/<id> voor één momentopname), en
terugzetten gaat niet vanzelf — een oude versie is leesvoer, geen
herstelknop.
Namen en webadressen maken zichzelf
Elk recept krijgt automatisch een korte naam voor intern gebruik (de "slug"): kleine letters, streepjes in plaats van spaties en leestekens, accenten eraf, hoogstens tachtig tekens. Die slug is uniek per filiaal — hetzelfde gerecht mag op twee filialen dezelfde slug hebben, twee gerechten op één filiaal niet.
Botst een nieuwe naam met een bestaande, dan gebeurt er het volgende:
- Maak je zelf een recept aan met een naam die al bestaat, dan krijg je eerst de keuze: het bestaande gerecht overschrijven, of aanmaken onder een voorgestelde naam met een volgnummer ("-2", "-3", enzovoort).
- Komt er bij het kopiëren naar een filiaal een naamgenoot tegen die daar los is aangemaakt, dan wijkt de kopie stil uit naar zo'n volgnummer-naam in plaats van af te breken.
- Dupliceer doet hetzelfde op je eigen filiaal: de kopie heet in
beginsel "
(kopie)", en dupliceer je hetzelfde gerecht nogmaals, dan wijkt de naam vanzelf verder uit (" (kopie)-2") in plaats van vast te lopen op de eerdere kopie.
De zoekindex loopt vanzelf mee
Het zoekveld bij Gerechten zoekt niet alleen in de naam, maar ook in de omschrijving, de plating-aanwijzingen, de categorie én de namen van de ingrediënten in het recept. Dat kan doordat de databank zelf een zoekindex bijhoudt die bij elke wijziging van een recept wordt ververst — accenten tellen daarbij niet mee, dus "creme" vindt ook "crème".
Je zoekterm werkt als begin-van-woord: "toma" vindt tomatensoep én tomatensalsa. Meerdere woorden moeten allemaal ergens voorkomen.
Let op
- Verwijderen is definitief, ook voor de historie. Verwijder je een recept, dan gaan de momentopnamen mee. Er is geen prullenbak.
- De momentopname legt vast wat jij wijzigt, niet wat er doorheen rekent. Een inkoopprijs die de kostprijs van dit gerecht verandert, maakt geen nieuwe versie aan — zie Een prijswijziging rekent overal in door.
Verwante artikelen
Bijgewerkt op 28 augustus 2026