예제 #1
0
def todos(id):
	"""
		Need a todo id pased by url, Provide:
		- /api/todo/x PATCH and DELETE routes
			PATCH require title, content, done as arg
			DELETE is without arg
	"""
	todo = Todo.query.get(id)
	if not todo:
		abort(400)
	elif request.method == 'PATCH':
		print todo
		print request.json
	   	# uggly, how to factorise ?
		if not request.json or not 'content' in request.json or not 'done' in request.json or not 'title' in request.json:
			abort(400)
		todo.title = request.json['title']
		todo.content = request.json['content']
		todo.done = request.json['done']
		db_session.add(todo)
		db_session.commit()
		return jsonify(ok=todo.serealize)
	elif request.method == 'DELETE':
		db_session.delete(todo)
		db_session.commit()
		return jsonify(deleted=todo.serealize)
	else:
		abort(400)
예제 #2
0
def cpanel():
    form = NewTireForm()
    img_form = UpdateImageForm()
    if form.validate_on_submit():
        tire = Tire(name = form.name.data,
                   price = form.price.data,
                   size = form.size.data,
                   status = Tire.Status.active.name,
                   description = form.description.data,
                   quantity = form.quantity.data)
        if form.image.data is not None:
            tire.image = save_image(form)
        sess.add(tire)
        sess.commit()
        flash('Added {0}'.format(form.name.data))
        return redirect(url_for('.cpanel'))
    elif img_form.validate_on_submit():
        t = Tire.query.filter_by(id=img_form.pk.data).first()
        t.image = save_image(form)
        sess.commit()
        flash('Updated image')
        return redirect(url_for('.cpanel'))
    elif request.method == 'POST':
        flash(form.errors)
    return render_template('admin.html', form=form, img_form=img_form)
예제 #3
0
def likeGoodPost():

	# 일일한도 체크
	todayCount = myTodayCounts(request.form['userId'], "GoodLike");
	if todayCount["Like"] >= 10 :
		return jsonify({ "code": 313, "result": "Limit today's like good thing" })

	try:
		like = GoodLike(request.form['postId'], request.form['userId'])
		db_session.add(like)
		db_session.commit()
		result = { "code": 200, "result": "Success" }

		# 포인트 적립
		point_result = putPointFunc(request.form['userId'], 10, "GoodLike", request.form['postId'])
		if point_result!=False :
			result["pointId"] = point_result["pointId"]
			result["point"] = point_result["point"]
		# 글쓴이 적립
		putPointFunc(request.form['pUserId'], 10, "GoodLikeRcv", request.form['postId'])

		# 푸쉬알림.
		push_result = sendPush(request.form['pUserId'], 3, "작성한 게시물이 \'좋아요\'를 받았습니다.")
		result["push"] = push_result

	except exc.IntegrityError as e:
		db_session.rollback()
		result = { "code": 402, "result": "Duplicate entry or No such entry" }

	return jsonify(result)
예제 #4
0
def add():
    if request.method == 'GET':
        output = render_template("user/add.html")
    else:
        output = {
            'error': None,
            'error_message': None,
            'redirect_url': None,
        }
        try:
            if request.json:
                form_data = request.json
            else:
                form_data = request.form
            name = form_data["user_name"]
            phone = form_data["user_phone"]
            mac_address = form_data["user_mac_address"]
            user = RegisteredUser(name, mac_address, phone)
            db_session.add(user)
            db_session.commit()
            output['redirect_url'] = url_for('mod_user.show')
        except Exception as e:
            output['error'] = True
            output['error_message'] = str(e)
            db_session.rollback()
        finally:
            output = Response(json.dumps(output), mimetype='application/json')

    return output
예제 #5
0
def change_permissions():
    ## This block filters the admin role and permissions

    all_users = User.query.all()
    list_of_roles = Role.query.all()
    list_of_perms = Permission.query.all()
    admin_role = Role.query.filter_by(name='Administrator').first()
    admin_perms = Permission.query.filter_by(permission_name='Administrator').first()
    list_of_roles.remove(admin_role)
    list_of_perms.remove(admin_perms)

    ## Endblock
    print list_of_perms
    if request.method == 'POST':        
        for roles in list_of_roles:
            role = Role.query.filter_by(name=roles.name).first()
            role.permissions = []
            for perms in list_of_perms: ## number of permissions
                type = roles.name + ' ' + perms.permission_name 
                print type
                get_val = request.form.get(str(type))
                if get_val is not None:
                    p = Permission.query.filter_by(permission_name=str(get_val)).first()
                    print 'ENTERED! ' + str(p)
                    role.permissions.append(p)
            print role.permissions
            db_session.add(role)
        db_session.commit()
        flash('Permissions changed.')
        return redirect(url_for('Users.change_permissions'))
    return render_template('admin/edit_permissions.html',list_of_roles=list_of_roles, 
                            list_of_perms=list_of_perms, all_users=all_users)
예제 #6
0
def create_task(project_id):
    if request.method == "POST":
        _description = request.form["description"]
        _tl = request.form["tags"]
        _start_time = request.form["start_time"]
        _end_time = request.form["end_time"]

        print(project_id)

        task = Task(project_id=project_id,
                    description=_description,
                    start_time=_start_time,
                    end_time=_end_time)

        db_session.add(task)
        db_session.commit()

        _tags_list = [x.strip() for x in _tl.split(",")]

        for t in _tags_list:
            tag = Tag(task_id=task.task_id, tag_name=t)
            db_session.add(tag)
            db_session.commit()

        return redirect(url_for("core.tasks", project_id=project_id))

    return render_template("create_task.html", project_id=project_id)
