- Extract the bookshelf selector into its own file, since it was a
little bit complicated with completion and everything.
- Print out bookcase item information on every prompt in the bookcase
item specific subclis
- Add funcs to EditBookcaseCli
- Add shelf editing to EditBookcaseCli
- Ensure shorthand column-row pairs are always written in that order
The scanner tool is about to become a fullfledged repl, much in the same
manner as dibbler.
Changes:
- Rename `tools/scanner.py` -> `cli/main.py`
- Create abstraction layer for Cmd with numbered commands
- Create submenu for items
- Lots of functionality edits
- Fill out more todos in REAMDE
- Rename BookcaseLocation -> BookcaseShelf
- Remove `name` from BookcaseShelfs, and use columns and rows to index
them instead
- Add `amount` to BookcaseItem, and make isbn unique
- Remove ability to use scanner tool without database
- Add a lot of real bookshelfs to seeding data
- Migrate project to use poetry for ease of dependency management and
building
- Add wsgi prod and dev entrypoints
- Start working on a more rigid scanning tool
- Remove unused ignores in .gitignore
- Update README about changes
- Update database models to the new declarative mapping syntax
See https://docs.sqlalchemy.org/en/20/orm/mapping_styles.html#orm-declarative-mapping
- Make use of Flask-SQLAlchemy to manage database connections
- Remove cli command interface in favor of just deleting the
sqlite file and reseeding when no tables are detected.
- Add list of iso639_1 language codes and names, and add to seed list
- Other changes to file structure.