Esempio n. 1
0
def oauthCallback():
	"""Handle the data send back by facebook."""
	# Check if login alwaydy, if yes, redirect to home page
	if not current_user.is_anonymous():
		return redirect("/")

	oauth=FacebookSignUp()
	social_id, email=oauth.callback()
	# If face book send nothing back, redirect to home page
	if social_id is None:
		flash("Authentication failed.")
		return redirect("/")

	# Check if the user already signup in our database
	try:
		user = session.query(FUser).filter_by(social_id=str(social_id)).one()
	except:
		user = None
	# If user is not in database, put it in
	if not user:
		user = FUser(social_id=str(social_id), email=email)
		session.add(user)
		session.commit()
	# Get the user login
	login_user(user, True)
	return redirect("/")
Esempio n. 2
0
def editItem(item):
	"""This page will be for editing the selected item"""
	error=None
	login_already=current_user.is_authenticated()
	if login_already:
		i = session.query(Item).filter_by(id=item).one()
		if request.method == "POST":
			"""Update the infomation of the item. Item's id is used for index the url.
			   And it won't change."""
			error=vacant_input("photo")
			# Check if there is any empty input except photo.
			if not error:
				# go on input database if no empty imput. If there any, 
				# reload and labels of the empty form will turn red.
				i.name= request.form['name']
				i.discription= request.form['discription']
				i.category= request.form['category']
				if request.files['photo']:
					i.photo=upload_image(i.id)
					# the photo file will not be change if no file upload.
				session.add(i)
				session.commit()
				return redirect("/item/%s" %item)
			c = session.query(Category).all()
			return render_template("add.html", c=c, login_already=login_already, error=error)
		i=session.query(Item).filter_by(id=item).one()
		c=session.query(Category).all()
		return render_template("edit.html", c=c, item=i, login_already=login_already, error=error)
	else:
		return redirect("/")
Esempio n. 3
0
def tweet(star_id):
	session = db.create_scoped_session() 
	try:		
		query = session.query(Star)
		star = query.get(star_id)
		if star.owner.twitterUser:
			status = '#GoldStar: @' + star.owner.twitterUser + ' for ' + star.description + ' #' + star.hashtag + ' www.Goldstars.me/star/' + str(star_id)
		else:
			fullName = star.owner.firstName + ' ' + star.owner.lastName
			status = '#GoldStar: ' + fullName + ' for ' + star.description + ' #' + star.hashtag + ' www.Goldstars.me/star/' + str(star_id)
		if len(status) > 140:
			cutDescriptionBy = len(status) - 135
			cutDescriptionBy = len(star.description) - cutDescriptionBy
			if star.owner.twitterUser:
				status = '#GoldStar: @' + star.owner.twitterUser + ' for ' + star.description[0:cutDescriptionBy] + ' #' + star.hashtag + ' www.Goldstars.me/star/' + str(star_id)
			else:

				status = '#GoldStar: ' + fullName + ' for ' + star.description[0:cutDescriptionBy] + ' #' + star.hashtag + ' www.Goldstars.me/star/' + str(star_id)

		resp = twitter.post('statuses/update.json', data = {'status': status})
		return True
	except Exception as ex:
		userQuery = session.query(User)
		user = userQuery.get(star.owner.id)
		user.twitterUser = None
		user.oauth_secret = None
		user.oauth_token = None
		session.commit()
	finally:
		session.close()
Esempio n. 4
0
def teardown_request(exception):
    session = meta.scoped_session()
    if exception:
        session.rollback()
    else:
        session.commit()
    meta.scoped_session.remove()
Esempio n. 5
0
def toggle_complete(task_id):
    session = Session()
    if request.method == 'POST':
        task = session.query(Task).filter_by(id=task_id).all()[0]
        task.is_complete = not task.is_complete
        session.commit()
    return redirect('/')
Esempio n. 6
0
	def create_case(self, user, case_name, conf_builder, project_name, flow_name, properties=None, start=True):
		case = Case(
					owner_id=user.id,
					name=case_name,
					project_name=project_name,
					flow_name=flow_name,
					conf=conf_builder.get_conf(),
					properties=Data.element(properties))

		session = db.Session()
		session.add(case)
		session.commit()

		engine_case_name = "{}-{}".format(user.nick, case_name)
		#while self.engine.exists_case(engine_case_name):
		#	engine_case_name = "{}-{}".format(user.nick, uuid4().hex[-6:])

		engine_case = self.engine.create_case(engine_case_name, conf_builder, project_name, flow_name, engine_case_name)

		case.created = engine_case.created
		case.engine_name = engine_case_name
		session.commit()

		if start:
			engine_case.start()

		return case
Esempio n. 7
0
def set_garbage():
    j = sanitize_set_garbage(request.get_json(force=True,silent=True))
    if not j:
        example = json.dumps({ "id":"123",
            "price_bonus":12.34 })
        return json.dumps({ 'error': ('provide a valid json body! example: %s' % (example,)) }), 400

    session = db.Session()

    print "bla"

    tid = j['id']
    try:
        task = session.query(db.OpenTask).filter(db.OpenTask.id == tid).one()
    except NoResultFound:
        session.close()
        return json.dumps({ 'error': 'id does not exists' }), 400
    except MultipleResultsFound:
        session.close()
        return json.dumps({ 'error': 'more than one result found' }), 400


    print(task.id)

    session.delete(task)


    session.commit()

    result = { 'error': None, 'success': True }, 200

    return json.dumps(result)    
