예제 #1
0
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)
예제 #2
0
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
        )
예제 #3
0
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)