예제 #7
0
def putTodayHappiness():
	params = dict()
	params["userId"] = request.form['userId']
	params["companyId"] = request.form['companyId']
	params["groupId"] = request.form['groupId']
	params["happyVal"] = request.form['happyVal']

	today = datetime.today()
	todayDate = today.strftime("%Y-%m-%d")

	todayHappiness = Happiness.query.filter_by(userId=params["userId"]).filter(Happiness.rdate > todayDate ).first()
	if todayHappiness!=None and todayHappiness.id!=None:
		result = { "code": 305, "result": "Duplicate today's entry", "happyVal": todayHappiness.happyVal }

	else:
		happiness = Happiness(**params)
		db_session.add(happiness)
		try:
			db_session.commit()
		except exc.IntegrityError as e:
			db_session.rollback()

		if(happiness.id==None):
			result = { "code": 400, "result": "DB Error" }
		else:
			result = { "code": 200, "result": "Success" }

	return jsonify(result)
예제 #8
0
def setPushToken():
	userId = request.form['userId']
	pushTokenStr = request.form['pushToken']
	os = request.form['os']

	update_result = db_session.query(PushToken).filter_by(userId=userId).update({'pushToken': pushTokenStr, 'os' : os})
	try:
		db_session.commit()
	except exc.IntegrityError as e:
		db_session.rollback()

	if(update_result==None):
		result = { "code": 400, "result": "DB Error" }
	elif(update_result==0):
		pushToken = PushToken(userId, pushTokenStr, os)
		db_session.add(pushToken)
		try:
			db_session.commit()
		except exc.IntegrityError as e:
			db_session.rollback()

		result = { "code": 201, "result": "Success to insert" }
	else:
		result = { "code": 200, "result": "Success to update" }
	return jsonify(result)
예제 #9
0
def set_roles():
    all_users = User.query.all()
    roles = Role.query.all()

    ## FILTER SUPERADMIN USER
    for i in all_users:
        if i.username == ADMIN:
            all_users.remove(User.query.filter_by(username=ADMIN).first())


    if request.method == 'POST':

        ## This loop checks all the users and assign all the roles assigned by the administrator
        ## Like the previous checking loop, this loop does the same, checking each checkboxes, 
        ## and assign the checked values to the User roles.
        for user in all_users:
            u = User.query.filter_by(username=user.username).first()
            u.role = []
            for r in roles: 
                type = u.username + ' ' + r.name
                print type
                get_val = request.form.get(str(type))
                if get_val is not None:
                    erole = Role.query.filter_by(name=str(get_val)).first() ##Entered role
                    print 'ENTERED! ' + str(erole)
                    u.role.append(erole)
            print str(u.username) + ' ' + str(u.role)
            db_session.add(u)
            u.init_active_roles(u.username)
        db_session.commit()
        flash('Role changed.')
        return redirect(url_for('Users.set_roles'))
    return render_template('admin/set_roles.html', all_users=all_users, roles=roles, ADMIN=ADMIN)       
예제 #10
0
def handle_form_data(register_dict):
    reg_num = rand_gen()
    register_dict['reg_num'] = reg_num
    p = Presenters(arg_dict=register_dict)
    handle_email(register_dict['email'],register_dict)
    db_session.add(p)
    db_session.commit()
예제 #11
0
    def mutate(self, info, group_id, user_id, id_from_token):
        group_id = int(group_id)
        user_id = int(user_id)
        group = db.query(Group).filter_by(id=group_id).first()
        if group is None:
            raise Exception("No group with this ID found!")
        admin_role = db.query(GroupUser.role_in_group).filter_by(
            user_id=group.admin_id, group_id=group_id).first()
        user_role = db.query(GroupUser.role_in_group).filter_by(
            user_id=id_from_token, group_id=group_id).first()
        if admin_role.role_in_group == RoleEnum.ORGANIZER:
            if user_role is not None and user_role.role_in_group == RoleEnum.ORGANIZER:
                try:
                    db.add(
                        GroupUser(group_id=group_id,
                                  user_id=user_id,
                                  role_in_group=RoleEnum.ORGANIZER))
                    commit_with_check(db)
                except:
                    db.rollback()
                return AddOrganizer(ok=True, message="Users have been added!")

        return AddOrganizer(
            ok=True,
            message="Only admin with role ORGANIZER can add ORGANIZER!")
예제 #12
0
파일: api.py 프로젝트: Rastii/wcsc_website
  def post(self):
    parser = reqparse.RequestParser()
    parser.add_argument('title', type=str, required=True)
    parser.add_argument('content', type=str, required=True)
    parser.add_argument('labels', type=int, required=False, action="append")
    args = parser.parse_args()
    labels = []
    try:
      #Checks for duplicate
      if db_session.query(Blog).filter(Blog.title.ilike("%"+args.title+"%"))\
                   .first() is not None:
        return self.response.warning(\
          self.response.WARNINGS['duplicate'](args.title), None)
      #Check of the labels exist
      for label in args.labels:
        label_instance = db_session.query(BlogLabel).get(label)
        if label_instance is None:
          return self.response.warning("Label with id %d does not exist." % label, 
                                       None)
        labels.append(label_instance)

      blog = Blog(title=args.title,
                  author_id=1, #TODO: Change this to user's current session
                  content=args.content)
      #Now append the labels to the blog
      for label_instance in labels:
        blog.labels.append(label_instance) 
      db_session.add(blog)
      db_session.commit()
      return self.response.success(None)
    except exc.SQLAlchemyError:
      return self.response.error('Error creating new blog', 
                                          self.response.ERROR_SQLALCHEMY)
