Eerste Nederlandse Wagtail CMS Sprint

Door Coen van der kamp | Op 24-06-2016
Wagtail is een Content Management Systeem gebaseerd op Django Framework. Op 16 en 17 juni vond de eerste Nederlandse Wagtail CMS Sprint plaats.

people_sprinting_on_wagtail_cms.jpg

Op donderdagochtend rijden we Arnhem uit. De Toyota automaat schakelt wanneer het uitkomt. We naderen de A12. De radio bevestigd ons vermoeden: ‘A12, Langzaam rijdend of stilstaand verkeer’. Roel wijst ons het alternatief: “Gewoon rechtdoor”... Four Digits is onderweg naar de Wagtail Sprint in Ede.

Een sprint is een bijeenkomst waarbij betrokkenen een bepaalde tijd geconcentreerd verder werken aan een project. In dit geval is het project Wagtail CMS en de bepaalde tijd 16 en 17 juni 2016. Betrokkenen zijn: Rob Moorman, Maurice, Dennis, Oktay, Paul Stevens, Janneke Janssen, Peter Govers en Henk-Jan van Hasselaar van Lukkien; Tom Dyson, Mikalai Radchuk, Matthew Westcott en Karl Hobley van Torchbox (UK), Thibaud Colas van Springload (NZL), Andy Babic van Rock Kitchen Harris (UK); Michael van Tellingen, zelfstandig ondernemer en Roel Bruggink, Franklin Kingma, Ludolf Takens en Coen van der Kamp van Four Digits.

dutch_wagtail_sprint_team.jpg

Het ontvangst bij Lukkien in Ede is hartelijk. Ik maak kennis met veel nieuwe gezichten zo ook met Rob Moorman de initiator en gastheer van deze Sprint. Na het welkomstwoord en kennismakingsronde, bespreken we wat belangrijk is om verder te ontwikkelen de komende twee dagen.

De doelen voor deze Wagtail sprint zijn:

  • Django 1.10 compatibility
  • Performance van Stream Fields
  • Integratie met Django Oscar
  • Verkenner component in React
  • Admin and search API
  • Open GitHub issues

Django 1.10 compatibility

Er is besproken dat Wagtail  tegen de Django master branch ontwikkeld moet worden. Zo worden problemen tijdig door de Wagtail tests ontdekt en lopen we nooit achter. Mikalai en Paul hebben Wagtail geschikt gemaakt voor Django 1.10.

Performance van Stream Fields

Wagtail heeft Stream Fields. In een Stream Field kan een redacteur verschillende blokken inhoud selecteren, ordenen en redigeren tot de gewenste paginaopmaak ontstaat. Elk blok heeft een vaste opmaak, waardoor een subtiele balans ontstaat  tussen redactionele vrijheid en uniforme presentatie.

Stream Fields zijn een uitkomst voor zowel ontwikkelaar als redacteur. Een bekend knelpunt bij Stream Fields is dat ze meermaals de database bevragen. Dit kan problematisch worden bij Stream Fields die veel blokken bevatten.

Michael van Tellingen, Matthew Westcott en Roel Bruggink zijn deze uitdaging aangegaan en hebben afzonderlijke database aanroepen gebundeld tot een enkele aanroep.

Wagtail integratie met Django Oscar

Oscar is e-commerce software en wordt gebruikt voor het beheren van o.a.  producten, voorraad, winkelmandjes en bestellingen. Peter, Henk-Jan en ik hebben een demowebsite gemaakt met zowel Oscar als Wagtail. De Oscar productcategorie is in Wagtail te bewerken. Via Stream Fields kan een categorie-landingspagina samengesteld worden. Daarnaast hebben we het proces gedocumenteerd in deze tutorial.

Verkenner component in React

Bij het beheren van inhoud in een CMS is het ontsluiten van de verschillende pagina’s essentieel voor een fijne gebruikservaring. De verkenner is een navigatie-element die dit mogelijk maakt.

Thibaud was al ver gevorderd met een nieuwe verkenner geschreven in React. Janneke en Rob zijn hem gaan helpen. Er is veel werk gaan zitten in het bespreken en formaliseren van de werkwijze en code structuur. Na een aantal weloverwogen beslissingen is de daad bij het woord gevoegd en is bestaande code aangepast zodat het voldoet aan de nieuwste standaard. 

Admin en Search API

De Search API voorziet de verkenner van data. Karl and Thibaud hebben deze onder handen genomen.

Open GitHub issues

Een bekende fout in Wagtail was dat verplichte Stream Fields leeg opgeslagen konden worden. De validatie van dit veld ontbrak. Franklin en Ludolf hebben de benodigde validatie toegevoegd en bijhorende tests aangepast. Oktay en Andy hebben nieuwe block types gemaakt. Integer, Float, Regex, Email and Decimal. Andy heeft documentatie geschreven voor zijn modeladmin. Michael and Matthew hebben de mogelijkheid om pytest te schrijven aan de testsuite toegevoegd. 

In retrospect 

Hierbij wil ik Rob Moorman bedanken voor het initiatief en organiseren van de Wagtail sprint. Lukkien hartelijk dank voor de hartelijke ontvangst, werkruimte en catering. De lunches, snacks en barbeque hebben ons verblijf tot een feest gemaakt!

De sprint was voor mij zeer leerzaam. Het is geweldig om te zien hoe iedereen gepassioneerd een bijdrage levert aan een open source project. Gesteund door enthousiaste ontwikkelaars heeft Wagtail een grandioze toekomst!

Tot de volgende Wagtail-sprint,
Coen van der Kamp