Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Přepisování údajů dárce #129

Closed
wants to merge 17 commits into from

Conversation

j-jzk
Copy link
Collaborator

@j-jzk j-jzk commented May 25, 2021

Přidává možnost přepsat osobní údaje dárce.

Closes #73
Depends on #133

TODO:

  • brát donors_override v úvahu při počítání tabulky donors_overview
  • zvýrazňování dárce s upravenými údaji v seznamu
  • testy
  • upravit layout formuláře
  • samostatný validátor pro PSČ a číslo pojišťovny

@j-jzk j-jzk force-pushed the donors-override branch from 71ac75e to c0946c8 Compare May 25, 2021 12:57
Copy link
Owner

@frenzymadness frenzymadness left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Celkově se mi to líbí. Některé věci jsou lehce jinak než u jiných view, ale to není problém a neznamená to, že je to špatně.

Jen tu chybu s přeuložením je potřeba opravit.

registry/donor/forms.py Show resolved Hide resolved
registry/donor/forms.py Outdated Show resolved Hide resolved
registry/donor/forms.py Outdated Show resolved Hide resolved
registry/donor/forms.py Show resolved Hide resolved
registry/donor/views.py Outdated Show resolved Hide resolved
registry/donor/views.py Outdated Show resolved Hide resolved
registry/templates/donor/detail.html Outdated Show resolved Hide resolved
Copy link
Owner

@frenzymadness frenzymadness left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jen pár komentů, když jsem šel kolem.

migrations/versions/60a681c463a2_create_donors_override.py Outdated Show resolved Hide resolved
migrations/versions/60a681c463a2_create_donors_override.py Outdated Show resolved Hide resolved
registry/donor/models.py Outdated Show resolved Hide resolved

@blueprint.get("/override/all")
@login_required
def get_overrides():
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Velmi zajímavá implementace. Původní myšlenka byla, že pokud má dárce aktivní override, tak se jen zvýrazní celý řádek v tabulce, ale tohle je zajímavější, i když trošku komplexnejší.

Pozor na to, že stejné zvýraznění je třeba udělat v tabulkách pro přípravu a udělování ocenění.

@j-jzk j-jzk assigned j-jzk and unassigned j-jzk May 27, 2021
@j-jzk j-jzk force-pushed the donors-override branch from b584b4a to 789ef13 Compare June 8, 2021 19:54
@j-jzk
Copy link
Collaborator Author

j-jzk commented Jun 8, 2021

Konečně jsem se k tomu dokopal :)

@frenzymadness
Copy link
Owner

A jsme ready na review?

@j-jzk
Copy link
Collaborator Author

j-jzk commented Jun 9, 2021

Ještě tam musím zakomponovat #133.

@j-jzk j-jzk force-pushed the donors-override branch from 628097c to 6d3f008 Compare June 15, 2021 17:53
@j-jzk j-jzk marked this pull request as ready for review June 15, 2021 18:08
@adelpopelkova adelpopelkova added this to the MVP milestone Jun 20, 2021
@adelpopelkova
Copy link
Collaborator

Zkoušela jsem to proklikat, vypadá to dobře, ale možná bych u toho zvýraznění zvolila trochu více kontrastní barvu. Na té šedé je to vcelku špatně vidět.

@adelpopelkova
Copy link
Collaborator

Super, teď už ta barva vypadá lépe.

Copy link
Owner

@frenzymadness frenzymadness left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Funkčně se mi to moc líbí. Ke kódu jsem napsal jen pár komentářů. JS moc nemám rád, ale tady plní celkem hezky svou funkci, tak snad se to brzy nepokazí. Jen bych ještě poprosil, zda by šlo dát pár vzorových overrides do testovacích dat.

Jinak už zbývá jen udělat rebase a vyřešit konflikty, tak snad ti nový datatables backend nezpůsobí moc potíží.

registry/donor/forms.py Outdated Show resolved Hide resolved
registry/donor/forms.py Outdated Show resolved Hide resolved
registry/donor/forms.py Outdated Show resolved Hide resolved
tests/test_donor.py Outdated Show resolved Hide resolved
registry/donor/views.py Outdated Show resolved Hide resolved
registry/templates/donor/overview.html Outdated Show resolved Hide resolved
j-jzk and others added 11 commits August 13, 2021 19:11
 - přidána tabulka donors_override
 - přidán formulář pro obsluhu tabulky