예제 #13
0
 def mutate(self, info, data, id_from_token):
     a_level = GroupAccessEnum(data.access_level)
     role = RoleEnum(data.admin_role)
     new_group = Group(title=data.title,
                       about=data.about,
                       access_level=a_level,
                       date_creation=datetime.utcnow(),
                       date=data.date,
                       admin_id=id_from_token)
     try:
         db.add(new_group)
         commit_with_check(db)
     except:
         db.rollback()
     db.refresh(new_group)
     try:
         db.add(
             GroupUser(group_id=new_group.id,
                       user_id=id_from_token,
                       role_in_group=role))
         commit_with_check(db)
     except:
         db.rollback()
     return AddGroup(ok=True,
                     message="Group has been added!",
                     ID=new_group.id)
예제 #14
0
def add_example(new):

    print('New is: %s' % new)

    if db_session.query(ExampleModel.id).filter_by(id=new).scalar() is None:

        ex = ExampleModel()

        ex.id = new
        ex.field1 = 'ExampleString'

        db_session.add(ex)
        db_session.commit()

        #return url_for('app.get_example', variable=new)

        body = 'Success!'
        response = jsonify(body)
        response.status_code = 201

        return response

    else:

        body = 'That example record already exists'

        response = jsonify(body)
        response.status_code = 404

        return response
예제 #15
0
def register():
    if request.method == 'POST':
        if "" in request.form.values():
            return render_template("register.html")
        if request.form['username'] in list(User.query.values(User.name)):
            flash('Please enter a password.', 'error')
            return render_template("register.html")
        if request.form['email'] in list(User.query.values(User.email)):
            flash('Please enter a valid email.', 'error')
            return render_template("register.html")
        if request.form['password'] != request.form['passwordconfirm']:
            flash('Passwords do not match.', 'error')
            return render_template("register.html")
        # TODO: error for when they try to register when logged in already
        u = User(
            request.form['username'],
            request.form['email'],
            generate_password_hash(
                request.form['password'].strip()))
        db_session.add(u)
        db_session.commit()

        """for currency in config.get_currencies():
            addr = generate_deposit_address(currency)
            a = Address(currency, addr, u.id)
            db_session.add(a)
        db_session.commit()
        if not send_confirm_email(u.id):
            flash('An error occured during registration. Please contact the administrator.', 'danger')
            return home_page("ltc_btc")"""
        flash('Successfully registered. Please check your email and confirm your account before logging in.', 'dismissable')
        return home_page("ltc_btc")

    if request.method == 'GET':
        return render_template("register.html")
예제 #16
0
def create_model():
    form = Form(request.form)
    del form.delete

    if request.method == 'POST' and form.validate():
        new_el = Model()
        for field in form:
            if field.type == "SubmitField":
                continue

            if field.data == "":
                continue

            setattr(new_el, field.name.lower(), field.data)

        db_session.add(new_el)
        try:
            db_session.commit()
        except (sqlalchemy.exc.IntegrityError,
                sqlalchemy.orm.exc.FlushError) as e:
            flash(str(e), "danger")

        return redirect(url_for(".view_all"))

    return render_template("form_view.html", title=title, form=form)
예제 #17
0
def populate_songs():
    df = pd.read_csv('app/data/labeled_chords.csv', header = 0)
    song_ids = {}
    for index, row in df.iterrows():
        song = Song()
        if row['Echo_song_id'] in song_ids:
            continue
        else:
            song_ids[row['Echo_song_id']] = 0    
        song.song_id = row['Echo_song_id']
        song.artist = row['Local Artist']
        song.title = row['Local title']
        song.energy = row['energy']
        song.liveness = row['liveness']
        song.tempo = row['tempo']
        song.speechiness = row['speechiness']
        song.acousticness = row['acousticness']
        song.danceability = row['danceability']
        song.instrumentalness = row['instrumentalness']
        song.loudness = row['loudness']
        song.key = root_key[row['key']]
        song.mode = row['mode']
        song.valence_label = row['labeled_valence']
        song.arousal_label = row['labeled_arousal']
        session.add(song)
    session.commit()    
예제 #18
0
def oauth_callback(provider_name):
    if provider_name not in providers.keys():
        abort(404)

    provider = providers[provider_name]
    response = provider.authorized_response()

    if response is not None:
        if provider_name == 'twitter':
            access_token = response.get('oauth_token'), response.get('oauth_token_secret')
        else:
            access_token = response.get('access_token')
    else:
        access_token = None

    if access_token is None:
        flash('Access denied, please try again.')
        return redirect(url_for('auth.login'))

    username, website, github, email, bio = get_social_profile(provider, access_token)

    user = User.query.filter_by(email=email).first()
    if user is None:
        user = User(email=email, nickname=username, website=website,
                    github=github, bio=bio)
        db_session.add(user)
        db_session.commit()
        login_user(user, remember=True)
        return redirect(url_for('chat.profile'))
    login_user(user, remember=True)
    return redirect(url_for('chat.home'))
예제 #19
0
def register():
    if request.method == 'POST':
        if "" in request.form.values():
            return render_template("register.html")
        if request.form['username'] in list(User.query.values(User.name)):
            flash('Please enter a password.', 'error')
            return render_template("register.html")
        if request.form['email'] in list(User.query.values(User.email)):
            flash('Please enter a valid email.', 'error')
            return render_template("register.html")
        if request.form['password'] != request.form['passwordconfirm']:
            flash('Passwords do not match.', 'error')
            return render_template("register.html")
        # TODO: error for when they try to register when logged in already
        u = User(request.form['username'], request.form['email'],
                 generate_password_hash(request.form['password'].strip()))
        db_session.add(u)
        db_session.commit()
        """for currency in config.get_currencies():
            addr = generate_deposit_address(currency)
            a = Address(currency, addr, u.id)
            db_session.add(a)
        db_session.commit()
        if not send_confirm_email(u.id):
            flash('An error occured during registration. Please contact the administrator.', 'danger')
            return home_page("ltc_btc")"""
        flash(
            'Successfully registered. Please check your email and confirm your account before logging in.',
            'dismissable')
        return home_page("ltc_btc")

    if request.method == 'GET':
        return render_template("register.html")
