Example #1
0
def update_by_id(id, data):
    form = GigForm(data=data)
    gig = Gig.get_by_id(id)
    gig.band = form.band.data
    gig.date = form.date.data
    gig.location = form.location.data
    gig.notes = form.notes.data
    return gig.put()
Example #2
0
def get_by_id(id):
    gig = Gig.get_by_id(id)
    form = GigForm()
    form.band.data = gig.band
    form.date.data = gig.date
    form.location.data = gig.location
    form.notes.data = gig.notes
    return gig, form
Example #3
0
    def test_favorite_gigs(self):
        # create four users
        u1 = User(username='******', email='*****@*****.**')
        u2 = User(username='******', email='*****@*****.**')
        u3 = User(username='******', email='*****@*****.**')
        u4 = User(username='******', email='*****@*****.**')
        db.session.add_all([u1, u2, u3, u4])

        # create four Gigs
        now = datetime.utcnow()
        p1 = Gig(detail="Gig from john",
                 employer=u1,
                 timestamp=now + timedelta(seconds=1))
        p2 = Gig(detail="Gig from susan",
                 employer=u2,
                 timestamp=now + timedelta(seconds=4))
        p3 = Gig(detail="Gig from mary",
                 employer=u3,
                 timestamp=now + timedelta(seconds=3))
        p4 = Gig(detail="Gig from david",
                 employer=u4,
                 timestamp=now + timedelta(seconds=2))
        db.session.add_all([p1, p2, p3, p4])
        db.session.commit()

        # setup the favoriters
        u1.favorite(u2)  # john follows susan
        u1.favorite(u4)  # john follows david
        u2.favorite(u3)  # susan follows mary
        u3.favorite(u4)  # mary follows david
        db.session.commit()

        # check the favorited Gigs of each user
        f1 = u1.favorite_gigs().all()
        f2 = u2.favorite_gigs().all()
        f3 = u3.favorite_gigs().all()
        f4 = u4.favorite_gigs().all()
        self.assertEqual(f1, [p2, p4, p1])
        self.assertEqual(f2, [p2, p3])
        self.assertEqual(f3, [p3, p4])
        self.assertEqual(f4, [p4])
Example #4
0
def create():
    form = CreateGigForm()
    if form.validate_on_submit():
        gig = Gig(title=escape(form.title.data),
                  description=escape(form.description.data),
                  payment=form.payment.data,
                  location=escape(form.location.data),
                  employer_id=current_user.id)
        db.session.add(gig)
        db.session.commit()
        flash(f'The new gig has been added. "{gig.title}"', 'success')
        return redirect(url_for('gig.show', slug=gig.slug))

    return render_template('gig/create_gig.html', form=form)
Example #5
0
def create():
    form = CreateGigForm()

    if form.validate_on_submit():
        title = escape(form.title.data)
        description = escape(form.description.data)
        payment = form.payment.data
        location = escape(form.location.data)

        gig = Gig(title, description, payment, location, current_user.id)
        db.session.add(gig)
        db.session.commit()
        flash("The new gig has been added. \"" + gig.title + "\"", "success")
        return redirect(url_for("gig.show", slug=gig.slug))

    return render_template("create_gig.html", form=form)
Example #6
0
def create(data):
    form = GigForm(data=data)
    if form.validate():
        pass
    else:
        return form.errors
    gig = Gig()
    gig.band = form.band.data
    gig.date = form.date.data
    gig.location = form.location.data
    gig.notes = form.notes.data
    return gig.put()
Example #7
0
def create():
    form = GigForm()
    if form.validate_on_submit():
        neighborhood_name = form.neighborhood.data.name
        neighborhood = Neighborhood.query.filter_by(
            name=neighborhood_name).first()
        neighborhood_id = neighborhood.id
        type_name = form.type.data.name
        type = Gigtype.query.filter_by(name=type_name).first()
        type_id = type.id
        start_date = form.date.data
        gig = Gig(detail=form.gig.data,
                  employer=current_user,
                  neighborhood_id=neighborhood_id,
                  type_id=type_id,
                  start_date=start_date)
        db.session.add(gig)
        db.session.commit()
        flash('Help is on the way! Your Gig is now live.')
        return redirect(url_for('main.create'))
    return render_template('create.html', title='Create Gig', form=form)
Example #8
0
def delete_by_id(id):
    return Gig.get_by_id(id).key.delete()
Example #9
0
def get_all():
    now = datetime.datetime.now()
    return Gig.query(Gig.date >= now).order(Gig.date).fetch()
Example #10
0
def seed_db(num_of_employers=20, num_of_gigs=30, num_of_musicians=20):
	num_of_users = User.query.count()

	fake = Faker()
	i = 0
	print("Creating employers...")
	print("Created: 0", end="\r")
	while i < num_of_employers:
		e = User(
				username=fake.company(),
				email=fake.email(),
				password='******',
				location=fake.city(),
				description="We sometimes put up gig offers. Here are some random words: " + fake.paragraph(3, True),
				role_id=Role.EMPLOYER
			)
		e.activated = True
		db.session.add(e)
		try:
			db.session.commit()
			i += 1
			print("Created: " + str(i), end="\r")
		except IntegrityError:
			db.session.rollback()
	print("Finished creating " + str(num_of_employers) + " employers...")
	print("\n")

	i = 0
	print("Creating gigs...")
	print("Created: 0", end="\r")
	employer_ids = db.session.query(User.id).filter_by(role_id=3).all()
	while i < num_of_gigs:
		random_title = random_gig_title()
		g = Gig(
				title=random_title,
				description=random_gig_description(random_title),
				payment=round(random.uniform(100, 2000),2),
				location=fake.city(),
				employer_id=random.choice(employer_ids)[0]
			)
		db.session.add(g)
		db.session.commit()
		i += 1
		print("Created: " + str(i), end="\r")
	print("Finished creating " + str(num_of_gigs) + " gigs...")
	print("\n")

	i = 0
	print("Creating musicians...")
	print("Created: 0", end="\r")
	while i < num_of_musicians:
		m = User(
				username=fake.user_name(),
				email=fake.email(),
				password='******',
				location=fake.city(),
				description="I am ready to make some music! Please hire me. Here are some random words: " + fake.paragraph(3, True),
				role_id=Role.MUSICIAN
			)
		m.activated = True
		db.session.add(m)
		try:
			db.session.commit()
			i += 1
			print("Created: " + str(i), end="\r")
		except IntegrityError:
			db.session.rollback()
	print("Finished creating " + str(num_of_musicians) + " musicians...")
	print("\n")

	i = 0
	print("Applying musicians to gigs...")
	num_of_applications = int(num_of_musicians/2)
	print("Will create " + str(num_of_applications*num_of_gigs) + " applications.")
	musician_ids = db.session.query(User.id).filter_by(role_id=2).all()
	while i < num_of_gigs:
		g = Gig.query.get(i+1)
		j = 0
		while j < num_of_applications:
			m = User.query.get(random.choice(musician_ids)[0])
			try:
				m.apply(g)
				db.session.commit()
				j += 1
			except IntegrityError:
				db.session.rollback()
		i += 1

	print("\n")
	print("Creating admin user...")
	print("\n")
	print("Login info for admin:")
	print("Email: [email protected]")
	print("Password: pass")
	print("\n")
	admin = User("admin", "*****@*****.**", "password123", "Nowhere", "I am admin", Role.ADMIN)
	db.session.add(admin)
	db.session.commit()
	print("Database is ready!")