Esempio n. 8
0
def set_bonus():
    j = sanitize_set_bonus(request.get_json(force=True,silent=True))
    if not j:
        example = json.dumps({ "id":"123",
            "price_bonus":12.34 })
        return json.dumps({ 'error': ('provide a valid json body! example: %s' % (example,)) }), 400

    session = db.Session()

    tid = j['id']
    if session.query(db.OpenTask).filter(db.OpenTask.id == tid).count() == 0:
        session.close()
        return json.dumps({ 'error': 'id does not exists' }), 400
    else:

        session.close()

        session = db.Session()

        tasks = session.query(db.OpenTask).filter(db.OpenTask.id == tid)
        for task in tasks:
            task.price_bonus = j['price_bonus']

        session.commit()

        result = { 'error': None, 'success': True }, 200

        return json.dumps(result)    
        session.commit()
Esempio n. 9
0
def init_db():
    session=Session()
    Blog.objects.sync_table()
    SiteConfig.objects.sync_table()
    if not list(SiteConfig.objects.all()):
        SiteConfig.objects.create(user_name=u'admin',password=touni(hash_passwd('123456')),site_name=u'DEMO Blog')
    session.commit()
def apaga_contato(id):
    try:
        contato = session.query(Contatos).filter_by(id=id).first()
        session.delete(contato)
        session.commit()
    finally:
        pass
def delete_event():
    id = request.args.get("id") # event ID
    user_id = request.args.get("user_id")
    e = session.query(Event).get(id)
    session.delete(e)
    session.commit()
    return redirect("/student-life?id=" + user_id)
Esempio n. 12
0
def edit_item(category_name, item_name):
	# Allowes logged user to edit an item they own

	item = get_item_with_name(item_name)
	category = item.category

	if request.method == "GET":
		return render_template("edit_item.html", category = category, item = item)

	# Processing Post Request
	name = request.form.get("name") 
	description = request.form.get("description")

	validation_result = validate_edit("Item", item, name)
	valid = validation_result[0]
	message = validation_result[1]
	flash(message)

	if valid:
		item.name = name if name else item.name
		item.description = description if description else item.description
		session.add(item)
		session.commit()		
		return redirect("/catalog/{0}".format(category.name))
	else:
		return render_template("edit_item.html", category = category, item = item)
Esempio n. 13
0
def load_locations(session):

    """
    populates locations table from seed file.
    seed file is using these fields:
    Region|Country|State or Province|County|Beach Name|MSW_ID used|msw id exists for this location?|
    Beach Name of closest MSW data|lat|lon|
    """

    with open("db_seed_data/seed_locations") as f:

        reader = csv.reader(f, delimiter="|")
        for row in reader:
            id, region, country, state_or_prov, county, beach_name, msw_id, msw_unique_id_exists, msw_beach_name, lat, long = row

            # convert string to Boolean:
            if msw_unique_id_exists == "T":
                msw_unique_id_exists = True
            else:
                msw_unique_id_exists = False

            m = model.Location(
                id=id, region=region, country=country, state_or_prov=state_or_prov,
                county=county, beach_name = beach_name, 
                msw_id=msw_id, msw_unique_id_exists=msw_unique_id_exists, msw_beach_name=msw_beach_name,
                lat=lat, long=long
                )
            session.add(m)

        session.commit()
        print "locations table seeded."
Esempio n. 14
0
def receiveloop(name,radio):
	radio.startListening()
	data = []
	x_old = 0
	t_old = 0
	global power, kwh, timestamp
	timestamp = datetime.datetime.utcnow()
	while True:
		if (radio.available()):
			t_new = time.time()
			timestamp = datetime.datetime.utcnow()
			radio.read(data)
			text = u''
			try:
				for i in data:
					text += unichr(i)
				x_new = int(text[:11])
			except:
				print("Some error has occurred, waiting for next pulse.")
			else:
				power = int(7200*(x_new-x_old)/(t_new-t_old))
				kwh = x_new/500
				x_old = x_new
				t_old = t_new
				new_power = Power(timestamp, x_new, power, kwh)
				session.add(new_power)
				session.commit()
				print("New counter value received: "+str(x_new))
Esempio n. 15
0
def task():
    j = sanitize_post_task(request.get_json(force=True,silent=True))
    if not j:
        example = { "id":"123",
            "task_description":"Is company mentioned positive/neutral/negative in the following paragraph?",
            "task_text":"lorem ipsum ...",
            "answer_possibilities":["yes","no","neutral"],
            "callback_link":"http://localhost:5000/webook",
            "price":12.34 }
        return json.dumps({ 'error': 'provide a valid json body!', 'example': example }), 400

    with db.session_scope() as session:
        tid = j['id']
        if session.query(db.OpenTask).filter(db.OpenTask.id == tid).count() != 0:
            return json.dumps({ 'error': 'id already exists' }), 400

        answers = j['answer_possibilities']
        answer = None
        if type(answers) is type([]):
            answer = "|".join(answers)
        elif answers == 'text':
            answer = "text"
        else:
            return json.dumps({ 'error': 'answer_possibilities must either be of type list ["yes","no",...] or "text"' }), 400

        open_task = db.OpenTask(j['id'], j['task_description'], j['task_text'], answer, j['callback_link'], j['price'])
        session.add(open_task)
        session.commit()

        result = { 'error': None, 'success': True }

        return json.dumps(result)
