0b712ef7f3
cleanup, and dont need to calculate 12/cols, just use col
Damien De Paoli2020-11-21 12:52:30 +11:00
bcf5937869
add helper function GetGenreList - passes all genres to *.html, so horizontal "list" of checkboxes for book can be created
Damien De Paoli2020-11-21 12:26:38 +11:00
cc99e2e98a
add helper function GetGenreList - passes all genres to *.html, so horizontal "list" of checkboxes for book can be created
Damien De Paoli2020-11-21 12:25:45 +11:00
191fcf8f9d
added in loans support, also particular route for book_for_loan without markup used as div content on loan.html page via ajax load
Damien De Paoli2020-11-18 19:58:55 +11:00
d669ef71a4
added in loans support, also particular route for book_for_loan without markup used as div content on loan.html page via ajax load
Damien De Paoli2020-11-18 19:58:41 +11:00
6a8d2731ac
added in new script_content block for scripts to run after main_content, used by load to retrieve books that are associated with the loan. Also added *Loan menu items to navbar
Damien De Paoli2020-11-18 19:58:00 +11:00
4ca2183253
added quick debug for loan data in books if there
Damien De Paoli2020-11-18 19:57:04 +11:00
296ef4c1f7
renamed id_name_form to edit_id_name, then made show_id_name and used it for all appropriate classes. Shaved about 150 LOC / removed 5 x duplication of code :)
Damien De Paoli2020-11-18 12:30:23 +11:00
3f33e7f10d
cleaned up Form->FlaskForm, for both import line and class *Form(FlaskForm)
Damien De Paoli2020-11-18 12:12:36 +11:00
5f46636298
created generic id_name_form.html and made condition, covertype, genre, owned, publisher & rating use it for single edit page
Damien De Paoli2020-11-18 12:09:02 +11:00
4ee94337b2
missing ; -- last update to fixes.sql, Ill delete it next
Damien De Paoli2020-11-17 21:27:30 +11:00
9544790ffa
removed all old *_lst tables, added corresponding new classes, etc. fro covertype, owned, rating, and dropped tables from DB, etc. Updated base.html to use new tables as drop-downs that are set correctly. So far slight hack on BookForm, will finish that after syncing this all back to mara. If I do the sync, and export/import this version of DB, then the fixes.sql and fix_db() code included in main.py can be removed. Finally, lamely added a favicon and a static/ to support it
Damien De Paoli
2020-11-17 21:22:15 +11:00
8eddce043b
quick record of one-off DB fixes needed to reset table names, column names, etc. to be more consistent & 3NF
Damien De Paoli2020-11-16 00:05:43 +11:00
757729f159
tweaked pagination size to 20 now that navbar takes up so much space, also made pagination choices match
Damien De Paoli2020-11-16 00:05:00 +11:00
58695629dc
okay, condition* now works, menu to call them works, just testing it out though, so also a BookForm started but unused at present. Finally, tweaked pagination size to 20 now that navbar takes up so much space, also made pagination choices match
Damien De Paoli2020-11-16 00:03:28 +11:00
ff749dfdf5
put ordering into Author object so fields render as surname before firstname
Damien De Paoli2020-11-16 00:01:33 +11:00
1de0ed27d9
fixed up genres.html, publisers.html to work, tweaked menu structure -- still more placeholders than working for now, but started on an Admin menu to allow dealing with genres, covertypes, conditions, etc.
Damien De Paoli2020-11-15 14:26:52 +11:00
e39a4da6a2
removed all refs to genre_lst, made genre table confirm to id, name, added classes/routes for genre*, tweaked book format to accommodate multiple authors, etc. still 1-line, but with 12 / num of <authors, etc.> col wide form-controls
Damien De Paoli2020-11-15 14:16:58 +11:00
7334e4b622
bit of pox code, to go through sub fields like author/publisher, and build readonly links to their edit pages, works. Need to add to books.html - which also only prints the first item - like author anyway
Damien De Paoli2020-11-15 13:29:49 +11:00
c675786852
remove publisher* from main.py, for now remove ORM complexities for sub_books in books, just do it by hand and cleaned up a few debugs, comments
Damien De Paoli2020-11-15 12:22:41 +11:00
29f8189c97
fixed bug with route to / now needing to be to base.html, not main.html, then just added publisher (list all/edit 1/deleted button)
Damien De Paoli2020-11-14 15:33:43 +11:00
3831c0a03b
pulled apart main to make a self-contained author.py... Weird use of importing from __main__ rather than main.py, and ordering the import to after the db object was created seems to be the secret sauce
Damien De Paoli2020-11-14 15:03:37 +11:00
f8d31dd325
make sure alert is set to success/something, even if we are just getting an author - it was unset in this scenario
Damien De Paoli2020-11-14 14:24:35 +11:00
79a41b4f0e
split out old books into book and books.html, all *.html now using extends and {% block %} in jinja2. So navbar is now present in all URLs
Damien De Paoli2020-11-14 12:09:35 +11:00
4b84ba8aa7
removed debugs, put condition it to detect if saving (supported) or delete (unsupported at present)
Damien De Paoli2020-11-14 12:08:21 +11:00
77fd5619f6
now using wtforms for fields, formatting is still not right with bootstrap4, but it will have to do
Damien De Paoli2020-11-13 17:07:15 +11:00
db47770720
now using wtforms for fields, formatting is still not right with bootstrap4, but it will have to do
Damien De Paoli2020-11-13 17:07:02 +11:00
4d9a2fc7b1
removed extraneous bits of schema definitions, cleaned up bug in __repr__ of book_sub_book, and still tinkering with schemas vs raw sql for book sub book linkages that then get passed to the html
Damien De Paoli2020-11-13 17:00:57 +11:00
1a036c7f47
fixed up missing dependencies when I tested on laptop
Damien De Paoli2020-11-13 16:58:02 +11:00
a4dca1dbf5
updated README to reflect next steps (will use flask-wtf and flask-boostrap), but proof-of-concept author/<id> works to save to database with a form / POST
Damien De Paoli2020-11-11 19:23:48 +11:00
f7ea6870d2
okay we can / do have 2 separate instances of objects referring to either the children books (of a book with subbooks) or a parent ref if the book is a sub book of the parent book. Unused for now, but I think this means I could ditch my own raw sql, then we could also remove the ordering in the sql join, and use datatables sorting based on {{parent_ref.book_id}}.{{book.parent_ref.sub_book_num}}
Damien De Paoli2020-11-08 20:00:39 +11:00
14749de303
okay, using ORM, the book_sub_book_link table is actually linked, it is also being used to force the ordering of the quert - although its probably not needed, as the datatables sort can do it by using sub_book_num and parent_id... Those values are still being put in by hand, so need to think about the parent_id bit... we need it to get the sorting to work. I think the sub_book_num would now be there in the normal book.dump() if I try to put it there -- would need to make sure the appropriate Schema is used of course
Damien De Paoli2020-11-08 19:53:05 +11:00
a57d68ecfa
made genre use the schemas properly to return actual joined data, not just genre_id. Also made author/publisher/genre all use many=True, while that is nto true for publisher, it makes the jinja code consisten -- Might need to fix this one day if the writing to the database is somehow more automatic and needs it to be an actual one-to-many, not a many-to-many
Damien De Paoli2020-11-08 15:46:59 +11:00
c4fe3422a3
Keeping flask-marshmallow as its too hard to do my own objects, due to SqlAlchemy using its own list that is not iterable, etc. Added Genre, ALSO, beware table names with an underscore are messed with, and should be explictly defined - found out this the hard way with genre_lst
Damien De Paoli2020-11-08 15:07:36 +11:00
761d2af391
first pass at using jinja2 to make an edit form dynamically, its a bit hit and miss :(
Damien De Paoli2020-11-07 13:03:10 +11:00
8ff7a8ed02
first pass of the data required for editing a single book
Damien De Paoli2020-11-06 18:01:17 +11:00
1fcd0ed797
okay removed sub_book as a formal db.relationship, its too confusing, using raw sql for now. Still need to ensure ordering of sub_books based on book_id, sub_book_num AND need to pass enough sub_book fields that can vary so that jinja2 can show all subs of a book when editing any of them
Damien De Paoli2020-11-06 17:26:50 +11:00
1a2555739d
half broke version, but its working... need to do the subquery to get list of all real books without subs, but also make sense of how author data is coming through without marshmallow of BookSchema?
Damien De Paoli2020-11-05 20:12:31 +11:00
21c792203c
added in publisher relationship (via book_publisher_link), removed debug, also removed ma.Nested, not needed?
Damien De Paoli2020-11-04 23:48:09 +11:00
2a7cbe5845
using font awesome, datatables, bootstrap and fixed so class attributes are serialized via marshmallow and it all works with jinja2 now
Damien De Paoli2020-11-04 19:26:36 +11:00
3a42b944df
fix spelling mistakes, update flask-sqlachemy doc line, changed how to run to ref main.py instead of book.py && testing first real commit
Damien De Paoli2020-11-03 18:33:49 +11:00
a51db7c9e4
initial commit of book library in python with sqlalchemy (as an ORM), flask (for the web server) and jinja2 (as the web template front-end bit)
Damien De Paoli2020-11-03 18:29:41 +11:00