예제 #20
0
def delete_users(user):
    print user
    ## Checks if the user is an admin
    if current_user.is_admin(current_user.username):
        u = User.query.filter_by(username=user).first()
        us = UserStatistics.query.filter_by(userId=u.id).first()
	
	## Checks if the user tries to delete itself
	if current_user.username == u.username:
		flash('Sorry, but you cannot delete yourself. Think about those people who love you more than their world mi amigo.')
		return redirect(url_for('Users.set_roles'))
        # loads the supervisor and deletes the user
        load_supervisor = u.supervisor
        supervisor = User.query.filter_by(username=load_supervisor).first()
        load_supervisees = supervisor.supervisee
        print "Load supervisee before split: " + str(load_supervisees)
        load_supervisees = load_supervisees.split(' ')
        print "Load supervisee after split: " + str(load_supervisees)
        load_supervisees.remove(u.username)
        supervisor.supervisee = ' '.join(load_supervisees)
        print supervisor.supervisee
        db_session.delete(u)
        db_session.add(supervisor)
        db_session.commit()
        flash('User Deleted')
        return redirect(url_for('Users.set_roles'))
    flash('USER UNAUTHORIZED')
    return redirect(url_for('Home.show_home'))
예제 #21
0
def add_recipe():
    data = request.data
    recipe_data = json.loads(data.decode("utf-8"))

    recipe = Recipe(title=recipe_data['title'],
                    instructions=recipe_data['instructions'],
                    img=recipe_data['img'],
                    type=recipe_data['type'],
                    time=recipe_data['time'],
                    people=recipe_data['people'],
                    owner=recipe_data['owner'])
    db_session.add(recipe)

    for ingredient in recipe_data['ingredients']:
        ingredient = Ingredient(item=ingredient['item'],
                                quantity=ingredient['quantity'])
        db_session.add(ingredient)
        recipe.ingredients.append(ingredient)

    try:
        db_session.commit()
    except Exception:
        db_session.rollback()

    clear_sessions()

    return return_result(data=recipe_data)
예제 #22
0
def add():
    """
    {
        "name":"Egg Burger",
        "price":10.00,
        "category":"hamburguer"
    }
    :return: {"result": "product has been created","status_code": 201}
    """
    try:
        data = request.get_json(force=True)
        if not data or not data.get("name") or not data.get("price"):
            return json_response(
                status_=StatusCodeEnum.HTTP_400_BAD_REQUEST,
                result=get_messages("PRODUCT_REQUIRED_FIELDS"),
            )
        product = Product(data)
        db_session.add(product)
        db_session.commit()
        return json_response(
            status_=StatusCodeEnum.HTTP_201_CREATED,
            result=get_messages("PRODUCT_CREATED"),
        )
    except ValueError as ex:
        db_session.rollback()
        raise ex
    finally:
        db_session.close()
예제 #23
0
 def mutate(self, info, files, item_id, id_from_token):
     item = db.query(Item).filter_by(id=item_id).first()
     if item is None:
         raise Exception("No item was found with this ID!")
     if item.owner_id != id_from_token:
         return AddPictures(ok=False, message="Access denied!")
     # TODO maybe change names for pictures?
     i = 0
     for pic in files:
         if check_format(pic):
             i += 1
             name = 'items/item_' + str(item.id) + '_' + str(i)
             if upload_file(pic, Config.bucket, name):
                 try:
                     db.add(
                         ItemPicture(item_id=item.id, path_to_picture=name))
                     commit_with_check(db)
                 except:
                     db.rollback()
             else:
                 return AddPictures(
                     ok=False, message="Pictures haven't been uploaded!")
         else:
             return AddPictures(
                 ok=False,
                 message=
                 "Only pictures (.png, .jpeg, .bmp) can be downloaded!")
     return AddPictures(ok=True, messages="Pictures have been uploaded!")
예제 #24
0
def putPointFunc(userId, point, where, why):
	#이벤트 체크 - 이벤트 당첨자(=해당 날)이면 point 2배
	if amIinEvent(userId) == True :
		point = point * 2

	insert_row = PointHistory(userId, point, where, why)
	db_session.add(insert_row)

	if where.startswith("Praise"):
		myPoint_update_result = db_session.query(PointTotal).filter_by(userId=userId)\
			.update({PointTotal.pointTotal: PointTotal.pointTotal + point, PointTotal.pointPraise: PointTotal.pointPraise + point})
	elif where.startswith("Thanks"):
		myPoint_update_result = db_session.query(PointTotal).filter_by(userId=userId)\
			.update({PointTotal.pointTotal: PointTotal.pointTotal + point, PointTotal.pointThanks: PointTotal.pointThanks + point})
	elif where.startswith("Good") :
		myPoint_update_result = db_session.query(PointTotal).filter_by(userId=userId)\
			.update({PointTotal.pointTotal: PointTotal.pointTotal + point, PointTotal.pointGood: PointTotal.pointGood + point})
	else :
		myPoint_update_result = False

	if not (myPoint_update_result > 0) : #insert when no row
		insert_row2 = PointTotal(userId, request.form['companyId'], request.form['groupId'], point, where)
		db_session.add(insert_row2)

	try:
		db_session.commit()
	except exc.IntegrityError as e:
		db_session.rollback()

	if(insert_row.id==None or (not (myPoint_update_result > 0) )): # and insert_row2.inserted_primary_key==None)):
		return False
	else:
		return { "pointId" : insert_row.id, "point" : point }
