Skip to content

Releases: rodlukas/UP-admin

0.9.4

26 Sep 17:54
Compare
Choose a tag to compare
  • refaktoring kódu v pythonu - kód je jednodušší, srozumitelnější a efektivnější, respektování PEP8
  • dočasný workaround (alert) pro chybějící required v react-selectu
  • úpravy a opravy API - na backendu nechybí žádná logika, která doteď mohla být třeba i jen na frontendu - už fungují všude PATCH metody, kód API je rozumnější, efektivnější a přehlednější a nedělají se v něm zbytečné kraviny navíc, rozumně se např. už pracuje i s takovými atributy, které lze zaslat na API jako null, ošetření všech možných případů - opravuje #52
    • kompletní validace tel. čísla na backendu i frontendu, vylepšení způsobu validace a dělení čísla na mezery už při psaní o formuláře, následné odstranění mezer až na backendu
    • oprava chyby způsobující chybu při úpravě stavu účasti předplacené lekce
  • aktualizace závislostí pythonu (django-debug-toolbar a request doplněk), JS (nodejs, yarn, npm + konfigurace travisu tak, aby vydání nových verzí nezpůsobilo nefunkční build)
  • dodání verze release do appky, vylepšení travis debug výpisů
  • napojení logů z heroku na Logentries
  • odstranění křížku pro reset react-selectu, aby nedocházelo k vymazání "omylem", když funkcionalita stejně není třeba

0.9.3

22 Sep 20:07
Compare
Choose a tag to compare
  • oprava chyby, která způsobovala nefunkční úpravu a přidávání lekcí pokud se lišili členové skupiny od příslušné lekce (např. došlo mezitím k odebrání člena skupiny, lekce mu ale zůstala - aplikace chtěla provést korekci počtu předplacených lekcí..) (129f1eb)
  • lepší vyznačení odchozích a příchozích plateb (odchozí červeně jako v bankovnictví) + zarovnání data a sumy vpravo (7315a32)

0.9.2

19 Sep 08:00
Compare
Choose a tag to compare
  • jiný název proměnné obsahující API_KEY banky, aby se obsah neukazoval např. v Sentry (c16de98)
  • vylepšení chybových oznámení - zobrazují se déle a jsou hezky naformátované, opravuje #47 (51137cb)
  • jméno klienta/skupiny v kartě tučně (2a4db06)

0.9.1

16 Sep 11:10
Compare
Choose a tag to compare

Nejdůležitější změny

  • tlačítka pro přepínání týdnu v diáři už neodskakují podle délky data v titulku (371ce2f)
  • utils funkce pro práci s částkami v CZ formátu (nehledě na jazyk, při EN jazyku v OS byly formáty jiné, což je nežádoucí) (efc1eb7)
  • placeholder date a time input polí (pro IE/macOS, kteří input date/time nepodporují) (7ef5d04)
  • oprava slévání tlačítka Přidat s obsahem pod (044f3ad)
  • oprava šířky sloupců tabulek

Drobná vylepšení

  • zarovnání nadpisů na střed v nastavení

0.9.0

13 Sep 17:03
Compare
Choose a tag to compare

