now have a class to maintain the status, use that to set alert/message for owned, and redirect after create/update/delete owned -> owneds
This commit is contained in:
25
main.py
25
main.py
@@ -4,7 +4,9 @@ from flask_marshmallow import Marshmallow
|
|||||||
from flask_bootstrap import Bootstrap
|
from flask_bootstrap import Bootstrap
|
||||||
from wtforms import SubmitField, StringField, HiddenField, SelectField, IntegerField, TextAreaField, validators
|
from wtforms import SubmitField, StringField, HiddenField, SelectField, IntegerField, TextAreaField, validators
|
||||||
from flask_wtf import FlaskForm
|
from flask_wtf import FlaskForm
|
||||||
|
from status import st, Status
|
||||||
|
|
||||||
|
####################################### Flask App globals #######################################
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
### what is this value? I gather I should chagne it?
|
### what is this value? I gather I should chagne it?
|
||||||
DB_URL = 'postgresql+psycopg2://ddp:NWNlfa01@127.0.0.1:5432/library'
|
DB_URL = 'postgresql+psycopg2://ddp:NWNlfa01@127.0.0.1:5432/library'
|
||||||
@@ -15,6 +17,7 @@ db = SQLAlchemy(app)
|
|||||||
ma = Marshmallow(app)
|
ma = Marshmallow(app)
|
||||||
Bootstrap(app)
|
Bootstrap(app)
|
||||||
|
|
||||||
|
################################# Now, import non-book classes ###################################
|
||||||
from author import Author, AuthorForm, AuthorSchema, GetAuthors
|
from author import Author, AuthorForm, AuthorSchema, GetAuthors
|
||||||
from publisher import Publisher, PublisherForm, PublisherSchema, GetPublisherById
|
from publisher import Publisher, PublisherForm, PublisherSchema, GetPublisherById
|
||||||
from genre import Genre, GenreForm, GenreSchema, GetGenres
|
from genre import Genre, GenreForm, GenreSchema, GetGenres
|
||||||
@@ -173,16 +176,6 @@ class BookForm(FlaskForm):
|
|||||||
delete = SubmitField('Delete' )
|
delete = SubmitField('Delete' )
|
||||||
|
|
||||||
|
|
||||||
# allow jinja2 to call this python function
|
|
||||||
app.jinja_env.globals['GetCovertypeById'] = GetCovertypeById
|
|
||||||
app.jinja_env.globals['GetOwnedById'] = GetOwnedById
|
|
||||||
app.jinja_env.globals['GetConditionById'] = GetConditionById
|
|
||||||
app.jinja_env.globals['GetPublisherById'] = GetPublisherById
|
|
||||||
app.jinja_env.globals['SeriesBookNum'] = SeriesBookNum
|
|
||||||
|
|
||||||
### DDP: do I need many=True on Author as books have many authors? (or in BookSchema declaration above?)
|
|
||||||
book_schema = BookSchema()
|
|
||||||
|
|
||||||
################################# helper functions ###################################
|
################################# helper functions ###################################
|
||||||
def GetBookIdFromSeriesByBookNum( series_id, book_num ):
|
def GetBookIdFromSeriesByBookNum( series_id, book_num ):
|
||||||
tmp_book = Book_Series_Link.query.filter(Book_Series_Link.series_id==series_id,Book_Series_Link.book_num==book_num).all()
|
tmp_book = Book_Series_Link.query.filter(Book_Series_Link.series_id==series_id,Book_Series_Link.book_num==book_num).all()
|
||||||
@@ -199,6 +192,18 @@ def GetBookIdFromBookSubBookLinkByIdAndSubBookNum( book_id, sub_book_num ):
|
|||||||
tmp_bsbl = Book_Sub_Book_Link.query.filter(Book_Sub_Book_Link.book_id==book_id, Book_Sub_Book_Link.sub_book_num==sub_book_num ).all()
|
tmp_bsbl = Book_Sub_Book_Link.query.filter(Book_Sub_Book_Link.book_id==book_id, Book_Sub_Book_Link.sub_book_num==sub_book_num ).all()
|
||||||
return tmp_bsbl[0].sub_book_id
|
return tmp_bsbl[0].sub_book_id
|
||||||
|
|
||||||
|
####################################### GLOBALS #######################################
|
||||||
|
# allow jinja2 to call this python function
|
||||||
|
app.jinja_env.globals['GetCovertypeById'] = GetCovertypeById
|
||||||
|
app.jinja_env.globals['GetOwnedById'] = GetOwnedById
|
||||||
|
app.jinja_env.globals['GetConditionById'] = GetConditionById
|
||||||
|
app.jinja_env.globals['GetPublisherById'] = GetPublisherById
|
||||||
|
app.jinja_env.globals['SeriesBookNum'] = SeriesBookNum
|
||||||
|
app.jinja_env.globals['ClearStatus'] = st.ClearMessage
|
||||||
|
|
||||||
|
### DDP: do I need many=True on Author as books have many authors? (or in BookSchema declaration above?)
|
||||||
|
book_schema = BookSchema()
|
||||||
|
|
||||||
####################################### ROUTES #######################################
|
####################################### ROUTES #######################################
|
||||||
@app.route("/books", methods=["GET"])
|
@app.route("/books", methods=["GET"])
|
||||||
def books():
|
def books():
|
||||||
|
|||||||
25
owned.py
25
owned.py
@@ -1,9 +1,9 @@
|
|||||||
from wtforms import SubmitField, StringField, HiddenField, SelectField, validators
|
from wtforms import SubmitField, StringField, HiddenField, SelectField, validators
|
||||||
from flask import request, render_template
|
from flask import request, render_template, redirect
|
||||||
from flask_wtf import FlaskForm
|
from flask_wtf import FlaskForm
|
||||||
from __main__ import db, app, ma
|
from __main__ import db, app, ma
|
||||||
from sqlalchemy import func, Sequence
|
from sqlalchemy import func, Sequence
|
||||||
|
from status import st, Status
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Class describing Owned in the database, and via sqlalchemy, connected to the DB as well
|
# Class describing Owned in the database, and via sqlalchemy, connected to the DB as well
|
||||||
@@ -38,26 +38,24 @@ class OwnedForm(FlaskForm):
|
|||||||
@app.route("/owneds", methods=["GET"])
|
@app.route("/owneds", methods=["GET"])
|
||||||
def owneds():
|
def owneds():
|
||||||
owneds = Owned.query.order_by('id').all()
|
owneds = Owned.query.order_by('id').all()
|
||||||
return render_template("show_id_name.html", objects=owneds, page_title='Show All Ownership types', url_base='owned')
|
return render_template("show_id_name.html", objects=owneds, page_title='Show All Ownership types', url_base='owned', alert=st.GetAlert(), message=st.GetMessage() )
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# /owned -> GET/POST -> creates a new owned type and when created, takes you back to /owneds
|
# /owned -> GET/POST -> creates a new owned type and when created, takes you back to /owneds
|
||||||
################################################################################
|
################################################################################
|
||||||
@app.route("/owned", methods=["GET", "POST"])
|
@app.route("/owned", methods=["GET", "POST"])
|
||||||
def new_owned():
|
def new_owned():
|
||||||
alert="success"
|
|
||||||
owned_form = OwnedForm(request.form)
|
owned_form = OwnedForm(request.form)
|
||||||
if 'name' not in request.form:
|
if 'name' not in request.form:
|
||||||
owned=None
|
owned=None
|
||||||
message=""
|
return render_template("edit_id_name.html", owned=owned, form=owned_form, page_title='Create new Owned Type' )
|
||||||
return render_template("edit_id_name.html", owned=owned, alert=alert, message=message, form=owned_form, page_title='Create new Owned Type' )
|
|
||||||
else:
|
else:
|
||||||
owned = Owned( name=request.form["name"] )
|
owned = Owned( name=request.form["name"] )
|
||||||
db.session.add(owned)
|
db.session.add(owned)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
message="Created new Owned Type (id={})".format(owned.id)
|
st.SetMessage( "Created new Owned Type (id={})".format(owned.id) )
|
||||||
owneds = Owned.query.order_by('id').all()
|
owneds = Owned.query.order_by('id').all()
|
||||||
return render_template("show_id_name.html", objects=owneds, page_title='Show All Ownership types', url_base='owned', alert=alert, message=message)
|
return redirect( '/owneds' )
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# /owned/<id> -> GET/POST(save or delete) -> shows/edits/delets a single
|
# /owned/<id> -> GET/POST(save or delete) -> shows/edits/delets a single
|
||||||
@@ -65,25 +63,22 @@ def new_owned():
|
|||||||
################################################################################
|
################################################################################
|
||||||
@app.route("/owned/<id>", methods=["GET", "POST"])
|
@app.route("/owned/<id>", methods=["GET", "POST"])
|
||||||
def owned(id):
|
def owned(id):
|
||||||
alert="success"
|
|
||||||
### DDP: should this be request.form or request.values?
|
### DDP: should this be request.form or request.values?
|
||||||
owned_form = OwnedForm(request.form)
|
owned_form = OwnedForm(request.form)
|
||||||
if request.method == 'POST' and owned_form.validate():
|
if request.method == 'POST' and owned_form.validate():
|
||||||
owned = Owned.query.get(id)
|
owned = Owned.query.get(id)
|
||||||
if 'delete' in request.form:
|
if 'delete' in request.form:
|
||||||
message="Successfully deleted (id={}, name={})".format( owned.id, owned.name )
|
st.SetMessage("Successfully deleted (id={}, name={})".format( owned.id, owned.name ) )
|
||||||
owned = Owned.query.filter(Owned.id==id).delete()
|
owned = Owned.query.filter(Owned.id==id).delete()
|
||||||
if 'submit' in request.form:
|
if 'submit' in request.form:
|
||||||
owned.name = request.form['name']
|
owned.name = request.form['name']
|
||||||
message="Successfully Updated Owned (id={})".format(id)
|
st.SetMessage("Successfully Updated Owned (id={})".format(id) )
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
owneds = Owned.query.order_by('id').all()
|
owneds = Owned.query.order_by('id').all()
|
||||||
return render_template("show_id_name.html", objects=owneds, page_title='Show All Ownership types', url_base='owned', alert=alert, message=message)
|
return redirect( '/owneds' )
|
||||||
else:
|
else:
|
||||||
owned = Owned.query.get(id)
|
owned = Owned.query.get(id)
|
||||||
owned_form = OwnedForm(request.values, obj=owned)
|
owned_form = OwnedForm(request.values, obj=owned)
|
||||||
message=""
|
return render_template("edit_id_name.html", owned=owned, form=owned_form, page_title='Edit Owned Type' )
|
||||||
return render_template("edit_id_name.html", owned=owned, alert=alert, message=message, form=owned_form, page_title='Edit Owned Type' )
|
|
||||||
|
|
||||||
def GetOwnedById(id):
|
def GetOwnedById(id):
|
||||||
return Owned.query.get(id).name
|
return Owned.query.get(id).name
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
{% if message|length %}
|
{% if message|length %}
|
||||||
<div class="row alert alert-{{alert}}">
|
<div class="row alert alert-{{alert}}">
|
||||||
{{message}}
|
{{message}}
|
||||||
|
{{ ClearStatus() }}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<table id="book_table" class="table table-striped table-sm" data-toolbar="#toolbar" data-search="true">
|
<table id="book_table" class="table table-striped table-sm" data-toolbar="#toolbar" data-search="true">
|
||||||
|
|||||||
Reference in New Issue
Block a user