예제 #25
0
 def mutate(root, info, data, id_from_token):
     degree = DegreeEnum.NOTSTATED
     a_level = AccessLevelEnum(data.access_level)
     if data.degree is not None:
         degree = DegreeEnum(data.degree)
     new_item = Item(title=data.title,
                     owner_id=id_from_token,
                     about=data.about,
                     access_level=a_level,
                     list_id=data.list_id,
                     degree=degree,
                     status='FREE',
                     date_for_status=datetime.utcnow(),
                     date_creation=datetime.utcnow())
     try:
         db.add(new_item)
         commit_with_check(db)
     except:
         db.rollback()
     db.refresh(new_item)
     try:
         db.add(
             ItemPicture(item_id=new_item.id,
                         path_to_picture='items/item_0.png'))
         commit_with_check(db)
     except:
         db.rollback()
     return AddItem(ok=True, message="Item added!", ID=new_item.id)
def new_item():

    data = ast.literal_eval(json.dumps(request.json))
    s = Service(name=str(data['name']), description=str(data['description']), primary_support=str(data['primary_support']))
    db_session.add(s)
    db_session.commit()
    return 'Success'
예제 #27
0
    def change_email(self, token):
        s = Serializer(current_app.config['SECRET_KEY'])

        try:
            data = s.loads(token)

        except:
            traceback.print_tb(exc_traceback, limit=1, file=sys.stderr)
            return False

        if data.get('change_email') != self.id:
            return False

        new_email = data.get('new_email')

        if new_email is None:
            return False

        if self.query.filter_by(email=new_email).first() is not None:
            return False

        self.email = new_email
        db_session.add(self)
        db_session.flush()

        return True
예제 #28
0
def command_add(message_text, room_id, person_id):
    post_text = 'Command not valid... Usage = add user/asset name MAC_address phone[optional]'
    try:
        message_pieces = message_text.split(' ')
        second_word = message_pieces[1].lower()
        if second_word in ['user', 'asset', 'user/asset']:
            name = message_pieces[2]
            mac_address = message_pieces[3]
            phone = None
            if len(message_pieces) > 4:
                phone = message_pieces[3]

            try:
                user = RegisteredUser(name, mac_address, phone)
                db_session.add(user)
                db_session.commit()
                post_text = 'Item created successfully'
            except Exception as e:
                if 'duplicate key value violates unique constraint "registered_user_mac_address_key"' in str(
                        e):
                    post_text = 'MAC Address already registered. Try a different value'
                else:
                    post_text = str(e)
                db_session.rollback()
    except:
        pass

    finally:
        print('Posting on Spark... {}'.format(post_text))
        write_to_spark(room_id, None, None, post_text, None, None)

    return post_text
예제 #29
0
def add_location():
  error = None
  location_id = None
  tempList = []

  if request.method == 'POST':
    name = request.form['name']
    code = request.form['code']
    body = request.form['body']

    if 'cancel' in request.form:
      return redirect(url_for('locations.index'))

    if len(name) < 1:
      flash(u'Error: you have to enter a name')
      return render_template('locations/new.html')
    elif not int(code):
      flash(u'Error: location number required')
      return render_template('locations/new.html')
    else:
      newloc = Locations(name, code, body)
      db_session.add(newloc)
      db_session.commit()
      flash(u'Your location was added')
      overzicht = Locations.query.all()
      number = Locations.query.count()
      return render_template('locations/location.html',
                             location_list=overzicht,
                             location_count=number)

  if request.method == 'GET':
    flash(u'Please fill in all fields.')
    return render_template('locations/new.html')
예제 #30
0
	def user_init_func(row):

		if len(row['name'])==0: return None

		group_row = db_session.query(Group.groupId).filter(Group.companyId==companyId).filter(Group.name==row['groupName']).first()
		if group_row:
			groupId = group_row[0]
		elif len(row['groupName']) > 0 :
			newGroup = Group(companyId, row['groupName'])
			db_session.add(newGroup)
			try:
				db_session.commit()
			except exc.IntegrityError as e:
				db_session.rollback()

			if(newGroup.groupId==None):
				return None
			else:
				groupId = newGroup.groupId
		else :
			groupId = None

		# companyId, jobClass, groupId, email, accessKey, name, gender, birth, jobType, workYear, workMonth, jobTitle, jobTitleNo
		u = User(companyId, jobClass, groupId, row['email'], row['accessKey'], row['name'], row['gender'], row['birth'], row['jobType'], row['workYear'], row['workMonth'], row['jobTitle'], row['jobTitleNo'])
		return u
예제 #31
0
def updateGroup():

	groupId = request.form.get('groupId')

	if groupId :
		group = Group.query.filter_by(groupId=groupId).first()
		if group :
			group.name = request.form['name']
			try:
				db_session.commit()
				result = { "code" : 200, "msg" : "Success" }	
			except exc.IntegrityError as err:
				result = { "code" : 301, "msg" : "IntegrityError" }	
		else :
			result = { "code" : 300, "msg" : "No such group" }
	else : # new group
		companyId = session['companyId']
		if not companyId:
			return jsonify({"code": 405, "result": "no company id"})
		elif request.form.get("name"):
			newGroup = Group(companyId, request.form.get("name"))
			db_session.add(newGroup)
			try:
				db_session.commit()
			except exc.IntegrityError as e:
				db_session.rollback()

			if(newGroup.groupId==None):
				result = { "code": 400, "result": "DB Error" }
			else:
				result = { "code": 200, "result": "Success", "groupId": newGroup.groupId }
		else :
			result = { "code": 302, "result": "No group name" }

	return jsonify(result)
