Added the ability to add a reference image to a person, and connect the two in the db
This commit is contained in:
19
person.py
19
person.py
@@ -8,6 +8,7 @@ from status import st, Status
|
||||
|
||||
from files import File
|
||||
from refimg import Refimg
|
||||
from refimg import Person_Refimg_Link
|
||||
|
||||
################################################################################
|
||||
# Class describing Person in the database, and via sqlalchemy, connected to the DB as well
|
||||
@@ -17,9 +18,10 @@ class Person(db.Model):
|
||||
tag = db.Column(db.String(48), unique=False, nullable=False)
|
||||
surname = db.Column(db.String(48), unique=False, nullable=False)
|
||||
firstname = db.Column(db.String(48), unique=False, nullable=False)
|
||||
refimg = db.relationship('Refimg', secondary=Person_Refimg_Link.__table__)
|
||||
|
||||
def __repr__(self):
|
||||
return "<tag: {}, firstname: {}, surname: {}>".format(self.tag,self.firstname, self.surname)
|
||||
return "<tag: {}, firstname: {}, surname: {}, refimg: {}>".format(self.tag,self.firstname, self.surname, self.refimg)
|
||||
|
||||
class File_Person_Link(db.Model):
|
||||
__tablename__ = "file_person_link"
|
||||
@@ -66,8 +68,10 @@ def persons():
|
||||
def new_person():
|
||||
form = PersonForm(request.form)
|
||||
page_title='Create new Person'
|
||||
reference_imgs = Refimg.query.all()
|
||||
|
||||
if 'surname' not in request.form:
|
||||
return render_template("person.html", form=form, page_title=page_title )
|
||||
return render_template("person.html", reference_imgs=reference_imgs, form=form, page_title=page_title )
|
||||
else:
|
||||
person = Person( tag=request.form["tag"], surname=request.form["surname"], firstname=request.form["firstname"] )
|
||||
try:
|
||||
@@ -79,7 +83,7 @@ def new_person():
|
||||
except SQLAlchemyError as e:
|
||||
st.SetAlert( "danger" )
|
||||
st.SetMessage( "<b>Failed to add Person:</b> {}".format(e.orig) )
|
||||
return render_template("person.html", form=form, page_title=page_title, alert=st.GetAlert(), message=st.GetMessage() )
|
||||
return render_template("person.html", object=person, form=form, reference_imgs=reference_imgs, page_title = page_title, alert=st.GetAlert(), message=st.GetMessage() )
|
||||
|
||||
################################################################################
|
||||
# /person/<id> -> GET/POST(save or delete) -> shows/edits/delets a single
|
||||
@@ -102,14 +106,21 @@ def person(id):
|
||||
person.tag = request.form['tag']
|
||||
person.surname = request.form['surname']
|
||||
person.firstname = request.form['firstname']
|
||||
person.refimg =[]
|
||||
for ref_img in reference_imgs:
|
||||
if "ref-img-id-{}".format(ref_img.id) in request.form:
|
||||
print('{} was checked, id: {}'.format(ref_img.fname, ref_img.id))
|
||||
person.refimg.append(ref_img)
|
||||
|
||||
st.AppendMessage(" To: ({}, {}, {})".format(person.tag, person.firstname, person.surname) )
|
||||
db.session.commit()
|
||||
return redirect( '/persons' )
|
||||
except SQLAlchemyError as e:
|
||||
st.SetAlert( "danger" )
|
||||
st.SetMessage( "<b>Failed to modify Person:</b> {}".format(e.orig) )
|
||||
st.SetMessage( "<b>Failed to modify Person:</b> {}".format(e) )
|
||||
return render_template("person.html", form=form, reference_imgs="test", page_title=page_title, alert=st.GetAlert(), message=st.GetMessage() )
|
||||
else:
|
||||
person = Person.query.get(id)
|
||||
print(person)
|
||||
form = PersonForm(request.values, obj=person)
|
||||
return render_template("person.html", object=person, form=form, reference_imgs=reference_imgs, page_title = page_title, alert=st.GetAlert(), message=st.GetMessage() )
|
||||
|
||||
Reference in New Issue
Block a user