angle-up arrow-clockwise arrow-counterclockwise arrow-down-up arrow-left at calendar card-list chat check envelope folder house info-circle pencil people person person-plus phone plus question-circle search tag trash x

Reorganiseren, herstructureren, verplaatsen naar inhoudelijke items, thema's toevoegen, meer talen toevoegen

14 augustus 2019 door Peter
In Overige

Na het redigeren van de marathon ben ik Ringo Starr: ik heb blaren op mijn vingers!

post main image
unsplash.com/@creativegangsters

Dit bericht gaat over het bewerken van code, veel bewerken, veel bewerken, grote hoeveelheden bewerken! Wanneer je veel functionaliteit implementeert, merk je dingen die aandacht nodig hebben, dingen die je moet onderzoeken, hoe anderen dit doen, wat is het meervoud van bepaalde woorden, enz. Ik houd een todolijst bij en elke keer als ik iets opmerkte dat aandacht nodig had, voegde ik het toe aan deze lijst. De lijst werd te groot dus ik besloot om even te stoppen met het toevoegen van code en eerst veel van deze problemen op te lossen. Ik wist dat ik veel moest bewerken.

Verplaats blauwdrukken naar blauwdrukken/admin wanneer ze alleen door een beheerder worden gebruikt.

Ik heb een structuur waarin alle blauwdrukken op hetzelfde niveau staan, in een map die (verrassend genoeg) 'blauwdrukken' wordt genoemd. Ik heb besloten om alle beheerdersblauwdrukken te verplaatsen naar de subdirectory 'blauwdrukken/admin'. Ik moest dit ook doen voor de sjablonen, de blauwdruksjablonen van de beheerder verplaatsen naar 'sjablonen/admin'. Veel redactie.

Verplaats van blog- en paginamodellen naar content item

Dit was een groot probleem. Deze website is een blog maar heeft ook pagina's. Toen ik begon heb ik de modellen BlogPost, BlogPostAuthor, BlogPostCategory, BlogPostTag gedefinieerd. Daarna wilde ik mijn pagina's ook in de database hebben, dus heb ik Page, PageAuthor, PageCategory, PageTag gedefinieerd. Maar deze zijn bijna identiek aan de BlogPost. Dus weg met dit! Ik ben zowel naar ContentItemAuthor, ContentItemAuthor, ContentItemCategory, ContentItemTag verhuisd. Het ContentItem heeft een attribuut content_item_type dat aangeeft of het een blogbericht, een pagina of iets anders is. Ik heb dit niet uitgevonden, veel CMS en blogsoftware beheren de inhoud op deze manier. Waarom heb ik hier niet eerder aan gedacht? Ik deed maar probeerde gewoon veel andere dingen te laten werken. Wederom veel redactie.

Ik gebruik Alembic voor SQLAlchemy database migraties. Het is een prachtig programma, maar soms kan het je in zeer ernstige problemen brengen. Dit was ook hier het geval, waar ik tabellen die gekoppeld zijn aan andere tabellen moest verwijderen. Alembic kwam terug met berichten dat het niet in staat was om buitenlandse sleutels te verwijderen. Het probleem is dat Alembic in zo'n geval al een heleboel dingen heeft gedaan, wat betekent dat Alembic, na het handmatig verwijderen van een buitenlandse sleutel in Mariadb, begon te klagen dat ze al gedropte tabellen wilde laten vallen. Ik heb dit opgelost door het versiebestand te bewerken en de 'upgrade head' opnieuw uit te voeren, en het bewerken en herstarten tot er uiteindelijk geen fouten meer werden gevonden. Dit is eigenlijk ook een waarschuwing voor iedereen die Alembic wil gebruiken. Als je tegen problemen aanloopt dan kun je die vaak alleen oplossen als je een zeer goede kennis van SQL hebt. Hoe dan ook, veel redactie.

Ondersteuning voor thema's toevoegen

Deze website is zeer standaard Bootstrap. Het is leuk om sommige thema's te proberen en om dit te doen moet je zoveel mogelijk uit andere stylesheets verwijderen zodat een nieuw thema het kan overnemen. Ik had een style.css die ik in default.css en een custom.css heb opgesplitst. De eerste, default.css, bevat de zeer specifieke wijzigingen ten opzichte van het standaard Bootstrap thema, dit zijn slechts een paar regels. Dit bestand wordt alleen opgenomen wanneer de standaard bootstrap.min.css is inbegrepen. De tweede, custom.css, bevat niet-kleuren stijlen voor WTForms, enz. en moet altijd worden opgenomen. Er zijn veel thema's voor Bootstrap, ik heb ervoor gekozen om Bootswatch thema's toe te voegen, ze komen met een MIT licentie. Na het toevoegen heb ik ze selecteerbaar gemaakt uit de navigatiebalk. PROBEER DIT ZELF EENS. Nu kan ik gemakkelijk controleren of ik vergeten ben om styling dingen te verwijderen. Trouwens, ik hou nog steeds niet van de standaard bootstrap heading sizes. Daarnaast kan ik alleen maar zeggen dat dit een heleboel redactie was.

Meer talen toevoegen

Op een dag zou ik meer talen moeten toevoegen en ik besloot dat dit vandaag was. Ik moest het script dat communiceert met de DeepL API nog uitbreiden. Hoe dan ook, ik heb een aantal nieuwe talen toegevoegd, machinaal vertaald met behulp van de DeepL API. U kunt ze rechtsboven selecteren. Niet zozeer het bewerken deze keer, maar het voelde als veel bewerken.

En dan was er nog een insect.... een insect...

Er zitten altijd bugs in mijn code, maar na zoveel bewerken komt er een moment dat je iets anders wilt doen, programmeurs weten het. Het bleek dat bij het veranderen van een taal, de taalselector een waarde kreeg uit de vorige selectie. Grappig.... NIET. Ik heb het meertalige recept van de Flask website geïmplementeerd en het probleem zat in de code die de taal uit het eerste deel van de url haalt. Ik heb er geen rekening mee gehouden dat een taalwijziging ook door de bezoeker kan worden uitgegeven, wat wordt gedaan door een verzoek in de huidige url te doen met de gevraagde taal als bijlage. Oké, gerepareerd. Genoeg redactie voor vandaag.

En dan was er nog een andere bonus.... een andere bonus...

Voordat ik met alle veranderingen in de productie begon, dacht ik dat ik een post, deze post, over mijn montagemarathon schreef. Alles in orde totdat ik probeerde een afbeelding toe te wijzen aan deze post. Wat? Maar toen herinnerde ik me dat ik dit oversloeg terwijl ik het view bestand aan het bewerken was, niet nu dacht ik dat ik dit een tijdje later zou doen. Als je iets bouwt met Flask, ken je het scherm: Werkzeug debugger - Traceback (laatste oproep laatst). Ik ben blij, meer redactie op het laatste moment. Hé, geen probleem, ik zal het doen. Ik zal het bewerken.

Links / credits

Bootswatch: Free themes for Bootstrap
https://bootswatch.com

Laat een reactie achter

Reageer anoniem of log in om commentaar te geven.

Opmerkingen

Laat een antwoord achter

Antwoord anoniem of log in om te antwoorden.