예제 #32
0
 def change_active_role(self, user, role):
     r = Role.query.filter_by(name=role).first()
     u = User.query.filter_by(username=user).first()
     u.active_role = r.name
     if not u.active_role:
         u.active_role = ''
     db_session.add(u)
     db_session.commit()
예제 #33
0
def upload():
    form = UploadForm()
    if request.method == 'POST' and form.validate():
        g.user.avatar = form.uri.data
        db_session.add(g.user.avatar)
        db_session.commit()
        return redirect(url_for("home", username=g.user.username))
    return render_template("upload.html", form=form, user=g.user)
예제 #34
0
def seer():
	u('Seer','super','SuperAdmin','*****@*****.**','seer','seer')
	user = User.query.filter_by(username='******').first()
	r = Role.query.filter_by(name='Administrator').first()
	user.roles.append(r)
	user.is_supervisor = True
	db_session.add(user)
	db_session.commit()
예제 #35
0
def add_to_db(object):
    try:
        db_session.add(object)
        db_session.flush()
        return True
    except sqlalchemy.exc.IntegrityError as err:
        print "IntegrityError"
        return False
def post():
    if request.method == 'POST':
        a = Activity(request.form['title'], request.form['description'])
        db_session.add(a)
        db_session.commit()
        return redirect(url_for('.detail', id=a.id))
    else:
        return render_template('activity/post.html')
예제 #37
0
 def mutate(self, info, username, email):
     ifUser = User.query.filter_by(username=username).first()
     if ifUser is not None:
         raise Exception('user exists!')
     user = User(username=username, email=email)
     db_session.add(user)
     db_session.commit()
     return AddUser(user=user)
예제 #38
0
 def mutate(self, info, title, description, year, username):
     user = User.query.filter_by(username=username).first()
     book = Book(title=title, description=description, year=year)
     if user is not None:
         book.author_id = user.id
     db_session.add(book)
     db_session.commit()
     return AddBook(book=book)
예제 #39
0
def addSpelling(item, spelling):
    itemSpelling = ItemSpelling.query.filter(and_(ItemSpelling.item == item, ItemSpelling.spelling == spelling)).first()
    if itemSpelling == None:
        db_session.add(ItemSpelling(item, spelling))
        db_session.commit()
        itemSpelling = ItemSpelling.query.filter(and_(ItemSpelling.item == item, ItemSpelling.spelling == spelling)).first()
    itemSpelling.occurrences += 1
    db_session.commit()
예제 #40
0
def add_all_episodes():

    for ep in all_episodes(episodes):
        t = titles.loc[titles['tconst'] == ep].to_dict('records')[0]
        e = episodes.loc[episodes['tconst'] == ep].to_dict('records')[0]
        r = ratings.loc[ratings['tconst'] == ep].to_dict('records')
        db_session.add(episode_obj(ep, t, e, r))
        db_session.commit()
    db_session.close()
예제 #41
0
def init_admin_perms():
	r = Role.query.filter_by(name='Administrator').first()
	perms = Permission.query.all()
	
	for i in perms:
		r.permissions.append(i)

	db_session.add(r)
	db_session.commit()
예제 #42
0
파일: views.py 프로젝트: faylau/microblog
def before_request():
    if 'user' in session:
        g.user = pickle.loads(session['user'])
        g.user.last_seen = datetime.now()
        from app.database import db_session
        db_session.add(g.user)
        db_session.commit()
    else:
        g.user = None
예제 #43
0
def sign_up():
    content = request.get_json()
    print(content)
    db_session.add(Company(content['email'], content['companyName'], pbkdf2_sha256.hash(content['password']),
                           content['countryId'], content['country']))
    db_session.commit()
    company = Company.query.filter_by(email=content['email']).first()
    add_user(content['email'], content['password'], company.id, user_type="Owner")
    return "SUCCESS", status.HTTP_202_ACCEPTED
예제 #44
0
def add_service():
    form = ServiceForm(request.form)
    if form.validate_on_submit():
        service = Service(form.service_title.data)
        db_session.add(service)
        db_session.commit()
        flash('Thanks for registering')
        return redirect(url_for('settings'))
    return redirect(url_for('settings'))
예제 #45
0
파일: views.py 프로젝트: vitan12/pyg2019
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User('Joff', 'joff69', '*****@*****.**', 'f**k you')
        db.add(user)
        db.commit()
        user = User.query.filter_by(username=form.username.data).first()
        print(user)
    return render_template('login.html', title='Sign In', form=form)
예제 #46
0
def add_client():
    form = ClientForm(request.form)
    if form.validate_on_submit():
        client = Client(form.name.data, form.adress.data)
        db_session.add(client)
        db_session.commit()
        flash('Thanks for registering')
        return redirect(url_for('settings'))
    return redirect(url_for('settings'))
예제 #47
0
def confirm_offsetDays(user):
	u = User.query.filter_by(username=user).first()
	us = UserStatistics.query.filter_by(userId=u.id).first()
	us.offset = int(us.proposed_offset) + int(us.offset)
	us.proposed_offset = 0
	db_session.add(us)
	db_session.commit()
	flash('Number of offset days confirmed.')
	return redirect(url_for('.approval_of_leaves'))