Esempio n. 16
0
def set_garbage():
    j = sanitize_set_garbage(request.get_json(force=True,silent=True))
    if not j:
        example = json.dumps({ "id":"123",
            "price_bonus":12.34 })
        return json.dumps({ 'error': ('provide a valid json body! example: %s' % (example,)) }), 400

    with db.session_scope() as session:
        tid = j['id']
        try:
            task = session.query(db.OpenTask).filter(db.OpenTask.id == tid).one()
        except NoResultFound:
            return json.dumps({ 'error': 'id does not exists' }), 400
        except MultipleResultsFound:
            return json.dumps({ 'error': 'more than one result found' }), 400

        logger.info("set garbage called with task id %d", task.id)

        session.delete(task)

        session.commit()

        result = { 'error': None, 'success': True }, 200

        return json.dumps(result)    
Esempio n. 17
0
def createUser(login_session):
    newUser = User(name=login_session['username'], email=login_session[
                   'email'], picture=login_session['picture'])
    session.add(newUser)
    session.commit()
    user = session.query(User).filter_by(email=login_session['email']).one()
    return user.id
Esempio n. 18
0
def delete():
  repo_id = request.args.get('repo_id', '')
  build_id = request.args.get('build_id', '')
  user_id = request.args.get('user_id', '')

  session = request.db_session
  delete_target = None
  if build_id:
    delete_target = session.query(Build).get(build_id)
    if not request.user.can_manage:
      return abort(403)
  elif repo_id:
    delete_target = session.query(Repository).get(repo_id)
    if not request.user.can_manage:
      return abort(403)
  elif user_id:
    delete_target = session.query(User).get(user_id)
    if delete_target and delete_target.id != request.user.id and not request.user.can_manage:
      return abort(403)

  if not delete_target:
    return abort(404)

  try:
    session.delete(delete_target)
    session.commit()
  except Build.CanNotDelete as exc:
    session.rollback()
    utils.flash(str(exc))
    referer = request.headers.get('Referer', url_for('dashboard'))
    return redirect(referer)

  utils.flash('{} deleted'.format(type(delete_target).__name__))
  return redirect(url_for('dashboard'))
Esempio n. 19
0
def signup():
    form = ReusableForm(request.form)
    if request.method == 'POST':
        #Creating session for user registration to send form data to database
        Session = sessionmaker(bind=engine)
        session = Session()
        name=request.form['name']
        password=request.form['password']
        email=request.form['email']
        role = 'enduser'
        #Pass the form data to user database
        user = User(name,password,email,role)
        #Add user to the session
        session.add(user)
        if form.validate():
            #Commit user data to database and rolls back and logs on exception 
            try:
                session.commit()                
            except Exception as e:
                session.rollback()
                print(e)
            finally:
                return sendEmail(name,password,email)
        else:
            #display error message in case of incorrect form data
            flash('Error: All the form fields are required OR Enter correct email address ')
    return render_template('signup.html', form=form)
Esempio n. 20
0
def newItem():
	"""This page will be for adding a new item."""
	error=None
	login_already=current_user.is_authenticated()
	#   This function will return to homepage if it found user is not login. 
	#  	There are same setting in pages below which are able to edit the database. 
	if login_already:
		if request.method == "POST":
			error = vacant_input()
			if not error:
				"""go on input database if no empty imput. If there any, 
				   reload and labels of the empty form will turn red."""
				time_now=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
				""" Get currunt time and insert to create_time. 
				 	This will use for index items display order"""
				i = Item(create_time=time_now, 
						 name=request.form['name'], 
						 discription=request.form['discription'], 
						 category=request.form['category'])
				session.add(i)
				session.flush()
				i.photo=upload_image(i.id)
				session.commit()
				return redirect("/")
			c = session.query(Category).all()
			return render_template("add.html", c=c, login_already=login_already, error=error)
		c = session.query(Category).all()
		return render_template("add.html", c=c, login_already=login_already, error=error)
	else:
		return redirect("/")
Esempio n. 21
0
def settings():
    
    form = SettingsForm(request.form,
                        username=current_user.username,
                        email=current_user.mail,
                        show_def_name=current_user.get_setting(code='show_def_name'),
                        show_def_desc=current_user.get_setting(code='show_def_desc'),
                        show_def_tags=current_user.get_setting(code='show_def_tags'),
                        show_def_logo=current_user.get_setting(code='show_def_logo'),
                        use_icy=current_user.get_setting(code='use_icy'))
    
    if request.method == "POST" and form.validate():
        if current_user.check_password(password=form.old_password.data):
            if form.new_password.data:
                current_user.password = User.make_password(form.new_password.data)
            current_user.mail = form.email.data
            current_user.set_setting(code='show_def_name', value=form.show_def_name.data)
            current_user.set_setting(code='show_def_desc', value=form.show_def_desc.data)
            current_user.set_setting(code='show_def_tags', value=form.show_def_tags.data)
            current_user.set_setting(code='show_def_logo', value=form.show_def_logo.data)
            current_user.set_setting(code='use_icy', value=form.use_icy.data)
            session.commit()
            flash('Settings successfully updated.')
            return redirect(url_for('settings'))
        else:
            form.old_password.errors.append('Wrong password.')

    return render_template('settings.html', form=form, username=current_user.username, TITLE='Settings')
