Coder Social home page Coder Social logo

Posielat postu na skolu about web HOT 6 CLOSED

black3r avatar black3r commented on August 13, 2024
Posielat postu na skolu

from web.

Comments (6)

dodo42 avatar dodo42 commented on August 13, 2024

Do nastavení usera dám položku "Korešpondečná adresa", kde bude radio button s 3 možnosťami: domov, škola a iná. Pri vybratí školy dám do user.mailing_address adresu školy, pri výbere inej sa ukážu polia na vyplnenie korešpondenčnej adresy ako teraz.

from web.

dodo42 avatar dodo42 commented on August 13, 2024

Ak si user zvolí, že chce posielať na školu, čo má vrátiť metóda get_mailing_address? Lebo zo školy nejde pekne vytvoriť adresa, napr. škola nemá pole pre krajinu. Navyše škola potrebuje v adrese aj svoj názov.

Chceme nejako meniť modely, aby tieto veci boli kompatibilné? Nie je to treba. Stačí, keď do Usera pridám Field, kam chce posielať poštu (domov - škola - inde) a metóda get_mailing_address bude vracať home_address (pri škole), resp. vráti adresu, do ktorej nejako napchám údaje školy. Pre KMS by to stačilo, lebo keď posielame do školy, neposielame na mená, ale všetkým riešiteľov v spoločnej obálke s adresou školy.

from web.

mhozza avatar mhozza commented on August 13, 2024

Navrhujem toto:
urobit abstraktny model pre adresu, z ktorej bude dedit db model.
V modeli pre skolu urobit metodu:
get_mailing_address(self) a v userovi get_school_mailing_address(self),
ktore budu vracat vhodnu adresu.

from web.

dodo42 avatar dodo42 commented on August 13, 2024

Adresu školy do mailing_address nakoniec nebudem dávať, je tam podľa mňa zbytočná. Bude sa dať získať pomocou get_school_mailing_address(self), ako Mio navrhol. Táto metóda vráti inštanciu triedy SchoolAddress (potomok AbstractAddress) s požadovanými atribútmi.

V Userovi som pôvodné has_mailing_address nahradil mailing_option, čo hovorí, kam chce user posielať poštu (domov / do školy / na mailing_address). Keďže je to nový atribút, tak by sa hodilo ho nastaviť u userov v databáze, tak by som v management/commands vytvoril vlastný manage.py command, ktorý by to spravil (ak sa takéto veci robia inak, tak ma opravte).

from web.

mhozza avatar mhozza commented on August 13, 2024

Keďže je to nový atribút, tak by sa hodilo ho nastaviť u userov v databáze, tak by som v management/commands vytvoril vlastný manage.py command, ktorý by to spravil (ak sa takéto veci robia inak, tak ma opravte).

Ak to spravne chapem, tak je to vec skor migracie (bud nastavime nejaky default vseobecne - aplikuje sa aj pri migracii) alebo specialne v migracii nastavime ze co sa tam ma dat.
Som za default, ale asi to nebude uplne jednoduche - asi by sme chceli nieco typu - default = home, a ak ma mailing address tak mailing option = mailing address.

Akurat mi pride ze toto je vec co bude musiet urobit user viacmenej navyse (teda UI s tym teraz moc nerata) Neni lepsie mat iba chcekbox posielat na skolu?

get_mailing_option logika by potom bola takato:

  • ak je zaskrtnute posielat na skolu, posiela sa na skolu
  • inak ak je vyplneny mailing address, posiela sa nan
  • inak sa posiela domov

Toto je len navrh, ak si myslis ze mailing_option je lepsia moznost a vies si ktomu predstavit vhodne UI - go for it.

from web.

dodo42 avatar dodo42 commented on August 13, 2024

Neni lepsie mat iba chcekbox posielat na skolu?

Hej, nad tým som tiež uvažoval. V modeli Usera by som to tak spravil a nebolo by treba vlastne ani žiadnu úpravu dát. Len by sa pridal BoolField každému userovi, ktorý by bol default false.

V TrojstenUserBaseForm by som však mailing_option radiobutton nechal. Príde mi to lepšie ako mať dva checkboxy, ktoré by nemali byť zaškrknuté naraz. Ešte by som tomu nastavil initial value na home. Teda ak si chce user nechať posielať domov, tak to má defaultne vybrané a ak chce do školy alebo inde, tak si to v radiobutton prestaví. Nakuniec pri save formulára podľa toho správne vyplním mail_to_school a mailing_address.

from web.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.