Attachments vanaf B2

Bijlagen zijn nu opvraagbaar via een URI, en niet alleen via base64 encoded properties.

Voorbeeld download met URI in de response

item.attachments, item.backgrounds, item.thumbnail en item.stickers leveren nu allemaal direct soortgelijk resultaat op, alsof je download zou hebben gebruikt zoals hierboven. Hierdoor hoef je niet langer een ID op te vragen, om daarna een nieuwe request te doen voor de bijbehorende info. Met één query krijg je nu alle searchresults, info over bijlagen, stickers enz. item.thumbnail default naar item.backgrounds[0] , mocht er geen thumbnail zijn. Dit kan verwarrend werken in de front-end als gebruikers een item willen wijzingen, denken ze wellicht dat de bijlage 2 keer beschikbaar is. Dat is dus  niet zo.

Property bags rechtstreeks via item

Gelijk met bovenstaande is de download van de propertybags vereenvoudigd zodat de juiste propertybags direct opgevraagd kan worden bij de items. De propertybags blijven als vrij speelveld voor front-enders, maar we willen een berg properties natuurlijk wel opnemen als 'reguliere' properties van Item of User

De volgende properties zijn nu in gebruik:

{'fieldDateEnd': 624,
 'fieldDatePresent': 624,
 'fieldDateStart': 624,
 'fieldExecution': 131,
 'fieldPurpose': 131,
 'fieldResult': 131,
 'fieldSummary': 657,
 'fieldTips': 131,
 'fieldTops': 131,
 'fieldUsersubmittedTags': 652,
 'fieldVideos': 565,
 'source_url': 284,
 'source_url_id': 284}

Stickers

Stickers zijn een nieuwe ontwikkeling. Hiermee willen we duidelijk aangeven via welke bron een item bij ons komt. Deze PNG transparante overlays (die Elisa in eerste instantie voor ons in elkaar draait) worden via de item.stickers property opgevraagd, en zijn zoals boven genoemd, direct als download te benaderen. Dus met {uri id filesize b64Content mimeType filename purpose } Een kleine waarschuwing over mimetype, deze gokt op basis van filename wat de verwachtte mimetype is. b64Content verdient natuurlijk niet meer de voorkeur, aangzien dit onze backend server wat veel knuffelt, en via uri kun je direct bij een file komen die we op Backblaze's B2 hebben geupload.

Stickers worden toegekend in de backend via tags. Er is een stickers metatag bijgekomen met kinderen. De kinderen zijn de stickers die gebruikt mogen worden. Deze hierarchie wordt niet afgedwonen, maar is wel raadzaam om enige logica te houden. Wel afgedwonen wordt dat er een etry is tussen een tag_gid en een attachment_gid  in de sticker tabel. Deze nieuwe tabel is een eenvoudige mapping tussen stickers en attachments. Een nog te ontwikkelen web2py interface voor deze tabel moet het mogelijk maken om bijlages te beheren die hangen aan tags; daarnaast is er een web2py interface nodig waarbij bijvoorbeeld Manon en Alette tags kunnen beheren. En daarmee ook de sticker tags.

High-available en scalable postgres

Fady en Jesse hebben hun hoofd gebroken over postgresql clusters. Na enige tijd kwamen we op pgpool-II. Dit ding ondersteund het om de streaming replication van de primary naar de 1e standby server te verplaatsen, mocht de primary sterven. Zonder dat de database-client daar wat van merkt.
Daar wordt dus nu aan gewerkt.

Een thumbnail vervangen werkte niet

Maar dat werkt nu wel weer. Wel handig om bij een update_item  ook the thumbnail parameter op te geven. 🤦‍♂️ En hoe lang je naar zoiets kan zoeken he?!

en verder ...

Kleine wijzigingen die er verder zijn geweest zijn bijvoorbeeld: 
 * de 404 pagina is verbeterd 
 * het filmpje toont niet meer in de carousel bij de plaatjes in, waar hij altijd fout werd weergegeven 
 * categorien getoond bij het bewerken van een item zijn nu niet meer over elkaar heen gedrappeerd, maar fatsoenlijk te selecteren. 
 * load skeleton voor de eerste zin is toegevoegd (zodat content minder 'heen en weer springt' na het laden)
 * 18 kleine schoonheidsfoutjes zijn opgelost op het Item weergave scherm
 * bij het annuleren van een wijziging werden niet alle velden teruggezet naar hun oorpsronkelijke waarde, nu weer wel
 * na het uitloggen verdwijnen de knoppen om jouw items te bewerken. Die bleven eerder staan.
 * je kunt nu goed zoeken naar de items van een persoon door gewoon de naam van die persoon in de zoekbalk te zetten (de naam van de auteur wordt meegenomen in de zoektermen	

Max en Remco hebben de front- en backend geupdate

We hebben gemerkt dat de meeste desktop browsers geen probleem hebben, dat gaat prima. Behalve uiteraard bij de browser van Remco, die om wazige redenen de hele eddie pagina niet meer toont. Eigenwijs waarschijnlijk. Zo beestje, zo baasje....    Voor mobiele klanten geld dat de browser vaak niet de pagina update als er tabbladen open staan waar delen.meteddie.nl al in geopend is. Dan moeten de geopende eddie tabbladen eerst gesloten worden, voordat de browser een nieuwe versie ophaalt. (kan verschillen per browser, model, versie, instellingen enz)     Verder:

  1. Verbetering van het contact tussen de front- en de backend.
  2. Dit is nu veel beter te begrijpen voor nieuwe gebruikers van de API.
  3. de URL's worden in 1 keer mee opgehaald, ipv via losse aanvragen. Eerder deden we voor 1 pagina weergave ruim 30 requests dat zijn er nu ongeveer 9 minder. De backend in klaar om dit met nog 9 te reduceren, dat gaat max nog inbouwen.
  4. Stickers zijn mogelijk, vanuit de backend. De front-end wordt nog aangepast, net als het administratie systeem om ze toe te kennen.
  5. Plaatjes komen nu uit een aparte server ergens anders op het internet, hierdoor wordt onze server minder belast en reageert de site sneller, maar ook onze server kan veel meer klanten tegelijk aan.
  6. Caching binnen de client is verbeterd.   (bij het uploaden van een bestand wordt dat bestand niet direct weer gedownload om weer te geven, maar zie je de lokale kopie)
  7. Bij het uploaden van een foto is de bevestigen-knop duidelijker te herkennen
  8. Het uploaden van een thumbnail werkt naar behoren
  9. Het klikken op een notificatie om naar de bron van de notificatie te gaan werkt naar behoren

#whatsnew