Esempio n. 22
0
def new_item(category_name):
	# Allows a logged in user to add a new item, with him as its owner
	categories = session.query(Category).all()
	category = get_category_with_name(category_name)
	
	if request.method == "GET":
		return render_template("add_item.html", category = category)

	# Processing Post Request
	name = request.form.get("name")
	description = request.form.get("description")

	validation_result = validate_creation("Item", name, category.id)
	valid = validation_result[0]
	message = validation_result[1]
	flash(message)	

	if valid:
		item = Item(name = name, description = description, category_id = category.id, \
								user_id = login_session["user_id"])
		session.add(item)
		session.commit()		
		return redirect("/catalog/{0}".format(category.name))
	else:
		return render_template("add_item.html", category = category)
Esempio n. 23
0
	def _case_removed(self, engine_case):
		session = db.Session()
		case = session.query(Case).filter(Case.engine_name == engine_case.name).first()
		if case is not None:
			self.case_removed.send(case, server=self, logger=self.logger)
			session.delete(case)
			session.commit()
Esempio n. 24
0
def clear_complete():
    session = Session()
    if request.method == 'POST':
        for task in session.query(Task).filter_by(is_complete=True).all():
            if (task.is_complete):
                session.delete(task)
        session.commit()
    return redirect('/')
Esempio n. 25
0
	def _case_finished(self, engine_case):
		session = db.Session()
		case = session.query(Case).filter(Case.engine_name == engine_case.name).first()
		if case is not None:
			case.state = engine_case.state
			case.finished = engine_case.finished
			self.case_finished.send(case, server=self, logger=self.logger)
			session.commit()
Esempio n. 26
0
def load_entries(session):

    """
    populates entries table from seed file.

    seed file is using these fields:

    user_id|datetime start|loc_id|spot_name|go_out|
    swell1_ht|swell1_per|swell1_dir_deg|swell1_arrow_deg|swell1_dir_comp|
    wind_speed|wind_gusts|wind_dir_deg|wind_arrow_deg|
    board_id|board_pref|board_notes|buddy|gen_notes
    rate_wave_challenge|rate_wave_fun|rate_crowd_den|rate_crowd_vibe|rate_overall_fun

    (using msw api data collected for past dates from another app, only rounded degress available)
    """
    
    with open("db_seed_data/seed_entries") as f:
        reader = csv.reader(f, delimiter="|")
        for row in reader:

            print row

            (user_id, datetime_start, loc_id, spot_name, go_out,
            swell1_ht, swell1_per, swell1_dir_deg_global, swell1_arrow_deg, swell1_dir_comp, 
            wind_speed, wind_gust, wind_dir_deg, wind_arrow_deg,
            board_id, board_pref, board_notes, buddy_name, gen_notes,
            rate_wave_challenge, rate_wave_fun, rate_crowd_den, rate_crowd_vibe,
            rate_overall_fun) = row
            
            ## convert string to datetime
            date_time_start = datetime.strptime(datetime_start, "%Y-%m-%d %H:%M")
            ## temp using same start and end time. 
            date_time_end = date_time_start

            swell1_dir_deg_global = float(swell1_dir_deg_global)
            ## convert from global deg back to deg as msw would provide
            swell1_dir_deg_msw = (swell1_dir_deg_global - 180)%360
            print "swell1_dir_deg_global: ", swell1_dir_deg_global
            print "swell1_dir_deg_msw: ", swell1_dir_deg_msw


            u = model.Entry(user_id=user_id, date_time_start=date_time_start, date_time_end=date_time_end, 
                            loc_id=loc_id, spot_name=spot_name, go_out=go_out,
                            swell1_ht=swell1_ht, swell1_per=swell1_per, swell1_dir_deg_global=swell1_dir_deg_global,
                            swell1_dir_deg_msw=swell1_dir_deg_msw, swell1_arrow_deg=swell1_arrow_deg, swell1_dir_comp=swell1_dir_comp,
                            wind_speed=wind_speed, wind_gust=wind_gust,
                            wind_dir_deg = wind_dir_deg, wind_arrow_deg=wind_arrow_deg, 
                            board_id=board_id, board_pref=board_pref, board_notes=board_notes,
                            buddy_name=buddy_name, gen_notes=gen_notes,
                            rate_wave_challenge=rate_wave_challenge, rate_wave_fun=rate_wave_fun,
                            rate_crowd_den=rate_crowd_den, rate_crowd_vibe=rate_crowd_vibe,
                            rate_overall_fun=rate_overall_fun)
            session.add(u)
        
        
        session.commit()
        print "entries table seeded." 
Esempio n. 27
0
def edit_view(rid):


    #debug
    if(request.form.has_key('subbtn')):
	subbtn = request.form['subbtn']
	app.logger.debug("subbtn = %s" % subbtn)
    else:
	app.logger.debug("no subbtn key")
	subbtn=None


    rec = session.query(Records).filter(Records.id == rid).first()
    form = EditForm(request.form, obj=rec)

    # set choices
    l = Records.getValuesFromField('phase')
    form.phase.choices = listToChoices(l)
    form.final_action.choices = listToChoices(Records.getValuesFromField('final_action'))

    if form.validate_on_submit():
	val = True
    else:
	val = False

    if subbtn:
	if subbtn == form.cancel:
	    app.logger.debug("cancel")
	    flash("Changes canceled")
	    return redirect('/select/')
	else:
	    app.logger.debug("saving record")
	    #form.populate_obj(rec)  # f***s up boolean nulls
	    data = form.data
	    for d in data:
		print "ghetto populate: %s -> %s" % (d, data[d])
		setattr(rec,d,data[d])
	    if val and not subbtn==form.saveselect:
		rec.status ="%s-done" % session.query(User).filter(id=uid).first().initials
	    session.add(rec)
	    session.commit()
	if subbtn == form.savenext:
	    rec.checkin(current_user.id)
	    n = getNextRecord()
	    msg = record.checkout(current_user.id)
	    flash(msg)
	    return redirect('/edit/%d' % n.id)
	elif subbtn==form.saveselect:
	    flash("Record saved but not checked in")
	    return redirect('/select/')
	    
	if form.errors:
	    app.logger.debug("oh shit:")
	    app.logger.debug(form.errors)
	flash("error")
	app.logger.debug("edit form validation failed")
    return render_template('records/edit.html', form=form, rec=rec, idx=AutoIncrement() ) 