예제 #48
0
def replyGoodPost():

	# 일일한도 체크
	# todayCount = myTodayCounts(request.form['userId'], "GoodReply");
	# if todayCount["Reply"] >= 10 :
		# return jsonify({ "code": 314, "result": "Limit today's reply good thing" })

	reply = GoodReply(request.form['postId'], request.form['userId'], request.form['text'])
	db_session.add(reply)
	try:
		db_session.commit()
	except exc.IntegrityError as e:
		db_session.rollback()

	if(reply.replyId==None):
		result = { "code": 400, "result": "DB Error" }
	else:
		result = { "code": 200, "result": "Success", "replyId": reply.replyId }

		# 대댓글 : 부모댓글아이디와 순서값 업데이트
		if request.form.get("parentRId") : reply.parentRId = request.form.get("parentRId")
		if request.form.get("parentRuserId") : reply.parentRuserId = request.form.get("parentRuserId")
		if request.form.get("rootRId") : reply.rootRId = request.form.get("rootRId")
		else : reply.rootRId = reply.replyId

		try:
			db_session.commit()
		except exc.IntegrityError as e:
			db_session.rollback()

		if request.form['userId']!=request.form['pUserId'] : #내가 글쓴이 아닌 경우에만.
		
			if request.form.get("replyBefore")==None or request.form.get("replyBefore")!='true' : #댓글 포인트는 최초 1회만 받을 수 있음.
				
				#하루 최대 500점(게시물10개)까지만 가능하게.
				todayDate = datetime.today().strftime("%Y-%m-%d")
				today_reply_point_cnt = db_session.query\
											.filter(PointHistory.userId==request.form['userId'])\
											.filter(PointHistory.where=='GoodReply')\
											.filter(PointHistory.rdate>todayDate)\
											.with_entities(func.count()).first()[0]
				if today_reply_point_cnt < 10:
					# 포인트 적립
					point_result = putPointFunc(request.form['userId'], 50, "GoodReply", reply.replyId)
					if point_result!=False :
						result["pointId"] = point_result["pointId"]
						result["point"] = point_result["point"]

				# 글쓴이 적립
				putPointFunc(request.form['pUserId'], 10, "GoodReplyRcv", reply.replyId)

			# 푸쉬알림.
			push_result = sendPush(request.form['pUserId'], 4, "작성한 게시물에 댓글이 등록 되었습니다.")
			result["push"] = push_result

	return jsonify(result)
예제 #49
0
파일: views.py 프로젝트: zhaogp/myblog
def register():
	form = RegistrationForm()
	if form.validate_on_submit():
		user = User(username=form.username.data,
					password=form.password.data)
		db_session.add(user)
		db_session.commit()
		flash('you can now login')
		return redirect(url_for('auth.login'))
	return render_template('auth/register.html', form=form)	
예제 #50
0
def populate_words():
    with open('app/data/words.dat') as f:
        for line in f:
            words = re.compile(',').split(line.strip())
            for i, w in enumerate(words):
                word = Word()
                word.id = i + 1
                word.word = w
                session.add(word)
    session.commit()
예제 #51
0
def register():
    form = RegistrationForm(request.form)
    if request.method == 'POST' and form.validate():
        todo_list = Todo(form.todo.data, form.check.data)
        db_session.add(todo_list)
        db_session.commit()
        flash('Thanks for registering')
        return redirect(url_for('register'))
    todos = db_session.query(Todo).all()
    return render_template('show.html', form=form, todos=todos)
예제 #52
0
def updateUser():

	userId = request.form.get('userId')

	if userId :
		user = User.query.filter_by(userId=userId).first()
		if user :
			user.email = request.form['email']
			user.name = request.form['name']
			user.groupId = request.form.get('groupId')
			user.jobClass = request.form.get('jobClass')
			if request.form.get('birthYear') and request.form.get('birthMonth'):
				user.birth = date( int(request.form['birthYear']), int(request.form['birthMonth']), 1 )
			user.jobType = request.form.get('jobType')
			user.workYear = request.form.get('workYear')
			user.workMonth = request.form.get('workMonth')
			user.jobTitle = request.form.get('jobTitle')
			user.jobTitleNo = request.form.get('jobTitleNo')
			try:
				db_session.commit()
				result = { "code" : 200, "msg" : "Success" }	
			except exc.IntegrityError as err:
				result = { "code" : 301, "msg" : "IntegrityError" }	
		else :
			result = { "code" : 300, "msg" : "No such user" }
	else : # new user
		companyId = session['companyId']
		if not companyId:
			return jsonify({"code": 405, "result": "no company id"})
		elif request.form.get("email"):
			userDict = { key: request.form.get(key) for key in ["email","groupId","name","jobClass","jobType","workYear","workMonth","jobTitle","jobTitleNo"] }
			userDict.update({"companyId":companyId})
			newUser = User(**userDict)

			accessKey = ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(8))#ascii_letters / ascii_uppercase
			newUser.accessKey = accessKey
			if request.form.get('birthYear') and request.form.get('birthMonth'):
				birth = date( int(request.form['birthYear']), int(request.form['birthMonth']), 1 )
				newUser.birth = birth

			db_session.add(newUser)
			try:
				db_session.commit()
			except exc.IntegrityError as e:
				db_session.rollback()

			if(newUser.userId==None):
				result = { "code": 400, "result": "DB Error" }
			else:
				result = { "code": 200, "result": "Success", "userId": newUser.userId, "accessKey": newUser.accessKey }
		else :
			result = { "code": 302, "result": "No user email" }

	return jsonify(result)
예제 #53
0
def call_order(order):
    try:
        order.is_called = True
        db_session.add(order)
        db_session.commit()
        message = get_messages("CALL_ORDER_MESSAGE").format(order.id)
        make_conversion(message)
    except ValueError as ex:
        print(ex)
        db_session.rollback()
    finally:
        db_session.close()