Záznamy z tabulky donors_override se zatím neprojeví v donors_overview.
Data z tabulky donors_overview se přepisují daty z tabulky
donors_override.
 - nešlo vícekrát uložit (přepsat) záznam u jednoho dárce
 - u sloupců, které měly záznam v donors_override, který byl následně
   smazán, se záznam v donors_overview nepřepsal na původní hodnotu
   (mějme např. Jana Nováka, kterého přejmenujeme na Josefa Vomáčku.
   Když smažeme ve formuláři donors_override křestní jméno a uložíme,
   zůstane dárce jako Josef Vomáčka a ne Jan Vomáčka, jak jsme chtěli)
Co-authored-by: Lumír 'Frenzy' Balhar <[email protected]>
Přidáno zvýraznování dárců se záznamem v donors_override.
- změněny verze migrací
 - porovnávání verzí SQLite změněno na porovnávání tuplů

Co-authored-by: Lumír 'Frenzy' Balhar <[email protected]>
V HTML byl formulář zachován jako flexbox, ale formuláře pro uložení a
smazání výjimky byly sloučeny zpět do jednoho (WebTest si neuměl poradit
s formulářovými prvky, které jsou mimo formulář a jsou s ním propojené
přes atribut `form`).
j-jzk added 3 commits August 13, 2021 19:25
Upravena validace formuláře pro přepisování udajů dárce, aby používala
NumericValidator.
- funkce DonorsOverrideForm.init_fields nic nevrací
- mv DonorsOverrideForm.{_,}get_field_data
- funkce DonorsOverrideForm.get_field_data se chová smysluplněji
    - vrací výslednou hodnotu místo toho, aby ji ukládala
    - volá se samostatně místo toho, aby se volala automaticky při
      validaci
    - byl zkrácen její kod
- test pro DonorsOverride získává informace z databáze a ne
  regexem ze stránky
- view donor/get_overrides nevolá zbytečně str() na string
- styl pro podbarvení elementu <mark> byl přesunut na sjednocené
  místo
@j-jzk
Copy link
Collaborator Author

j-jzk commented Aug 13, 2021

Jen bych ještě poprosil, zda by šlo dát pár vzorových overrides do testovacích dat.

K čemu by tam byly? Vzoroví dárci tam jsou proto, aby se na nich daly zkoušet různé funkcionality, ale u vzorových overridů žádné takové využití nevidím.

@frenzymadness
Copy link
Owner

Jen bych ještě poprosil, zda by šlo dát pár vzorových overrides do testovacích dat.

K čemu by tam byly? Vzoroví dárci tam jsou proto, aby se na nich daly zkoušet různé funkcionality, ale u vzorových overridů žádné takové využití nevidím.

Když si spustíš instanci pro vývoj, je dobré tam mít všechny funkcionality aktivní a i s nějakými daty, takže v případě problémů hned vidíš, kde co je. Také pro testy se to hodí, i když ty si mohou libovolně přidat a odebrat cokoli je pro daný test třeba. Napadá mě, že to tam vlastně nemáme ani pro poznámky nebo ignorované dárce, takže se na to klidně vykašli a já to tam pak dodělám všechno najednou.

Mrknu později ještě jednou na kód, vyzkouším ručně a myslím si, že budeme připraveni na sloučení.

Copy link
Owner

@frenzymadness frenzymadness left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je to téměř dokonalé! Díky! Našel jsem jen poslední drobnosti. Pokud na ně nemáš čas, klidně napiš a já to PR dokončím. Jinak je to funkčně velmi povedené.

Jako poslední přípravu na merge bych asi sloučil všechny commity do jednoho a udělal rebase na aktuální master.

migrations/versions/60a681c463a2_create_donors_override.py Outdated Show resolved Hide resolved
migrations/versions/60a681c463a2_create_donors_override.py Outdated Show resolved Hide resolved

def to_dict(self):
result = {}
for field in [
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bylo by super to udělat tak, aby se seznam vstupů nemusel udržovat na dvou místech - DonorsOverride model a DonorsOverrideForm.

function highlightOverridenValues(url, columnDefs, onDataReady) {
let overrides = {}; // Will be set by an AJAX request

for (const column of ["first_name", "last_name", "address", "city", "postal_code", "kod_pojistovny"]) {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kdyby se tento seznam dal předat jako parametr funkce, dal by se renderovat v šabloně, kde se ta funkce volá a ubylo by další místo, kde je třeba jej udržovat.

@frenzymadness
Copy link
Owner

Teď o víkendu bych se k tomu mohl dostat. Dej vědět, jestli mám nebo ti to mám nechat.

@j-jzk
Copy link
Collaborator Author

j-jzk commented Aug 20, 2021 via email

@frenzymadness
Copy link
Owner

Přepínám tento na draft, protože je nahrazen novým PR #162 . Zavřeme je pak společně.

@frenzymadness frenzymadness marked this pull request as draft August 23, 2021 19:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Přepis údajů u dárce
3 participants