Esempio n. 28
0
    def test_read_committee_attribute(self):

        session.add(committee(name="AttrTest", chamber="House"))
        session.commit()

        query = session.query(committee).filter(committee.name == "AttrTest").first()

        assert query is not None
        assert query.chamber == "House"
Esempio n. 29
0
    def test_read_bill_attribute2(self):

        session.add(bill(name="AttrTest2", house_status="Failed"))
        session.commit()

        query = session.query(bill).filter_by(name="AttrTest2").first()

        assert query is not None
        assert query.house_status == "Failed"
Esempio n. 30
0
    def test_read_legislator_attribute(self):

        session.add(legislator(last_name="TESTATTR", party="Republican"))
        session.commit()

        query = session.query(legislator).filter(legislator.last_name == "TESTATTR").first()

        assert query is not None
        assert query.party == "Republican"
Esempio n. 31
0
def add_new_med():
    meds = get_medicines()
    form = medication_form()
    med = entities.User_med(user=current_user.id,
                            medication=[
                                Medication(
                                    med_brand_name=form.brand.data,
                                    med_drug=form.drug.data,
                                    med_dosis=form.dosis.data,
                                    med_prescribed_by=form.prescribed_by.data,
                                    med_diagnosis=form.diagnosis.data,
                                    med_quantity=form.quantity.data)
                            ])
    session = db.getSession(engine)  #med = current_user
    session.add(med)
    session.commit()
    return redirect('/success')
Esempio n. 32
0
    def test_read_legislator_attribute_multiple(self):

        session.add(legislator(last_name="TESTATTR1", party="Republican"))
        session.add(legislator(last_name="TESTATTR1", party="Democrat"))
        session.commit()

        queries = session.query(legislator).filter(
            legislator.last_name == "TESTATTR1").all()

        assert (queries is not None)
        assert (len(queries) == 2)

        party = []
        for x in queries:
            party.append(x.party)

        assert (party[0] != party[1])
Esempio n. 33
0
def scan_code():
    if check(session) == False:
        return jsonify({'flag': 'error', 'reason': 'time_out'})
    session = request.headers.get('session')
    openid = get_openid_from_session_key(session)
    code = request.form.get('code')
    member = session.query(Member).filter(
        and_(Member.code == code, Member.activity_id == activity_id,
             Member.openid == openid)).all()
    if member != None:
        session.delete(member)
        session.commit()
        os.remove('qrcode/' + str(code) + '.jpg')
        os.remove('barcode/' + str(code) + '.jpg')
        return jsonify({'flag': 'success'})
    else:
        return jsonify({'flag': 'error'})
Esempio n. 34
0
def settings_user():
    form = RegisterForm()

    session = db_session.create_session()

    form.account_type.render_kw['disabled'] = 'disabled'
    form.password.render_kw = {
        **form.about_me.render_kw, 'disabled': 'disabled',
        'hidden': 'hidden'
    }
    form.password_repeat.render_kw = {
        **form.about_me.render_kw, 'disabled': 'disabled',
        'hidden': 'hidden'
    }
    form.photo.render_kw = {
        **form.about_me.render_kw, 'disabled': 'disabled',
        'hidden': 'hidden'
    }

    form.account_type.choices = [[
        current_user.account_type,
        session.query(AccountType).get(current_user.account_type).name
    ]]

    if form.is_submitted() is False:
        form.user_name.data = current_user.user_name
        form.name.data = current_user.name
        form.surname.data = current_user.surname
        form.email.data = current_user.email
        form.birthday.data = str(current_user.birthday).split()[0]
        form.about_me.data = current_user.about_me

    if form.is_submitted():
        current_user.user_name = form.user_name.data
        current_user.name = form.name.data
        current_user.surname = form.surname.data
        current_user.email = form.email.data
        current_user.birthday = datetime.datetime.strptime(
            form.birthday.data, '%Y-%m-%d')
        current_user.about_me = form.about_me.data

        session.merge(current_user)
        session.commit()
    return render_template('register.html',
                           action_title="Редактирование",
                           form=form)
def voite(work_id):
    session = db_session.create_session()
    work = session.query(Work).filter(Work.id == work_id).first()
    if work:
        if work and work.user_id == g.user.id:
            result = "Нельзя голосовать за свои работы"
        elif session.query(Voite).filter((Voite.work_id == work_id) & (
                Voite.user_id == g.user.id)).count() != 0:
            result = "Вы уже голосовали за эту работу"
        else:
            voite = Voite(user_id=g.user.id, work_id=work_id)
            session.add(voite)
            session.commit()
            result = "Спасибо за ваш голос"
    else:
        result = "Работа не найдена"
    return render_template('voite.html', title=result)
Esempio n. 36
0
def session_scope(session):
    """
    Provide a transactional scope around a series of operations.
    (Taken from http://docs.sqlalchemy.org/en/latest/orm/session_basics.html)
    WARNING: this implementation doesn't create new session, but reuses
    existing like:
        with session_scope(db.session):
            ...
    """
    try:
        yield
        session.commit()
    except:
        session.rollback()
        raise
    finally:
        session.close()
