trojsten / web

Trojstenovy web
MIT License
9 stars 9 forks source link

Navrhnúť wizard systém #871

Open syslo opened 8 years ago

syslo commented 8 years ago

Chceli by sme mať wizardov na rôzne automatizovateľné činnosti - vytváranie série, rozobálkovanie, vytváranie sústredka, ... Wizardi by mali byť špecifický pre každý seminár. Potrebujeme teda framework, ktorý nám ich umožní implementovať a zobrazovať vedúcim.

black3r commented 7 years ago

Na stretku sme sa zhodli, ze Wizard system by mal byt nejaka samostatna Django App, obsahujuca jednotlivych wizardov..., wizardi by mali vyzerat ako sucast webu, aby admin na bezne cinnosti nemusel liezt do Admina..

Pre beznych veducich potom obmedzime pocet pristupnych veci v Adminovi iba na veci, ktore sa nedaju vyklikat vo wizardoch (napr. nebudu uz vidiet ulohy v adminovi, ale bude stale vidiet userov, atd..)

mhozza commented 7 years ago

Mali by sme vyrobit base class pre wizard view, od ktoreho by potom dedili vsetky wizard views.

Konkretny wizard by som si predstavil ako seriu krokov, kde kazdy krok by bol 1 wizard view. Kazdy view by vedel zadefinovat nejake data, ktore potom ostatne views budu citat. Kazdy view by mal zoznam akcii/dalsich krokov (tlacitok), ktore by linkovali na dalsie wizard views plus back tlacitko, ktore by ho vratilo o krok spat.

Wizard view/system by sa mal starat o presun dat medzi jednotlivymi krokmi a routovanie akcii (vratane back akcie).

Akcie mozme spravit bud fixne (next + finish), alebo lubovolne (podla mna netreba). Jedotlive kroky mozu byt bud nezavisle, t.j. dokoncenie kazdeho kroku sposobi aplikacoiu zmien (podlamna je to lepsie), alebo sucast transakcie, t.j. zmeny sa aplikuju az po kliknuti finish (toto je asi zlozitejsie, a podla mna to ani nema zmysel).

Back by mal revertovat zmeny aplikovane v predchadzajucom kroku.

Wizard by mal mat base template, od ktoreho budu dedit vsetky wizard views + default template, ktory bude obsahovat nejake zakladne veci, aby si clovek nemusel pre kazdy view robit vlastny tempalte.

Napriklad pre pridavanie papierovych rieseni by wizard mohol vyzerat takto:

  1. Vyber kola (veduci si vyklika kolo, ktoreho sa to tyka, a klikne next)
  2. Pridat riesitela a ulohy (veduci si vyklika cloveka pomocou autosuggest searchu (ak neexistuje), a vyklika ulohy (zoznam uloh je vzdy rovnaky pre sane kolo), ktore riesitel odovzdal (pripadne aj body), next posle veduceho znovu na tento view, finish ho posle na wizard homepage/dashboard).

Pre vyrobu kola by wizard mohol vyzerat takto:

  1. Vyber sutaze (rozumny default, podla stranky)
  2. Vyber serie (rozumny default, asi podla datumu)
  3. Zoznam uloh (podla templatu pre sutaz, napr. ksp by malo uz preddefinovanych 10 uloh s kategoriami a zaciatocnymi pismenami, bodmi..., KMS nepouziva nazov uloh, tak mozu byt definovane cele)
  4. finish

Doraz wizardov by mal byt na co najmenej klikania a co najrozumnejsie defaulty. Aby pre vecsinu pripadov veduci klikal len na next a vyplnil len nutne udaje.

mhozza commented 7 years ago

Mozno by sa dalo zneuzit toto: https://django-formtools.readthedocs.io/en/latest/wizard.html

Volakedy to bolo sucastou djanga, oddrbali to do zvlast package.