def newPuppy(shelter_id): if 'username' not in login_session: flash ("Please login for more complete access to our puppies.") return redirect ('/puppies') form = NewPuppyForm() if form.validate_on_submit(): newPuppy = Puppy(name=form.name.data, gender=form.gender.data, dateOfBirth=form.dateOfBirth.data, weight=form.weight.data, shelter_id=shelter_id, user_id=login_session['user_id']) session.add(newPuppy) session.flush() # Allows for secure image viewing and upload if form.picture.data: filename = secure_filename(form.picture.data.filename) filename = str(newPuppy.id) + "_" + filename form.picture.data.save(os.path.join(app.config['UPLOAD_FOLDER']\ + filename)) # If no image available, generic image is used else: filename="none.jpg" newStats = Stats(needs=form.needs.data, picture=filename, puppy_id=newPuppy.id) session.add(newStats) session.commit() flash ("Your puppy has been successfully added.") return redirect(url_for('puppies')) else: return render_template('newPuppy.html', form=form, shelter_id=shelter_id)
def editPuppy(puppy_id): if 'username' not in login_session: flash ("Please login for more complete access to our puppies.") return redirect ('/puppies') editedPuppy=session.query(Puppy).filter_by(id=puppy_id).one() if login_session['admin'] < 2 and editedPuppy.user_id != \ login_session['user_id'] : flash ("You do not have the authority to access that page.") return redirect ('/puppies') editedPuppy.weight = int(editedPuppy.weight) form = NewPuppyForm() if form.validate_on_submit(): session.query(Puppy).filter(Puppy.id == puppy_id).update({'name' : \ form.name.data, 'gender' : form.gender.data, 'dateOfBirth' : \ form.dateOfBirth.data, 'weight' : form.weight.data, 'user_id' : \ login_session['user_id']}) session.flush() # Allows for secure image viewing and upload # Deletes old image from storage if form.picture.data: filename = secure_filename(form.picture.data.filename) filename = str(puppy_id) + "_" + filename form.picture.data.save(os.path.join(app.config['UPLOAD_FOLDER'] +\ filename)) if form.oldPicture.data and form.oldPicture.data[0].isdigit(): os.remove(app.config['UPLOAD_FOLDER'] + form.oldPicture.data) # If no image is available, uses a generic image else: filename = form.oldPicture.data session.query(Stats).filter(Stats.puppy_id == puppy_id).update\ ({'needs': form.needs.data, 'picture' : filename}) session.commit() flash ("You successfully edited your puppy information.") return redirect(url_for('idShelters', shelter=editedPuppy.shelter_id)) else: return render_template('editPuppy.html', form=form, puppy=editedPuppy)