Esempio n. 37
0
def agregarEmpleado(nombre, apellido, puesto):
    engine = create_engine('sqlite:///adminObjetosDB.db')
    Base.metadata.bind = engine
    DBSession = sessionmaker(bind=engine)
    session = DBSession()
    elEmpleado = Empleado(nombre=nombre,
                          apellido=apellido,
                          puesto=puesto,
                          activo="1")
    print(elEmpleado.nombre)
    print(elEmpleado.apellido)
    print(elEmpleado.puesto)
    print(elEmpleado.activo)
    session.add(elEmpleado)
    session.commit()
    session.close()
    engine.dispose()
Esempio n. 38
0
def deleteBook(author_id, book_id):
    if 'username' not in login_session:
        return redirect('/login')
    author = session.query(Author).filter_by(id=author_id).one()
    bookToDelete = session.query(Book).filter_by(id=book_id).one()
    if bookToDelete.user_id != login_session['user_id']:
        flash('User not authorized to delete book.')
        return redirect(url_for('showBooks', author_id=author.id))
    if request.method == 'POST':
        session.delete(bookToDelete)
        session.commit()
        flash('Book Successfully deleted')
        return redirect(url_for('showBooks',
                                author_id=author_id))
    else:
        flash('Book not deleted')
        return redirect(url_for('showBooks'))
Esempio n. 39
0
def deleteAuthor(author_id):
    if 'username' not in login_session:
        return redirect('/login')
    authorToDelete = session.query(Author).filter_by(id=author_id).one()
    booksToDelete = session.query(Book).filter_by(idAuthor=author_id).all()
    if authorToDelete.user_id != login_session['user_id']:
        flash('User not authorized to delete author.')
        return redirect(url_for('showAuthors'))
    if request.method == 'POST':
        for book in booksToDelete:
            session.delete(book)
        session.delete(authorToDelete)
        session.commit()
        flash("Author successfully deleted.")
        return redirect(request.referrer)
    else:
        return render_template('deleteAuthor.html', author_id=author_id)
Esempio n. 40
0
def create_club():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()

    club = Club(name=j.get('name'),
                school_id=j.get('school_id'),
                description=j.get('description'),
                category=j.get('category'),
                location=j.get('location'),
                usualTime=j.get('usualTime'),
                img_type=j.get('img_type', None))
    session.add(club)
    session.commit()
    return jsonify({'id': club.id})
Esempio n. 41
0
def subscribe():
    if request.mimetype != 'application/json':
        raise Exception('Content-Type is not "application/json".')
    j = request.get_json()
    Session, engine = dbconnect(db_options)
    session = Session()
    link = UserClubPositionMapping(user_id=j.get('user_id'),
                                   club_id=j.get('club_id'),
                                   position_id=j.get('position_id'))

    session.add(link)
    session.commit()
    return jsonify({
        'user_id': link.user_id,
        'club_id': link.club_id,
        'position_id': link.position_id
    })
Esempio n. 42
0
def follow(username):
    user = User.query.filter_by(
        username=username).first()  # @UndefinedVariable
    if user == None:
        flash('User ' + username + ' not found.')
        return redirect(url_for('index'))
    if user == g.user:
        flash('You can\'t follow yourself!')
        return redirect(url_for('user', username=username))
    u = g.user.follow(user)
    if u is None:
        flash('Cannot follow ' + username + '.')
        return redirect(url_for('user', username=username))
    session.add(u)
    session.commit()
    flash('You are now following ' + username + '!')
    return redirect(url_for('user', username=username))
Esempio n. 43
0
def create_user():
    #create user object
    #c = json.loads(request.data)
    c = json.loads(request.form['values'])
    user = entities.User(username=c['username'],
                         name=c['name'],
                         fullname=c['fullname'],
                         password=c['password'])
    #send user to persistence layer
    session = db.getSession(engine)
    session.add(user)
    session.commit()
    session.close()
    #Response client
    r_msg = {'msg': 'UserCreated'}
    json_msg = json.dumps(r_msg)
    return Response(json_msg, status=201)
def edit_work(work_id):
    session = db_session.create_session()
    work = session.query(Work).filter(Work.id == work_id).first()
    # проверяем, существует ли работа и принадлежит ли она пользователю
    if work and work.user_id == g.user.id:
        form = AddWorkForm(obj=work)
        if request.method == 'POST' and form.validate_on_submit():
            work.title = form.title.data
            work.description = form.description.data
            work.registered_only = form.registered_only.data
            session.commit()
            return redirect('/user/work/' + str(work_id))
        return render_template('edit_work.html',
                               title='Редактирование информации о работе',
                               form=form)
    else:
        return render_template('edit_work.html', title='Работа не найдена')
Esempio n. 45
0
def create_message():
    c = json.loads(request.form['values'])
    #    format = '%d/%m/%Y' # The format
    #    datetime_str = datetime.datetime.strptime(c['sent_on'], format)
    #    print(datetime_str)
    message = entities.Message(
        content=c['content'],
        # sent_on=datetime_str,
        user_from_id=c['user_from_id']['username']['id'],
        user_to_id=c['user_to_id']['username']['id'])
    session = db.getSession(engine)
    session.add(message)
    session.commit()
    session.close()
    r_msg = {'msg': 'Message Created!'}
    json_msg = json.dumps(r_msg)
    return Response(json_msg, status=201)
