3c47063ee2924b2783bf69193ab159c86b936b07
make sure num_books also has a value, not just a positive one, so I am force to fill it in on submit
### TODO: get all this inside a docker container and use compose to do the whole set (pg, flask, ?) see this for postgresal: https://hub.docker.com/_/postgres (has several env vars that should work out) and probably this: https://docs.docker.com/compose/gettingstarted/ (for flask and maybe redis) # flask -> python web server # sqlalchemy -> provides db-agnostic python objects of db content (and more) # flask-sqlachemy combines/wraps this to provide a db.* set of objects based on the 'app' that flask creates # marshmallow-sqlachemy provides a way to create a 'schema' of your class, then serialize an object to it # flask-wtf -> 'what the form' allows form consistency/validation based on defining attributes in a class for each form # flask-bootstrap -> allows me to format that wtf form with boostrap markup - yet to test if it also means I don't need to include it exlicitly in head, etc. # install needed binaries (maybe I could have done this instead of pip below too -- when I docker this shit, sort it out?) sudo apt install python3-pip python3-psycopg2 libpq-dev ### LEARN: supposedly could use virtualenv instead of pip3 install --user? OR even apt to install direct? # --user sticks python libs in ~/.local/[bin|lib|share] pip3 install --user flask sqlalchemy flask-sqlalchemy flask-marshmallow SQLAlchemy-serializer flask-wtf flask-bootstrap marshmallow-sqlalchemy # run the web server by: python3 main.py ### Remember: MUST use form.errors when we have a validator that is fancier than not empty (year_published in book and num_books in series SO FAR) #### MAYBEs: MAYBE-1: when moving a book in a series (which is part of 2 series), do we pop-up offer to move parent/child series orders as well to match (think Thomas Covenant) #### TODOS: TODO-2: delete sub_book from book: - swap the 'add sub book' for 'remove from parent book' button and then act on it (separate route, simple sql exec and route back to (no-longer) child book) TODO-3: when remove a Parent book from a series: - popup with: remove all sub books from series too? TODO-4: removing a subbook from a series - dont allow it & say remove sub book form parent book before we can act on this. OR: - popup with: this is a subbook, you want to remove the parent & all its sub books from the series? TODO-5: should deleting really just ask if want to mark it as SOLD? TODO-6: need to add books to loan (on loan page, and via a book search?) TODO-7: need to delete book from loan TODO-8: show books on shelf list TODO-9: show books to buy view / printable TODO-11: show unrated books (with toggle to exclude those with missing in a series) TODO-12: show books missing from a series (I own only some of them) TODO-13: show books on wish list TODO-14: show books that need replacing TODO-15: show books I have sold TODO-16: show books with poor rating TODO-17: view list of possible duplicate books by title TODO-18: consider which of the 'books maybe not valid' reports make sense still - can you even have an N/A publisher now for example? - but the genre one is interesting TODO-19: icons on wish list, etc.? (not sure I really want them, but if so) - wishlist: search-dollar OR https://www.flaticon.com/free-icon/wishlist_868517 - save: https://www.flaticon.com/free-icon/sold_463255?term=sold&page=1&position=6&related_item_id=463255 TODO-20: ORM all books load is slow - should I lazy load all books (ajax the 2nd->last pages in, or not use ORM, and do a quick db.execute()....)
Description
Languages
Python
67.4%
HTML
31.7%
Dockerfile
0.6%
Shell
0.3%