Nejdůležitější změny

  • MNOHONÁSOBNÉ ZRYCHLENÍ APLIKACE - díky optimalizaci SQL dotazů a využívání select_related, prefetch_related a Prefetch - zbytečně se spousta dotazů opakovala, stačí je přeci provést jednou a hned a je hotovo.. → používá se méně dotazů a jsou komplexnější (JOINy) (opravuje #25) - při testech až čtyřnásobné zrychlení při náročnějších operacích a zahlcení
    • další vylepšení rychlosti:
      • z API se vždy posílá jen ID attendancestate (appka už má díky contextu vše co potřebuje) (0ca5698)
      • číslo lekce se počítá v lekci (dříve se zbytečně počítalo v attendance, tzn. pro každou účast zvlášť a frontend si vzal hodnotu z první účasti...) (0ca5698)
      • zvýšení CONN_MAX_AGE na 10 minut pro efektivnější využití connection (0ca5698)
      • modelový příklad - začínalo se na 637 SQL dotazech pro určitou kartu skupiny, které zabraly 35.4 s (debug mód + vzdálená DB na heroku) a postupnými úpravami se kleslo na 113 dotazů a dobu vyřízení 7 s, dále už se neměřilo, ale provedly se ještě další optimalizace
  • přidání django-debug-toolbaru pro debugování, přístup k asynchronním požadavkům, příslušným SQL skriptům apod., závislý na nastavení DEBUG, tedy je možné jej jednoduše změnou proměnné prostředí zpřístupnit i na Heroku nasazené appce (0ca5698)
  • indikace práce při delším načítání než 5 sekund (bbf4d7e)
  • úpravy konfigurace CI: nové testovací prostředí na HEROKU + na staging a produkci se appka nahraje až při tagu/releasu, rozdělení CI/CD skriptů do jednotlivých souborů, zavedení dalších kontrolních výpisů, okomentování a zlepšení kódů, dynamická volba DEBUG v závislosti na prostředí (výchozí je False, pokud se neuvede jinak) → lze tedy např. v testovacím prostředí dynamicky měnit
  • nastaveno automatické zálohování databáze 1x za den v noci ve 3 h (opravuje #11)
  • oprava funkce pro převod data na včera/zítra (slova byla prohozená) (ec60697)
  • vylepšená detekce chyb a zjednodušení kódu pro práci s Fio bankou (ošetření, více info pro uživatele, popis chyb a důvod...)
  • zaveden JS smoke test na Travisu + code coverage se počítá spolu s JS
  • dodání CZ předvolby k odkazu pro vytočení tel. čísla, zobrazení čísla s mezerami, uložení bez mezer do DB (3d47efb)
  • jednodušší indikace viditelnosti kurzů a stavů v nastavení (aaf3909)
  • vylepšení velikosti sloupců tabulek (aby se např. vešlo celé tel. číslo) (aaf3909)

Drobná vylepšení

  • datum a čas commitu v title odkazu v liště s menu (955760f)
  • úpravy autofocusu formulářů - autofocus na přihlašovací formulář (stačí načíst stránku a kliknout Enter a dojde k přihlášení, není potřeba klikat do formuláře/na tlačítko), autofocus na klienta u zájemců, povolení autofocusu na celé Modal okno s formulářem pro lekce (klávesou Tab se dá rovnou pohybovat ve formuláři) (71d19cf)
  • nová ikona RemindPay (info předtím připomínalo vykřičník z formulářů) (2baa0de)
  • aktualizace js a python deps - díky tomu je mj. aplikace relativně použitelná i v IE9 😄
  • vylepšení README - dodání info o automatickém zálohování DB, vylepšení příkazů apod.
  • rozšíření .gitignore souboru o novou složku (0ca5698)
  • napříč kódem se vždy když je to možné NEpoužívá v querysetech "__pk" → došlo tedy ke sjednocení práce querysetů (0ca5698)
  • zpřehlednění a zjednodušení konfiguráku Travisu (jednodušší lifecycle, komentáře...)

Drobné opravy

  • oprava špatně napsaného atributu autoCapitalize (ec60697)
  • oprava funkce pro převod data na včera/zítra (slova byla prohozená) (ec60697)

0.86

29 Aug 08:48
Compare
Choose a tag to compare

Nové funkce:

  • vytvoření chybové hlášky když nastane chyba 503 (request timeout), odstranění nepoužívaného stringu pro hlášku (c858545)
  • do konzole se vypíše text chybové notifikace (c858545)
  • pro python závislosti se používá Pipfile (s pipenv) (c858545)

Vylepšení a opravy:

  • trochu přehlednější nastavení Djanga (681f380)
  • odstranění LOCATION z CACHE nastavení (není potřeba) (681f380)
  • oprava chyby v přehledu transakcí způsobující výpis chyby v konzoli prohlížeče (28784ae)
  • refresh Heroku API tokenu a vyjmutí z .travis.yml a nahrazení proměnnou prostředí
  • vylepšení chybových výpisů do konzole: už se nebude objevovat syntax error při parsování JSONu při tvorbě errMsg (4ce1b8c)
  • odstranění chyby, která způsobovala volání setState na komponentu Bank i po jejím unmountu (993a3b9)
  • odstranění chyby, která při chybě při požadavku způsobila "TypeError: error.response is undefined" (0a43fa4)
  • na iOSu už uživatelské jméno nebude při psaní začínat velkým písmenem (30e62dd)
  • zkrácení "staging verze" na "stage", aby se neodsouvalo tlačítko menu na další řádek (30e62dd)

0.85

07 May 19:38
Compare
Choose a tag to compare

release proběhl 28 Aug 2018

Nové funkce:

  • propojení s FIO API - PŘEHLED TRANSAKCÍ V BANCE v přehledu: zobrazují se transakce za posledních 14 dnů, FIO omezuje dotazy na API na 30 s, takže server cachuje odpověď banky rovnou 60 s, zobrazuje se i aktuální zůstatek + barva je podle toho, zda je na účtu dostatek peněz na zaplacení nájmu (zelená, resp. červená s upozorňujícím vykřičníkem s dalšími informacemi), po 60 s možnost výpis obnovit, případně lze jít do bankovnictví, opravuje #50
    • v přehledu transakcí se zvýrazňují dnešní platby + včerejší a dnešní platby nemají datum, ale slovo "dnes/včera" (edf7521)
  • vytvoření favicony aplikace (17ea0d9)
  • kompletně přepracované rozhraní pro předplacené lekce skupin i individuálních klientů (a28684a, b17b48a), napravuje #49
    • skupiny: možnost evidování předplacených lekcí pro každého klienta zvlášť
    • skupiny i individuální: automatické přidání předplacené lekce při omluvě/zrušení lekce ze strany lektorky → využití Membership entity, vytvoření API pro membership
    • individuální: v poznámce automaticky přidané předplacené lekce je přidáno "Náhrada lekce"
  • klienti ve skupinách se nyní všude řadí podle abecedy (dle příjmení od A po Z) (a28684a)
  • dj-database-url nahrazeno pokročilejším django-environ → ve všech prostředích se pracuje stejným způsobem s příslušnými proměnnými prostředí, je čistější nastavení Djanga a umožňuje díky .env souboru (je v .gitignore) použít i lokální proměnné prostředí (jinak těžko univerzálně nastavitelné i v rámci IDE) + odstranění zašifrovaných proměnných v konfiguráku travisu a přesun přímo do repo (3da9db1)

Opravy a vylepšení

  • vylepšení README, .gitignore a struktury projektu (17ea0d9, 654b9fb, a51cea1)
  • oprava nefunkčního přidávání lekcí (nesmyslná podmínka) (e010d0b)
  • oprava chyby způsobující nefunkční manuální produkční verzi na lokálu (špatné nastavení ALLOWED_HOSTS) (17ea0d9)
  • oprava kontroly časového konfliktu - nešla přidat zrušená lekce v dobu, kdy už nějaká nezrušená byla (b17b48a), opravuje #46
  • oprava práce se setState - zbytečně se přes const state = this.state nastavoval pak ve setState celý nový stav, což je zbytečné a navíc to může způsobovat problémy při dalším volání setState (které když proběhne před tímto, může přijít v niveč, protože jej nahradí tato kompletní změna stavu, ačkoliv se má měnit jen malá část stavu komponenty) (2e91a6d)
  • úprava rozhraní komponent s tlačítky (změna title na content) (3da9db1)
  • oprava chyby způsobující nekorektní zobrazení lekcí v předchozím dnu - když např. byla lekce v 1 h ráno, v diáři se ukázala v předchozím dni jako poslední → porovnávávání datumu s TZ s datumem bez TZ → vyřešeno použitím "__date" v querysetu (3da9db1)
  • k odkazu na github dodání "noopener noreferrer" z důvodu bezpečnosti (3da9db1)

0.8

19 Aug 15:07
Compare
Choose a tag to compare
0.8
  • přechod na react-select v2 (b4a04f5), opravuje #17
  • aktualizace js a python závislostí
  • POUŽÍVÁ SE REACT CONTEXT API → méně zbytečných požadavků na backend (otevření nových komponent/stránek nezpůsobují znovunačítání attendancestates z API, využívá se již načtené při první návštěvě aplikace - 2 možnosti použití: HOC/klasická komponenta uvnitř render metody), opravuje #4 (+ využití pro přihlašování, viz. níže)

Nové funkce:

  • využívání react-selectu napříč aplikací (výběr kurzu), opravuje #17
  • rozšíření API o dotaz na viditelné kurzy → možnost využití v react-selectu (zobrazení viditelných, pokud není zvolen neviditelný) (8499903)
  • nový vzhled RemindPay - vykřičník s title
  • zavedení ErrorBoundaries → při jakékoliv chybě JS nezmizí celá aplikace a nezůstane pouze prázdná stránka, lze se pohybovat dál napříč aplikací, pouze se zobrazí chybová stránka s výpisem chyby a dalšími informacemi
  • funkční zobrazení vývojové verze na jiném zařízení v síti (08c2f79)
  • automatický výběr kurzu při přidávání lekce → vypočítává se nejpravděpodobnější kurz a ten se sám vybere (pokud klient chodí na 1 kurz, vybere se ten, na žádný - žádný se nevybere, na víc - vybere se ten, jehož lekce je ze všech nejpozději + předplacené lekce až na posledním místě) (244e757)

Opravy a vylepšení:

  • KOMPLETNĚ PŘEPRACOVANÉ PŘIHLAŠOVÁNÍ na frontendu - nově se používá React Context → spousta benefitů pro současnost i budoucnost - napříč aplikací je přístup k IS_AUTH (nejen) a dalším položkám, v rámci aplikace se tak může mnohem přehledněji pracovat se stavem uživatele (a případně ho i rozšířit), jednoduše přesměrovávat apod.
    • změna prefixu tokenu na 'Bearer' (používá se více, např. i v Postmanu) (0aa69fc)
    • nový způsob obnovování tokenu (aby nenastal nikdy problém, že uživatel bude mít otevřenou aplikaci, nebude přecházet mezi stránkami a maximálně bude dělat nějaké requesty např. v kartě klienta a pak ho aplikace najednou vykopne - to se dělo, protože se token obnovoval pouze při přechodu mezi PrivateRoute) (ce4c258), opravuje #13
    • limity:
      • dotaz na platnost tokenu napříč aplikací (kde se používá autentizace, tedy ne ve veřejných částech): 1x/3.5 h
      • token s platností <= 65 min bude obnoven
      • platnost obdrženého tokenu: 8 h
      • možnost obnovování tokenu 2 dny od obdržení prvního tokenu
    • už nelze otevřít přihlašovací stránku když je uživatel už přihlášen, opravuje #42
    • na mobilu už se nezobrazuje ikonka hamburger menu když uživatel není přihlášen, opravuje #41
    • během přihlašování se zobrazuje načítání (předtím svítil formulář dokud se přihlášení nezdařilo)
    • sloučení veškeré logiky přihlašování do AuthContext (zrušení authService) → srozumitelnější práce - už nejsou potřeba callbacky apod. (08c2f79)
  • komponenta Loading nově bere prop s textem, pokud se nezadá, obsahuje "Načítání" (používá se např. pro "Probíhá přihlašování") (ce4c258)
  • všechny formulářové pole správně používají id a for → všechny podporují kliknutí na label (8499903, b4a04f5)
  • odstranění práce s konstantami UNDEF napříč aplikací (8499903)
  • skrytí výchozího stavu účasti vyresetuje výchozí stav a je jej potřeba znovu nastavit (47b1c08)
  • v mobilní verzi se při přechodu mezi stránkami zavře otevřené menu (8075afb)
  • drobné úpravy a vylepšení UI (zarovnání apod.)
  • zjednodušení kódů a struktury souborů, refactoring, odstranění všech zbytečných getDerivedStateFromProps (nahrazeno např. componentDidUpdate) a Fragment, používání více arrow functions
  • vylepšení funkčnosti diáře - při kliknutí na diář v menu (když už je uživatel v diáři) se dny v diáři obnoví jen když je v jiném týdnu než aktuálním (32dbc13)
  • jednodušší odlišení prostředí díky předpřipraveným funkcím, nově se zobrazuje prostředí i v title (dev/staging) (69d3021)
  • upgrade na WhiteNoise v4 - projevení potřebných změn, přidání whitenoise.runserver_nostatic do INSTALLED_APPS, aby se chování v dev verzi co nejvíce (co se týče statických souborů) blížilo produkci a staging (857f095)
  • vylepšené zobrazení verze v nastavení (vzhled a formát data a času) (bcd0621)
  • vylepšené výpisy v konzoli
  • odstranění TODO: používání nepěkného window.location.href při API status kódu 401/404 použitím vlastního objektu history → použije se react-router a krásně plynule se přejde např. na NotFound stránku/Login (0c7ebeb, b945061), opravuje #43
  • oprava a vylepšení chybových hlášek při neúspěšných požadavcích na API (více informací, správný převod objektu na string - zobrazovalo se jen [object Object]...) (b945061)
  • oprava validace parametru platby u předplacených lekcí - přes PaidButton šla nastavit předplacená lekce jako nezaplacená, ve formuláři bylo pole disabled ale API nic na backendu nekontrolovalo → validace i na backendu včetně opravy chyby s PaidButton (134cc33)
  • oprava logiky výpočtu "příště platit" - nebral v úvahu předplacené lekce (e84aa4e)
  • oprava špatné kontroly časového konfliktu - v případě zrušené lekce se nedala přidat ve stejný čas jiná (4460575), opravuje #46
    • spolu s tím změněn způsob evidence zrušených lekcí (je automaticky zrušená na frontendu i backendu když jsou všichni účastníci omluveni) - na to je příslušně uživatel upozorněn ve formuláři (a zároveň zrušení nejde měnit, protože by backend lekci stejně tak či tak zrušil)
    • také bylo potřeba dodat do nastavení konfiguraci stavu "omluven"
    • v diáři a přehledu se zobrazují i zrušené lekce (dříve byly vyjmuty)
    • dodání upozornění uživatele při předplacení lekci, že opravdu není možné nastavit předplacenou lekci jako neplacenou
  • přepsaný request → jednodušší a srozumitelnější kód, vylepšení používání axiosu (6401ef4)
  • vylepšení gitignore → když se spustí produkční verze na lokálu, nenabízí se commit příslušných souborů (6401ef4)

2. měsíc po BP

06 Aug 19:53
Compare
Choose a tag to compare
  • kompletní přepracování všech komponent - rozdělení na více podkomponent -> zpřehlednění, konzistentní, jednodušší a srozumitelnější kódy v méně úrovních, refaktoring, srozumitelnější pojmenování proměnných, využívání arrow functions (5df63a8, f7336a5, f05489b), opravuje #24, #34
  • rozdělení posledních CSS stylů ke komponentám (ecebe8c, fd1ef97)
  • drobné úpravy a opravy (např. UI) (ecebe8c), opravuje #29, #33
  • sjednocení verzí nástrojů na lokálu, Travisu a produkci (vydání nové verze nějakého nástroje, např. yarn, nezpůsobí nefunkční buildy CI)
  • asynchronní update všech dní v týdnu v diáři při nějaké změně (ca53c16), opravuje #19
  • předplacená lekce už nemůže mít nastavenou platbu na "neplaceno" (7fbbf04), opravuje #38

Nové funkce

  • podrobnější chybové hlášky (např. při ProtectedError, když se uživatel pokouší mazat instanci, na které závisí jiné instance s chráněným příslušným FK; podrobnější info o časovém konfliktu...) (d4fdf20, 7edd796), opravuje #30, #31
  • zavedení Sentry pro logování chyb z Djanga i Reactu (aktivní na produkci a staging, nikoliv na lokálu)
  • propojení se Slackem
  • vytvoření staging prostředí (totožné s produkčním, odlišené pouze badgem a barvou lišty), opravuje #36
  • výpis verze aplikace (hash commitu) v nastavení a ve staging prostředí i v horní liště

1. update po BP

14 Jul 17:59
Compare
Choose a tag to compare
  • migrace na nový životní cyklus komponent Reactu (503b9ac), opravuje #2
  • oprava a vylepšení funkčnosti tlačítka Dnes (503b9ac)
  • zjednodušení kódů, lepší zarovnání, odstranění zbytečných částí, sjednocení, vytvoření nových komponent napříč aplikací, refaktoring
    • zavedení používání React Fragmentů (94e2741)
  • aktualizace závislostí a projevení příslušných změn
  • oprava chyby při označování nepředplacené lekce jako předplacené (e44e984)
  • kompletně přepracovaný formulář pro lekce (3617f23), vylepšení dalších formulářů a UI, opravuje mj. #15
  • vylepšené podrobnější chybové výpisy v notifikacích (068e6de, 91c4d0e), opravuje #18
  • vylepšené zobrazování datumů (v případě potřeby se zobrazí i rok) (f74acc2), opravuje #22
  • nastavení DEBUG = False pro Django produkci, opravuje #23
  • úprava práce s tokeny, zašifrování, refresh FontAwesome tokenu, opravuje mj. #28
  • CI: sjednocení skriptů pro integrační a produkční prostředí
  • dodání užitečných příkazů do README

Nové funkce

  • rychlé přidávání více předplacených kurzů (3617f23), opravuje #8
  • ruční volba výchozího stavu účasti (87bf055), opravuje #12
  • evidence zájemců o kurzy (9c3c9a7), opravuje #5
  • kontrola časových konfliktů lekcí (068e6de, 91c4d0e), opravuje #9
  • viditelné odlišení vývojové verze od produkční (881099a), opravuje #20
  • procházení diářem šipkami na klávesnici (7393d30, 2f0b5f8), opravuje #21
  • snadnější manuální spouštění produkční verze (dac7d41)