Esempio n. 46
0
def addJob():
    addform = AddJobForm()

    if addform.validate_on_submit():
        session = db_session.create_session()
        jobs = Jobs(
            job=addform.job.data,
            team_leader=addform.team_leader.data,
            work_size=addform.work_size.data,
            collaborators=addform.collaborators.data,
            is_finished=addform.is_finished.data
        )

        session.add(jobs)
        session.commit()
        return redirect('/')
    return render_template('add_job.html', title='Добавление работы', form=addform)
Esempio n. 47
0
def no(n_click):
    session = get_session()
    if n_click is not None:
        if session.query(dc.Current_State).all():
            curr_state = session.query(dc.Current_State).all()[0]
        else:
            curr_state = None

        id = flask.request.cookies.get('watcher_id')

        if curr_state and curr_state.opened == 1:
            voted = session.query(dc.Votes).filter(dc.Votes.uuid == id).filter(dc.Votes.state == curr_state.state).all()
            if len(voted) == 0:
                vote = dc.Votes(uuid=id, state=curr_state.state, vote='no')
                session.add(vote)
                session.commit()
                session.close()
Esempio n. 48
0
def index():

    reg_form = RegistrationForm()
    # updates database on successful registration
    if reg_form.validate_on_submit():
        hashed_password = generate_password_hash(reg_form.password.data, method='sha256')
        username = reg_form.username.data
        password = hashed_password
        email = reg_form.email.data

        #adding user to DB
        user = User(username=username, password=password, email=email)
        session.add(user)
        session.commit()            

        return redirect(url_for('login'))
    return render_template('login.html', form=reg_form)
Esempio n. 49
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    form = RegisterForm()
    if form.validate_on_submit():
        print "Validated"
        user = User(username=form.username.data,
                    password=form.password.data,
                    email=form.email.data)
        session.add(user)
        session.commit()
        flash('Congratulations, you are now a registered user!')
        print "Registered"
        login_user(user, remember=form.remember_me.data)
        print "Logged in"
        return redirect(url_for('home'))
    return render_template('register.html', title='Register', form=form)
Esempio n. 50
0
def eliminar(id, curso, variable):
    session = db.getSession(engine)
    user = session.query(entities.User).filter_by(id=id).first()
    curso1 = session.query(entities.Curso).filter(
        entities.Curso.name == curso, entities.Curso.user_id == id).first()
    nota = session.query(entities.Nota).filter(
        entities.Nota.curso_id == curso1.id,
        entities.Nota.variable == variable).first()
    session.delete(nota)
    session.commit()
    resultado = 0
    for nota in curso1.notas:
        resultado += nota.nota * nota.porcentaje / 100
    return render_template("Notas.html",
                           user=user,
                           curso=curso1,
                           resultado="{0:.2f}".format(resultado))
Esempio n. 51
0
def see_all_ratings(movie_title, rating_MPAA, rating_Rotten, rating_IMDB_R,
                    rating_IMDB_V):
    if movie.query.filter_by(title=movie_title).first():
        themovie = Rating.query.filter_by(
            moname=movie_title, Rotten_Tomatoes=rating_Rotten).first()
        themovie.MPAA_Rating = rating_MPAA
        themovie.Rotten_Tomatoes = rating_Rotten
        themovie.IMDB_Rating = rating_IMDB_R
        themovie.IMDB_Votes = rating_IMDB_V
        # rating = Rating(moname = movie_title, MPAA_Rating = rating_MPAA, Rotten_Tomatoes = rating_Rotten, IMDB_Rating = rating_IMDB_R,IMDB_Votes = rating_IMDB_V)
        session.add(themovie)
        session.commit()
        return "That movie {} has ratings! MPAA_Rating:{}. Rotten_Tomatoes:{}. IMDB_Rating:{}. IMDB_Votes:{}.".format(
            movie_title, themovie.MPAA_Rating, themovie.Rotten_Tomatoes,
            themovie.IMDB_Rating, themovie.IMDB_Votes)
    else:
        return "That movie doesn't have record. Please input the information and then to check."
Esempio n. 52
0
def editName(dbid, newName):
    session = loopDB.Session()
    part = session.query(Part).filter(Part.dbid == dbid).first()

    if part:
        part.name = newName
        retMessage = ["OK", partToJson(part)]
    else:
        retMessage = ["Error", "Part not found."]

    try:
        session.commit()
    except:
        retMessage = ["Error", "Bad name. Try again."]

    session.close()
    return retMessage
Esempio n. 53
0
def populate_teams():
    with open('overall_ranks.csv', 'r', encoding='utf8') as csv_file:
        team_lines = csv.reader(csv_file, delimiter=',')
        header = next(team_lines, None)

        for t in team_lines:
            q_conf = Conference.query.filter_by(ConfName=t[2]).first()
            a_conf_id = q_conf.id
            team_inst = Team(school_name=t[1],
                             conf_name=t[2],
                             conf_id=a_conf_id,
                             W=t[4],
                             L=t[5],
                             Pct=t[6],
                             Rk=t[0])
            session.add(team_inst)
            session.commit()
Esempio n. 54
0
def buy():
    session = db_session.create_session()
    products = session.query(Products)
    basket_ = [int(i) for i in current_user.basket.split()]
    price = 0
    for i in basket_:
        price += float(
            session.query(Products).filter(Products.id == i).first().price)
    if current_user.is_vip:
        price *= 0.8
    if price > current_user.money:
        return redirect('/not_enough')
    current_user.money -= price
    current_user.basket = ''
    session.merge(current_user)
    session.commit()
    return render_template("buy.html", products=products, basket=basket_)