예제 #54
0
def addSpelling(item, spelling):
    itemSpelling = ItemSpelling.query.filter(
        and_(ItemSpelling.item == item,
             ItemSpelling.spelling == spelling)).first()
    if itemSpelling == None:
        db_session.add(ItemSpelling(item, spelling))
        db_session.commit()
        itemSpelling = ItemSpelling.query.filter(
            and_(ItemSpelling.item == item,
                 ItemSpelling.spelling == spelling)).first()
    itemSpelling.occurrences += 1
    db_session.commit()
예제 #55
0
def engagement_trigger_user_add():
    output = {
        'error': True,
        'error_message': 'Unknown error',
        'message': None,
    }
    if request.json:
        request_json = request.json
        registered_user_id = request_json['registered_user_id']
        zone_id = request_json['zone']
        event = request_json['event']

        triggers_created = 0
        post_on_spark = 'spark_checkbox' in request_json
        if post_on_spark:
            spark_target = request_json['spark_target']
            spark_value = request_json['spark_value']
            if spark_target and spark_value:
                spark_trigger = EngagementTrigger('spark', spark_target, spark_value, event, zone_id, registered_user_id, extras=None)
                db_session.add(spark_trigger)
                triggers_created += 1

        post_on_tropo = 'tropo_checkbox' in request_json
        if post_on_tropo:
            tropo_target = request_json['tropo_target']
            tropo_platform = request_json['tropo_platform']
            tropo_value = request_json['tropo_value']
            if tropo_target and tropo_platform and tropo_value:
                tropo_trigger = EngagementTrigger('tropo', tropo_target, tropo_value, event, zone_id, registered_user_id, extras=tropo_platform)
                db_session.add(tropo_trigger)
                triggers_created += 1

        try:
            db_session.commit()
            output = {
                'error': False,
                'error_message': None,
                'message': "{} trigger(s) created".format(triggers_created)
            }
        except:
            output = {
                'error': True,
                'error_message': 'Error on trigger creation.',
                'message': None,
            }
            traceback.print_exc()
    else:
        output = {
            'error': True,
            'error_message': 'JSON data not provided on request',
            'message': None,
        }
    return Response(json.dumps(output), mimetype='application/json')
예제 #56
0
파일: views.py 프로젝트: roxel/planner
def add_task():
    form = TaskForm(request.form)
    if request.method == "POST" and form.validate():
        task = Task(name=form.name.data,
                    date=form.date.data,
                    priority=form.priority.data)
        db_session.add(task)
        db_session.commit()
        return redirect(url_for('planner.show_index'))
    else:
        return render_template('planner/form.html',
                               form=form,
                               submit_string="Add")
예제 #57
0
파일: controllers.py 프로젝트: zzsza/TIL
def add(userId):
    if request.method == 'POST':
        if (session['logged_in']):
            # app.logger.debug(request.form['contents'])
            # app.logger.debug(request.form['userId'])
            post = Post(request.form['contents'], userId, session['id'])
            db_session.add(post)
            db_session.commit()
            return redirect("/profile/" + str(userId))
        else:
            return '로그인해주세요'
    else:
        return '잘못된 접근'
예제 #58
0
def add_country():
    # mount country object
    posted_country = CountrySchema(only=('name',
                                         'capital')).load(request.get_json())
    country = Country(**posted_country.data)

    # persist country
    db_session.add(country)
    db_session.commit()

    # return created country
    new_country = CountrySchema().dump(country).data
    return jsonify(new_country), 201
예제 #59
0
def close():
    """
    {
        "products":[{"id":1,"quantity":2},{"id":2,"quantity":3},{"id":3,"quantity":4}]
    }
    :return: {"result": "Order 1 closed.","status_code": 201}
    """
    json_data = request.get_json(force=True)
    if not json_data:
        return json_response(status_=StatusCodeEnum.HTTP_400_BAD_REQUEST)
    try:
        order = Order(None)
        db_session.add(order)
        db_session.commit()
        if not order:
            return json_response(
                status_=StatusCodeEnum.HTTP_404_NOT_FOUND,
                result=get_messages("ORDER_NOT_FOUND"),
            )

        products_order = ProductsOrderSchema().dump(json_data)
        product_ids = list(map(lambda p: p.get("id"), products_order.get("products")))
        products = Product.query.filter(Product.id.in_(product_ids))
        if not products:
            return json_response(
                status_=StatusCodeEnum.HTTP_404_NOT_FOUND,
                result=get_messages("PRODUCT_NOT_FOUND"),
            )
        if order.dt_closing:
            return json_response(
                status_=StatusCodeEnum.HTTP_400_BAD_REQUEST,
                result=get_messages("ORDER_HAS_CLOSED").format(order.id),
            )
        if order.is_sentent:
            return json_response(
                status_=StatusCodeEnum.HTTP_400_BAD_REQUEST,
                result=get_messages("ORDER_HAS_SENTENT").format(order.id),
            )
        calc_order(products_order.get("products"), order, products)
        *_, money_ext_brl = money_format(order.price)
        return json_response(
            status_=StatusCodeEnum.HTTP_201_CREATED,
            result=get_messages("CLOSING_ORDER_MESSAGE_POPUP").format(
                order.id, money_ext_brl, order.quantity
            ),
        )
    except ValueError as ex:
        db_session.rollback()
        raise ex
    finally:
        db_session.close()
예제 #60
0
 def test_can_save_tasks(self):
     response = self.client.get("/planner/")
     assert "no tasks to show" in str(response.data)
     task = Task(name="task1", priority=0, done=False, date=datetime.utcnow().date())
     db_session.add(task)
     db_session.commit()
     assert task in db_session
     response = self.client.get("/planner/")
     assert "no tasks to show" not in str(response.data)
     task = Task.query.filter(Task.name=="task1").first()
     db_session.delete(task)
     db_session.commit()
     response = self.client.get("/planner/")
     assert "no tasks to show" in str(response.data)