59 lines
3.6 KiB
Plaintext
59 lines
3.6 KiB
Plaintext
### 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
|
|
|
|
|
|
### MAYBE:
|
|
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)
|
|
### 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)
|
|
|
|
TODO-1 consider created/modifed for all fields? but mostly are they set via ORM for new books?
|
|
* No, not being set...
|
|
TODO-2 need to delete 1 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)
|
|
(noting that deleting a child book already removes the book_sub_book_link)
|
|
TODO-3 when remove a Parent book from a series, what do we do?
|
|
(remove all sub books from series too?)
|
|
TODO-4 with series remove - If we click a subbook, then remove series button needs to be clever (might need client-side validation / confirmation, eg. this is a subbook, you want to remove all of the 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: should I lazy load all books (ajax the 2nd->last pages in, or not use ORM, and do a quick db.execute()....)
|