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 newPuppy(shelter_id): form = NewPuppyForm(request.form) if request.method == 'POST' and form.validate(): shelter = session.query(Shelter).filter_by(id=shelter_id).one() if shelter.current_occupancy >= shelter.maximum_capacity: flash('Shelter already at maximum capacity. Please try \ another one') # reload page and display the flash messaage return render_template( 'newpuppy.html', form=form, shelter_id=shelter_id ) shelter.current_occupancy += 1 session.add(shelter) puppy = Puppy() puppy.name = form.name.data puppy.gender = form.gender.data puppy.weight = form.weight.data puppy.shelter_id = shelter_id puppy.dateOfBirth = datetime.strptime(form.dob.data, '%Y-%m-%d').date() session.add(puppy) session.commit() flash('new puppy added', 'warn') # Go back to shelter page return redirect(url_for('shelterPage', shelter_id=shelter_id)) else: # Show form 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)