Esempio n. 55
0
def spell_check():

    global user_logged_in
    global logged_in

    # If not logged in, send to login page and stop
    if not logged_in:
        return redirect(url_for('login'))

    form = SpellCheckForm()
    textout = []
    misspelled = []
    uname = session.get('user_ID')

    # See if text is validated
    if form.validate_on_submit():
        spell = SpellChecker()
        inputtext = form.inputtext.data

        # Parse text
        words = inputtext.split()

        # Find out if words are misspelled
        for word in words:
            if word in spell:
                textout.append(word)
            else:
                misspelled.append(word)

        # Create log record of query
        query_record = Query_Record(username=uname,
                                    querytext=inputtext,
                                    queryresults=misspelled)

        # Add query record to DB
        session.add(query_record)
        session.commit()

    return render_template("spell_check.html",
                           title="Spell Check",
                           form=form,
                           spell_check=True,
                           textout=textout,
                           misspelled=misspelled,
                           logged_in=logged_in,
                           user_logged_in=user_logged_in)
Esempio n. 56
0
def newUser():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        if username is None or password is None:
            flash("Invalid Password or Username")
        if session.query(User).filter_by(name=username).first() is not None:
            flash("Username already exists! Try something different")
        user = User(name=username)
        user.hash_password(password)
        session.add(user)
        session.commit()
        flash("Succesfully signed up")
        return render_template('newlogin.html')
    else:
        print "hello"
        return render_template('signup.html')
Esempio n. 57
0
def update_sequence_file(sequence_id, sequence_data):
    sequence = Sequence.query.filter_by(SequenceID=sequence_id).first()
    if sequence:
        session = db.session
        try:
            seq_components = Component.query.filter_by(
                SequenceID=sequence_id).all()
            for comp in seq_components:
                session.delete(comp)
            for reg in sequence.reagents:
                session.delete(reg)
            model_helpers.update_components(sequence_id, sequence_data)
            session.commit()
        except Exception as e:
            session.rollback()
            raise e
    return sequence
def set_up_database(userid, csv_file_name):

    userid_data = UserId.query.filter_by(IdNum=userid).first()
    if userid_data:
        pass
    else:
        userid_data = UserId(IdNum=userid)
    session.add(userid_data)

    row_lst = []
    with open(csv_file_name, "r") as csvdata:
        reader = csv.reader(csvdata)
        for row in reader:
            row_lst.append(row)
    csvdata.close()

    for i in row_lst[1:]:
        type_data = Type.query.filter_by(TypeName=i[-1]).first()
        if type_data:
            pass
        else:
            type_data = Type(TypeName=i[-1])

        session.add(type_data)

    session.commit()

    for i in row_lst[1:]:
        type_data = Type.query.filter_by(TypeName=i[-1]).first()
        userid_data = UserId.query.filter_by(IdNum=userid).first()

        fan_data = Fans(
            User_id=i[1],
            Name=i[0],
            # Rank = i[2],
            Self_intro=i[2],
            # Other_intro = i[4],
            Fans_count=i[3],
            Following_count=i[4],
            # Posts_count = i[8],
            Userid_id=userid_data.Id,
            Type_id=type_data.Id)

        session.add(fan_data)

    session.commit()
Esempio n. 59
0
def reply():
    r_content = request.form['val_textarea']
    q_id = request.form['question_id']
    generated_id = id_generator("Replies")
    session = db_session.create_session()
    r = Replies(text=r_content,
                question_id=q_id,
                generated_id=generated_id,
                user_id=current_user.id)
    q_rep_num = session.query(Questions).filter(
        Questions.generated_id == q_id).first()
    q_rep_num.rep_num += 1
    rep_num = q_rep_num.rep_num
    session.add(r)
    session.commit()
    print(r_content, q_id, generated_id)
    return jsonify({"generated_id": generated_id, "rep_num": rep_num})
Esempio n. 60
0
def register():
    """
    Method for register. Is in charge of displaying the template for the register page. Once the user is succesfully 
    registered, it redirects to the new home page of the user. Accept two methods: GET and POST.
    If the method is POST:
        -Get the necesary data sent by the user to the server (first name, last name, email and passsword).
        -Check if some of the fields are empty.
        -Check if the email has the standard format.
        -Check if the email entered is already on the database.
        -If some of the previous condition is false, it tells the user, and redirect to the register page.
        -If all went fine, extract the username from the email, and create a new instance of Usuario. Fills
        the fields with the corresponding variables sent, and set the status of the user to available on the server.
    If the method is GET:
        -Send the template corresonding to the register page.
    """
    if request.method == 'POST':
        name = request.form['name']
        lastname = request.form['LastName']
        email = request.form['email']
        pwd = request.form['password']

        if not name or not lastname or not email or not pwd:
            flash("Missing field")
            return render_template("register.html")

        #Check for validity of email
        r = regexp.match(email)
        if r == None:
            flash("Incorrect email format")
            return render_template("register.html")

        #Check if user not already exists
        q = session.query(exists().where(Usuario.email == email)).scalar()
        if q:
            flash("User already register")
            return render_template("register.html")

        index = email.find('@')
        username = email[0:index]
        newUser = Usuario(nombre = name, apellido = lastname, email = email, contrasena = pwd, username = username, \
            conectado = True, disponibilidad = True)
        session.add(newUser)
        session.commit()
        return redirect(url_for("home", username=username))
    else:
        return render_template("register.html")