Example #1
0
 def resolve_group(parent, info, id_from_token):
     group = db.query(GroupModel).filter_by(id=parent.group_id).first()
     group_user = db.query(GroupUserModel).filter_by(group_id=parent.group_id).all()
     if id_from_token in group_user.user_id or group.access_level == GroupAccessEnum.OPEN:
         return group
     else:
         return []
Example #2
0
def changeAccountPW():
	accountId = request.form['accountId']
	befPW = request.form['befPW']
	newPW = request.form['newPW']
	
	account_row = db_session.query(Account).filter_by(accountId=accountId).filter_by(isValid=1)\
					.with_entities(Account, func.password(befPW), func.password(newPW)).first()

	account = None
	if account_row:
		account, pw, nPW = account_row

	result = dict()
	if(account):
		print pw, account.password, nPW
		if len(befPW)>0 and pw != account.password :
			return jsonify({ "code": 302, "result": "Wrong password" })

		update_result = db_session.query(Account).filter_by(accountId=accountId)\
						.filter(Account.isValid>0).update({'password': nPW})
		try:
			db_session.commit()
		except exc.IntegrityError as e:
			db_session.rollback()
			return jsonify({ "code": 400, "result": "DB Error" })

		if(update_result==0):
			result = { "code": 401, "result": "No affected rows" }
		else:
			result = { "code": 200, "result": "Success" }	
	else :
		result["code"] = 301
		result["result"] = "No Such User"

	return jsonify(result)
Example #3
0
  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)
Example #4
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!")
Example #5
0
def getTopUserList():

	companyId = request.form.get("companyId") and request.form.get("companyId") or session.get("companyId")
	groupId = request.form.get("groupId")

	condFilter = [1==1]
	if companyId:
		condFilter.append(PointTotal.companyId==companyId)
	else :
		return jsonify({"code":400, "result":"no company id"})
	
	if groupId:
		condFilter.append(PointTotal.groupId==groupId)

	cnt = db_session.query(func.count())\
				.filter(*condFilter)\
				.first()[0]
	halfCnt = math.ceil(cnt * 0.5)

	result_rows = db_session.query(PointTotal, User.name)\
			.join(User, PointTotal.userId==User.userId)\
			.filter(*condFilter)\
			.order_by(PointTotal.pointTotal.desc()).limit(halfCnt)
	
	result = { "code":200, "entries": list() }
	rank = 1
	for row, name  in result_rows :
		rowJSON = row.tojson()
		rowJSON["name"] = name
		rowJSON["rank"] = rank
		result["entries"].append(rowJSON)
		rank += 1

	return jsonify(result)
Example #6
0
    async def resolve_search(parent, info, search_text, id_from_token):
        string_list = search_text.split(" ")
        items = list()
        wishlists = list()
        users = list()
        for i in string_list:
            temp = db.query(UserDB).filter_by(nickname=i).first()
            if temp is not None:
                users.append(temp)
            temp = db.query(UserDB).filter_by(user_name=i).first()
            if temp is not None:
                users.append(temp)
            temp = db.query(UserDB).filter_by(surname=i).first()
            if temp is not None:
                users.append(temp)

            temp = db.query(WishlistDB).filter_by(title=i,
                                                  access_level='ALL').all()
            if len(temp) != 0:
                for j in temp:
                    items.append(j)
            temp = db.query(ItemDB).filter_by(title=i,
                                              access_level='ALL').all()
            if len(temp) != 0:
                for j in temp:
                    items.append(j)
        return items + wishlists + users
Example #7
0
def index():
    """
	Handles requests to the main page of the website

	This function handles all of the requests to the default page it takes 
	no parameters, but relies on the request.form global for the flask
	session to populate the indicators for the selected category

	:returns: HTML file representing the index page
	"""

    # the list of selectable indicators
    indicators = db_session.query(IndCons.indicator, IndCons.hexid).all()
    # sort the list of indicators alphabetically
    # Get a list of all of the geography/year combos in the db
    db_geo = db_session.query(Estimates.geography, Estimates.year).distinct()
    # Create a dict to store each geo and the years available for that geo
    geos = {}
    # place the years into different geographies
    for g in db_geo:
        if g.geography in geos.keys():
            geos[g.geography].append(g.year)
        else:
            geos[g.geography] = [g.year]

    # Sort the lists of years before displaying them
    for g in geos.keys():
        geos[g].sort()

    return render_template("index.html", indicators=indicators, geoyears=geos)
Example #8
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 }
Example #9
0
 def mutate(self, info, 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.giver_id is not None:
         return SetGiverId(ok=False,
                           message="This item has already reserved!")
     if item.status == StatusEnum.PERFORMED:
         raise Exception("This item is already performed!")
     if item.status == StatusEnum.RESERVED:
         if item.giver_id == id_from_token:
             # cancel reservation by giver_id user
             item.giver_id = None
             commit_with_check(db)
             user = db.query(User).filter_by(id=item.owner_id).first()
             return SetGiverId(ok=True,
                               message="Reserving of item is canceled!!",
                               user_=user)
         else:
             raise Exception("This item is already reserved!")
     item.giver_id = id_from_token
     item.status = StatusEnum.RESERVED
     commit_with_check(db)
     user = db.query(User).filter_by(id=item.owner_id).first()
     return SetGiverId(ok=True, message="Item was reserved!!", user_=user)
Example #10
0
 def get_rc_children_meta(parent_id):
     rc = (db_session.query(ResourceCertificate).filter(
         ResourceCertificate.parent_id == parent_id).all())
     roas = db_session.query(Roa).filter(Roa.parent_id == parent_id).all()
     f = {"parent": parent_id, "data": []}
     for c in rc:
         c = c.asdict()
         d = {
             "id": c["id"],
             "value": c["certificate_name"],
             "webix_kids": c["has_kids"],
             "mft_name": c["manifest"],
             "crl_name": c["crl"],
             "icon": c["validation_status"].lower(),
         }
         f["data"].append(d)
     for roa in roas:
         roa = roa.asdict()
         d = {
             "id": roa["id"],
             "value": roa["roa_name"],
             "webix_kids": False,
             "icon": roa["validation_status"].lower(),
         }
         f["data"].append(d)
     return jsonify(f)
Example #11
0
def downloadSurvey():
	if not session.get("companyId") and session.get("level")==2:
		db_result = db_session.query(User, Answer)\
						.join(Answer, Answer.userId==User.userId)\
						.all()
	elif session.get("companyId"):
		db_result = db_session.query(User, Answer)\
						.join(Answer, Answer.userId==User.userId)\
						.filter(User.companyId==session["companyId"])\
						.all()
		# query_sets = Answer.query.join.limit(5).all()
		# column_names = ['answerId']
		# return excel.make_response_from_query_sets(query_sets, column_names, "xls")		
	else:
		abort(401)

	records = list()
	userKeys = User.__table__.columns.keys()
	answerKeys = Answer.__table__.columns.keys()
	for row1, row2 in db_result:
		od = OrderedDict()

		rowJSON1 = row1.tojson()
		for k in userKeys:
			od[k] = rowJSON1[k]

		rowJSON2 = row2.tojson()
		for k in answerKeys:
			od[k] = rowJSON2[k]	

		records.append(od)

	return excel.make_response_from_records(records, "xls") #여기서 컬럼순서가 망가진다...
Example #12
0
 def get(self):
     amount = current_app.config['CATCHAT_MESSAGE_PER_PAGE']
     messages = db_session.query(Message).order_by(
         Message.timestamp.asc())[-amount:]
     user_amount = db_session.query(User).count()
     return render_template('chat/home.html',
                            messages=messages,
                            user_amount=user_amount)
Example #13
0
 def resolve_lists(parent, info, id_from_token):
     results = db.query(GroupListModel).filter_by(group_id=parent.id).all()
     if parent.access_level == GroupAccessEnum.OPEN:
         return results
     user = db.query(GroupUserModel).filter_by(user_id=id_from_token, group_id=parent.id).first()
     if parent.access_level == GroupAccessEnum.CLOSE and user is not None:
         return results
     return []
Example #14
0
 def resolve_items(parent, info, id_from_token):
     if parent.access_level == AccessLevelEnum.ALL:
         return db.query(ItemModel).filter_by(list_id=parent.id).all()
     if parent.access_level == AccessLevelEnum.NOBODY and parent.user_id == id_from_token:
         return db.query(ItemModel).filter_by(list_id=parent.id).all()
     if parent.access_level == AccessLevelEnum.FRIENDS and db.query(FriendShipModel).filter_by(user_id_1=parent.user_id,
                                                                          user_id_2=id_from_token).first():
         return db.query(ItemModel).filter_by(list_id=parent.id, access_level=AccessLevelEnum.FRIENDS).all()
     return []
Example #15
0
 async def resolve_group(parent, info, group_id, id_from_token):
     group = db.query(GroupDB).filter_by(id=group_id).first()
     if group.access_level == GroupAccessEnum.OPEN:
         return group
     user_group = db.query(GroupUserDB).filter_by(
         user_id=id_from_token, group_id=group_id).first()
     if group.access_level == GroupAccessEnum.CLOSE and user_group is not None:
         return group
     raise Exception("Access denied!")
Example #16
0
def listGoodPost(one=False):
	userId = request.form['userId']
	companyId = request.form['companyId']
	groupId = request.form['groupId']
	listType = request.form.get("listType")
	page = request.form.get("page")
	if page==None: page = 1
	else: page = int(page)
	pageCnt = 10

	condFilter = [1==1]
	if listType=='my':
		condFilter.append(GoodPost.userId==userId)
	elif one==True:
		pageCnt = 1
		if request.form.get('postId') :
			condFilter.append(GoodPost.postId==request.form.get('postId'))

	likeCnt_query = db_session.query(GoodLike.postId, func.count().label('likeCnt') ).group_by(GoodLike.postId).subquery('likeCnt_query')
	replyCnt_query = db_session.query(GoodReply.postId, func.count().label('replyCnt') ).filter_by(isValid=1).group_by(GoodReply.postId).subquery('replyCnt_query')

	result_rows = db_session.query( GoodPost, User.name, User.thumbURL, User.jobTitle, Group.name, func.COALESCE(likeCnt_query.c.likeCnt,0), func.COALESCE(replyCnt_query.c.replyCnt,0) )\
					.join(User, GoodPost.userId==User.userId)\
					.join(Group, GoodPost.groupId==Group.groupId)\
					.outerjoin(likeCnt_query, GoodPost.postId==likeCnt_query.c.postId)\
					.outerjoin(replyCnt_query, GoodPost.postId==replyCnt_query.c.postId)\
					.filter(GoodPost.isValid==1).filter(GoodPost.companyId==companyId)\
					.filter(*condFilter)\
					.group_by(GoodPost.postId)\
					.order_by(GoodPost.postId.desc())[ (page-1)*pageCnt : page*pageCnt ]
					#.filter_by(groupId=groupId)
	
	result = { "code": 200, "posts": list(), "page": page }
	for postRow, userName, thumbURL, jobTitle, groupName, likeCnt, replyCnt in result_rows :
		rdateStr = postRow.rdate.strftime('%y/%m/%d %H:%I')
		rowJSON = postRow.tojson()
		rowJSON["rdate"] = rdateStr

		if postRow.isHidden==1 :
			rowJSON["userName"] = "******"
			rowJSON["thumbURL"] = ""
			rowJSON["jobTitle"] = "○○"
			rowJSON["groupName"] = "○○○○○"
		else :
			rowJSON["userName"] = userName
			rowJSON["thumbURL"] = thumbURL
			rowJSON["jobTitle"] = jobTitle
			rowJSON["groupName"] = groupName
		
		rowJSON["likeCnt"] = likeCnt
		rowJSON["replyCnt"] = replyCnt #cause of doubled count problem
		result["posts"].append(rowJSON)

	if one==True:
		return result["posts"] and result["posts"][0] or None
 	return jsonify(result)
Example #17
0
def get_device_location(mac_address, use_asynchronous_data=False):
    items = get_devices_and_users(mac_address=mac_address)
    registered_users = items['registered_users']
    unknown_devices = items['unknown_devices']
    if len(registered_users) == len(unknown_devices) == 0:
        try:
            location_api_extractor = get_location_api_extractor()
            if location_api_extractor:
                info = location_api_extractor.get_client_information(
                    mac_address)

                if info:
                    item = {}
                    location_info = None

                    if location_api_extractor.deployment_type == 'On-premises':
                        if 'mapHierarchyString' in info['mapInfo']:
                            hierarchy = info['mapInfo']['mapHierarchyString']
                            coord_x = info['mapCoordinate']['x']
                            coord_y = info['mapCoordinate']['y']
                            last_modified = info['statistics'][
                                'lastLocatedTime']
                            location_info = __serialize_location_information(
                                coord_x, coord_y, hierarchy, last_modified,
                                'static')

                    elif location_api_extractor.deployment_type == 'Cloud' and location_api_extractor.demo:
                        floor_name = info['floors']
                        floor = db_session.query(Floor).filter(
                            Floor.name == floor_name).first()
                        if floor:
                            floor_hierarchy = floor.get_hierarchy()
                            x, y = __calculate_x_y_coordinates(
                                floor, info['lat'], info['lng'])

                            location_info = __serialize_location_information(
                                x, y, floor_hierarchy, info['seenString'],
                                'demo')

                    user = db_session.query(RegisteredUser).filter(
                        RegisteredUser.mac_address == mac_address).first()
                    if user:
                        item['user_info'] = __serialize_user_information(
                            user.name, user.phone, user.id)
                        registered_users.append(item)
                    else:
                        unknown_devices.append(item)
                    item['location'] = location_info
            else:
                raise Exception("No server has been setup")

        except:
            traceback.print_exc()
            pass

    return items
Example #18
0
 def resolve_groups(parent, info, id_from_token):
     group_user = db.query(GroupUserModel).filter_by(user_id=parent.id).all()
     if id_from_token == parent.id:
         return group_user
     response = list()
     for i in group_user:
         group = db.query(GroupModel).filter_by(id=i.group_id).first()
         if group.access_level == GroupAccessEnum.OPEN:
             response.append(group)
     return response
Example #19
0
def ranking():
	userId = request.form['userId']
	companyId = request.form.get("companyId")
	groupId = request.form.get("groupId")
	page = request.form.get("page")
	# if page==None: page = 1
	# else: page = int(page)
	# pageCnt = 10

	if request.form.get("rankType"):
		if request.form["rankType"]=='thanks':
			orderCol = PointTotal.pointThanks
		elif request.form["rankType"]=='priase':
			orderCol = PointTotal.pointPraise
		elif request.form["rankType"]=='good':
			orderCol = PointTotal.pointGood
		else :
			orderCol = PointTotal.pointTotal
	else :
		orderCol = PointTotal.pointTotal

	if companyId!=None:
		if groupId!=None:
			result_rows = db_session.query(PointTotal, Group.name).join(Group, PointTotal.groupId==Group.groupId)\
							.filter(PointTotal.companyId==companyId).filter(PointTotal.groupId==groupId)\
							.order_by(orderCol.desc())[0:10]
			# PointTotal.query.filter_by(companyId=companyId).filter_by(groupId=groupId).order_by(PointTotal.pointTotal.desc())[ (page-1)*pageCnt : page*pageCnt ]
		else:
			result_rows = db_session.query(PointTotal, Group.name).join(Group, PointTotal.groupId==Group.groupId)\
							.filter(PointTotal.companyId==companyId)\
							.order_by(orderCol.desc())[0:10]
							# [ (page-1)*pageCnt : page*pageCnt ]

	result = { "code": 200, "ranking": list(), "page": page, "rankType": request.form.get("rankType") }
	
	rank = 1
	for row, groupName in result_rows :
		rowJSON = row.tojson()
		rowJSON["userName"] = row.mate.name
		rowJSON["jobTitle"] = row.mate.jobTitle
		rowJSON["thumbURL"] = row.mate.thumbURL
		rowJSON["groupName"] = groupName
		rowJSON["rank"] = rank

		# if str(rowJSON["userId"]) == userId :
		# 	result.update({"myRank": rank, "myPoint": row.pointTotal, 
		# 		"myPointP": row.pointPraise, "myPointT": row.pointThanks, "myPointG": row.pointGood 
		# 		})	

		result["ranking"].append(rowJSON)
		rank = rank + 1

	# result["totalCnt"] = len(result["ranking"])

	return jsonify(result)
Example #20
0
 async def resolve_wishlist(parent, info, list_id, id_from_token):
     wishlist = db.query(WishlistDB).filter_by(id=int(list_id)).first()
     if wishlist.access_level == AccessLevelEnum.ALL:
         return wishlist
     if wishlist.access_level == AccessLevelEnum.NOBODY and wishlist.user_id == id_from_token:
         return wishlist
     if wishlist.access_level == AccessLevelEnum.FRIENDS and db.query(
             FSDB).filter_by(user_id_1=wishlist.user_id,
                             user_id_2=id_from_token).first():
         return wishlist
     raise Exception("Access denied!")
Example #21
0
 async def resolve_item(parent, info, item_id, id_from_token):
     item = db.query(ItemDB).filter_by(id=int(item_id)).first()
     if item.access_level == AccessLevelEnum.ALL:
         return item
     if item.access_level == AccessLevelEnum.NOBODY and item.owner_id == id_from_token:
         return item
     if item.access_level == AccessLevelEnum.FRIENDS and db.query(
             FSDB).filter_by(user_id_1=item.owner_id,
                             user_id_2=id_from_token).first():
         return item
     raise Exception("Access denied!")
Example #22
0
 async def resolve_index(parent, info):
     wishlists = db.query(WishlistDB) \
         .join(WishlistDB.user_owner) \
         .join(UserDB.friends) \
         .filter(WishlistDB.access_level == 'ALL') \
         .all()
     items = db.query(ItemDB) \
         .join(ItemDB.owner) \
         .join(UserDB.friends) \
         .filter(ItemDB.access_level == 'ALL') \
         .all()
     return items + wishlists
Example #23
0
def before_first_request():
    print("FIRST REQUEST RECEIVED")
    try:
        db_session.query(CMXServer).first()
    except ProgrammingError as e:
        if str(e).__contains__("does not exist"):
            # DB Tables have not been created
            invoke_db_migration()
        else:
            # Unknown error
            raise Exception(e)
    except Exception as e:
        traceback.print_exc()
Example #24
0
 async def resolve_news(parent, info, id_from_token):
     wishlists = db.query(WishlistDB)\
         .join(WishlistDB.user_owner)\
         .join(UserDB.friends)\
         .filter(and_(UserDB.id == id_from_token, or_((WishlistDB.access_level == 'ALL'), (WishlistDB.access_level == 'FRIENDS'))))\
         .all()
     items = db.query(ItemDB)\
         .join(ItemDB.owner)\
         .join(UserDB.friends) \
         .filter(and_(UserDB.id == id_from_token,
                      or_((ItemDB.access_level == 'ALL'), (ItemDB.access_level == 'FRIENDS'))))\
         .all()
     return items + wishlists
Example #25
0
def delete(server_id):
    output = None
    try:
        server = db_session.query(MerakiServer).filter(MerakiServer.id == server_id).first()
        if request.method == 'GET':
            output = render_template("server/meraki_server/delete.html", object=server, deployment="Cloud")
        else:
            server = db_session.query(MerakiServer).filter(MerakiServer.id == request.form["meraki_server_id"]).delete()
            output = redirect(url_for('mod_meraki_server.show'))
    except:
        traceback.print_exc()
        output = redirect(url_for('error'))
        db_session.rollback()

    return output
Example #26
0
 def mutate(self, info, list_id, items_id, id_from_token):
     wlist = db.query(Wishlist).filter_by(id=list_id).first()
     if wlist is None:
         raise Exception("No wishlist with this ID found!")
     if wlist.user_id != id_from_token:
         return AddItemsToList(ok=False, message="Access denied!")
     for item_id in items_id:
         item = db.query(Item).filter_by(id=item_id).first()
         if item.status == StatusEnum.RESERVED or \
            item.status == StatusEnum.PERFORMED or item.owner_id != id_from_token:
             continue
         item.list_id = list_id
         item.access_level = wlist.access_level
         commit_with_check(db)
     return AddItemsToList(ok=True, message="Items were added to wishlist!")
Example #27
0
def verticalization_remove(server_id):
    output = {
        'error': None,
        'error_message': None,
        'redirect_url': None,
    }
    try:
        form_json = request.json
        location_system = db_session.query(LocationSystem).filter(
            LocationSystem.id == server_id).first()
        campi = location_system.campuses
        for campus in campi:
            campus.vertical_name = None
            for building in campus.buildings:
                building.vertical_name = None
                for floor in building.floors:
                    floor.vertical_name = None
                    for zone in floor.zones:
                        zone.vertical_name = None
                        zone.max_occupation = -1
        db_session.commit()
        output['redirect_url'] = url_for('mod_cmx_server.details',
                                         server_id=server_id)
    except Exception as e:
        output['error'] = True
        output['error_message'] = str(e)
        traceback.print_exc()
        db_session.rollback()

    output = Response(json.dumps(output), mimetype='application/json')
    return output
Example #28
0
def engagement_screen_dwell_select():
    if request.method == 'GET':
        floors = db_session.query(Floor).all()
        output = render_template("engagement/screen/engagement_select.html", floors=floors)
    else:
        output = redirect(url_for('.engagement_screen_dwell_show', hierarchy=request.form['hierarchy']))
    return output
Example #29
0
def show():
    try:
        servers = db_session.query(MerakiServer).all()
        return render_template("server/meraki_server/list.html", object=servers, deployment="Cloud")
    except:
        traceback.print_exc()
        return "No response"
Example #30
0
 def mutate(self, info, to_user_id, id_from_token):
     if db.query(FS).filter_by(user_id_1=id_from_token,
                               user_id_2=to_user_id).first() is not None:
         SendFriendRequest(ok=False, message="You are already friends!")
     if db.query(FR).filter_by(user_id_from=id_from_token,
                               user_id_to=to_user_id).first() is not None:
         SendFriendRequest(
             ok=False,
             message="You have already sent friend request to this user!")
     try:
         db.add(FR(user_id_from=id_from_token, user_id_to=to_user_id))
         commit_with_check(db)
     except:
         db.rollback()
     return SendFriendRequest(ok=True,
                              message="Friend request has been sent!")
Example #31
0
def command_list(message_text, room_id, person_id):
    second_word = __replace_string_case_insensitive(message_text, 'list',
                                                    '').strip().lower()
    post_markdown = None
    post_text = None

    if second_word in ['users', 'user', 'asset', 'assets']:
        users = db_session.query(RegisteredUser).all()

        post_text = '{} items were found:'.format(len(users))
        post_markdown = "# {}\n".format(post_text)

        user_names = []
        for user in users:
            user_names.append(user.name)
            post_markdown += '{}. {} ({})\n'.format(len(user_names), user.name,
                                                    user.mac_address)

        post_text += ' {}'.format(user_names)
    elif second_word in ['device', 'devices']:

        overview = get_devices_divided_by_hierarchy()
        """

        post_text = '{} items were found:'.format(len(users))
        post_markdown = "# {}\n".format(post_text)

        user_names = []
        for user in users:
            user_names.append(user.name)
            post_markdown += '{}. {} ({})\n'.format(len(user_names), user.name, user.mac_address)

        post_text += ' {}'.format(user_names)
        """

        count = 0

        for hierarchy in overview:
            count += len(hierarchy["unknown_devices"])

        # this line below takes the first device of each hierarchy and adds to the list
        devices = [
            item["unknown_devices"][0]['mac_address'] for item in overview
        ]

        post_text = "{} unknown devices and were found. Here's a sample:".format(
            count)
        post_markdown = "# {}\n".format(post_text)

        for i in range(len(devices)):
            post_markdown += '{}. {}\n'.format(i, devices[i])

        post_text += ' {}'.format(devices)

    else:
        post_text = 'Invalid list command. Try list users/assets or list devices'
    print('Posting on Spark... {}'.format(post_text))
    write_to_spark(room_id, None, None, post_text, post_markdown, None)

    return post_text
Example #32
0
 def mutate(self, info, list_id, items_id, id_from_token):
     wlist = db.query(Wishlist).filter_by(id=list_id).first()
     if wlist is None:
         raise Exception("No wishlist with this ID found!")
     if wlist.user_id != id_from_token:
         return DeleteItemsFromList(ok=False, message="Access denied!")
     for item_id in items_id:
         item = db.query(Item).filter_by(id=item_id).first()
         item.list_id = None
         item.access_level = AccessLevelEnum.NOBODY
         commit_with_check(db)
     return DeleteItemsFromList(
         ok=True,
         message=
         "Items were deleted from wishlist and were pasted to default wishlist!"
     )
Example #33
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
Example #34
0
 def resolve_items_owner(parent, info, id_from_token):
     response = list()
     items = db.query(ItemModel).filter_by(owner_id=parent.id, list_id=None, status=StatusEnum.FREE).all()
     if len(items) == 0:
         return items
     for item in items:
         if item.access_level == AccessLevelEnum.ALL:
             response.append(item)
         if item.access_level == AccessLevelEnum.NOBODY and item.owner_id == id_from_token:
             response.append(item)
         if item.access_level == AccessLevelEnum.FRIENDS and db.query(FriendShipModel).filter_by(user_id_1=item.owner_id,
                                                                    user_id_2=id_from_token).first():
             response.append(item)
     if len(response) > 0:
         return response
     return []
Example #35
0
    def get_user(email):
        user = db_session.query(User) \
                         .select_from(User) \
                         .filter(User.email == email) \
                         .first()

        return user
Example #36
0
def confirmMsg():
	msgId = request.form['msgId']
	msgType = request.form['msgType']
	userId = request.form['userId']

	update_result = db_session.query(Message).filter_by(id=msgId).filter_by(rUserId=userId).filter_by(msgType=msgType).filter_by(isRead=0)\
					.update({'isRead': 1, 'readTime': datetime.now()})
	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):
		result = { "code": 401, "result": "No affected rows" }
	else:
		result = { "code": 200, "result": "Success" }

		# 포인트 적립
		msgTypeStr = params["msgType"]=='1' and 'PraiseRcv' or 'ThanksRcv'
		point_result = putPointFunc(request.form['userId'], 200, msgTypeStr, msgId)
		if point_result!=False :
			result["pointId"] = point_result["pointId"]
			result["point"] = point_result["point"]

	return jsonify(result)
Example #37
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!")
def get_amount_by_user(username):
    transactions = db_session.query(PaymentTransaction).filter_by(username=username).all()
    amounts = 0
    for transaction in transactions:
        amounts = amounts + int(transaction.amount)

    return str(amounts)
Example #39
0
def kill():
    if request.method == "POST":
        book_id = request.json
        book = db_session.query(Book).filter_by(id=book_id).first()
        db_session.delete(book)
        db_session.commit()
        return redirect(url_for('odminko'))
Example #40
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
Example #41
0
def sendMsgList():
	userId = request.form['userId']
	msgType = request.form['msgType']
	page = request.form.get("page")
	if page==None: page = 1
	else: page = int(page)
	pageCnt = 10

	# result_rows = Message.query.filter_by(sUserId=userId).filter_by(msgType=msgType).order_by(Message.id.desc())[ (page-1)*pageCnt : page*pageCnt ]
	result_rows = db_session.query(Message, User.name, User.thumbURL, User.jobTitle, Group.name)\
				.join(User, Message.rUserId==User.userId)\
				.join(Group, Message.groupId==Group.groupId)\
				.filter(Message.sUserId==userId).filter(Message.msgType==msgType)\
				.order_by(Message.id.desc())[ (page-1)*pageCnt : page*pageCnt ]

	result = { "code": 200, "msgs": list(), "page": page }
	for row, userName, thumbURL, jobTitle, groupName in result_rows :
		rdateStr = row.rdate.strftime('%y/%m/%d %H:%I')
		rowJSON = row.tojson()
		rowJSON["rdate"] = rdateStr

		rowJSON["userName"] = userName
		rowJSON["thumbURL"] = thumbURL
		rowJSON["jobTitle"] = jobTitle
		rowJSON["groupName"] = groupName
		result["msgs"].append(rowJSON)

	return jsonify(result)
Example #42
0
def cmsReportIndex(userKey):
	des = AESCipher('kit-works-lnp')
	try:
		decKey = urllib.unquote(userKey)
		userId = des.decrypt(userKey)
		try:
		   userId = int(userId)
		except ValueError:
		   abort(403) #not allowed
	except:
		return "Not allowed access"
	row, groupName, endDate = db_session.query(User, Group.name, Company.func_100days_edate)\
					.join(Group, Group.groupId==User.groupId)\
					.join(Company, Company.companyId==User.companyId)\
					.filter(User.userId==userId).first()
	if not row:
		abort(401)
	userData = { "userId":userId, "companyId":row.companyId, "groupId":row.groupId, "name":row.name, "jobTitle":row.jobTitle, "email":row.email, "groupName":groupName, "birth":str(row.birth)[0:7], "workYear":row.workYear, "workMonth":row.workMonth }
	userData["jobType"] = row.jobType=='reg' and '정규직' or '비정규직'
	userData["endDate"] = endDate.strftime("%Y-%m-%d")

	activities = getActivityCnts(row.companyId, userId)

	surveyPoints = getSurveyPoints(userId)

	return render_template('cms_report.html', key=userKey, user=userData, data=activities, survey=surveyPoints)
Example #43
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)
Example #44
0
def cmsLogin():
	if request.method == 'GET':
		return render_template('cmsLogin.html')
	else :
		email = request.form['email']
		pwInput = request.form['password']

		db_result = db_session.query(Account, Company.name, Company.thumbURL, func.password(pwInput))\
					.outerjoin(Company, Company.companyId==Account.companyId)\
					.filter(Account.email==email).first()
		account, companyName, companyLogo, pwInputEnc = db_result

		if account :
			if pwInputEnc==account.password :
				errMsg = None
			else :
				errMsg = "비밀번호가 맞지 않습니다."
		else :
			errMsg = "허용되지 않는 계정입니다."

		if errMsg!=None:
			return render_template('cmsLogin.html', email=email, errMsg=errMsg)
	
		session['logged_in'] = True
		session['accountId'] = account.accountId
		session['email'] = email
		session['level'] = account.level
		session['companyId'] = account.companyId
		session['companyName'] = companyName
		session['companyLogo'] = companyLogo

		if account.level==2:
			return redirect(url_for('cmsSuperIndex'))
		else:
			return redirect(url_for('cmsIndex'))
Example #45
0
def amIinEvent(userId):
	if str(userId)=='10004': return True

	todayDate = datetime.today().strftime("%Y-%m-%d")
	event_result = db_session.query(EventDouble).filter_by(userId=userId).filter_by(eventDate=todayDate).count()
	if event_result > 0 :
		return True
	return False
Example #46
0
def homeData():
	userId = request.form['userId']
	groupId = request.form['groupId']
	companyId = request.form['companyId']

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

	result = { "code" : 200 }

	# 내 포인트
	result["myPointTotal"] = None
	point_result = db_session.query(PointTotal.pointTotal).filter(PointTotal.userId==userId).first()
	if point_result!=None :
		for point in point_result:
			result["myPointTotal"] = point

	# 내 랭킹, 총 회사인원수
	if result["myPointTotal"]!=None:	
		rank_result = PointTotal.query.filter(PointTotal.companyId==companyId)\
			.with_entities( func.count(), func.count( func.IF(PointTotal.pointTotal > result["myPointTotal"], 1, None) ) )
		for totalCnt, higherCnt in rank_result:
			result["totalCnt"] = totalCnt
			result["myRank"] = higherCnt!=None and higherCnt + 1 or None

	#이벤트 체크
	result["isEvent"] = amIinEvent(userId) 

	#오늘의 행복도
	result["todayHappiness"] = todayHappiness(True)

	# 수신 메시지(타입별) 총개수
	msgRcv_result = Message.query.filter_by(rUserId=userId)\
		.with_entities( func.count( func.IF(Message.msgType==1, 1, None) ), func.count( func.IF(Message.msgType==2, 1, None) ) )
	for cnt1, cnt2 in msgRcv_result :
		result["totalMsgRcv"] = { "praise": cnt1, "thanks": cnt2 }
	# 발신 메시지(타입별) 총개수
	msgSend_result = Message.query.filter_by(sUserId=userId)\
		.with_entities( func.count( func.IF(Message.msgType==1, 1, None) ), func.count( func.IF(Message.msgType==2, 1, None) ) )
	for cnt1, cnt2 in msgSend_result :
		result["totalMsgSend"] = { "praise": cnt1, "thanks": cnt2 }

	# 오늘 수신한 메시지(타입별) 개수
	todayMsgRcv_result = Message.query.filter_by(rUserId=userId).filter(Message.rdate >= todayDate)\
		.with_entities( func.count( func.IF(Message.msgType==1, 1, None) ), func.count( func.IF(Message.msgType==2, 1, None) ) )
	for cnt1, cnt2 in todayMsgRcv_result :
		result["todayMsgRcv"] = { "praise": cnt1, "thanks": cnt2 }

	#가장 최근 좋은일 게시물
	# result["goodpost"] = listGoodPost(True)

	#좋은일 게시물 오늘 총 갯수
	result["goodpost_todayCnt"] = GoodPost.query.filter(GoodPost.isValid>0).filter(GoodPost.rdate >= todayDate).count()

	return jsonify(result)
Example #47
0
def getTopGroupList():

	companyId = request.form.get("companyId") and request.form.get("companyId") or session.get("companyId")

	cnt = db_session.query(func.count(distinct(PointTotal.groupId)))\
				.filter(PointTotal.companyId==companyId).first()[0]
	oneThirdCnt = math.ceil(cnt * 0.3)

	result_rows = db_session.query(PointTotal.companyId, PointTotal.groupId, Group.name, func.sum(PointTotal.pointTotal).label("totalPoint"), func.sum(PointTotal.pointPraise), func.sum(PointTotal.pointThanks), func.sum(PointTotal.pointGood) )\
			.join(Group, PointTotal.groupId==Group.groupId)\
			.group_by(PointTotal.groupId)\
			.filter(PointTotal.companyId==companyId)\
			.order_by("totalPoint DESC").limit(oneThirdCnt)
	
	result = { "entries": list() }
	rank = 1
	for companyId, groupId, name, pointTotal, pointPraise, pointThanks, pointGood  in result_rows :
		result["entries"].append({"rank":rank, "companyId":companyId, "groupId":groupId, "name":name, "totalPoint":int(pointTotal), "praisePoint":int(pointPraise), "thanksPoint":int(pointThanks), "goodPoint":int(pointGood) })
		rank += 1

	return jsonify(result)
Example #48
0
def cmsIndex():
	if request.args.get("id"):
		session["companyId"] = request.args["id"]
		db_result = db_session.query(Company.name, Company.thumbURL).filter(Company.companyId==request.args["id"]).first()
		name, thumbURL = db_result
		session["companyName"] = name
		session["companyLogo"] = thumbURL

	if not session.get('companyId'):
		return "Not allowed access (No Company Info)"

	return render_template('cms_partner.html', data=session)
Example #49
0
def sendMsg():
	params = dict()
	params["sUserId"] = request.form['userId']
	params["rUserId"] = request.form['rUserId']
	params["companyId"] = request.form['companyId']
	params["groupId"] = request.form['groupId']
	params["msgType"] = request.form['msgType'] # 1:칭찬, 2:감사
	params["msg"] = request.form['msg']

	#일일한도 체크
	todayCount = myTodayCounts(request.form['userId'], "Message");
	if params["msgType"]==1 and todayCount["Praise"] >= 3 :
		return jsonify({ "code": 310, "result": "Limit today's praise message" })
	elif params["msgType"]==2 and todayCount["Thanks"] >= 3 :
		return jsonify({ "code": 311, "result": "Limit today's thanks message" })

	message = Message(**params)
	db_session.add(message)
	try:
		db_session.commit()
	except exc.IntegrityError as e:
		db_session.rollback()
		return jsonify({ "code": 400, "result": "DB Error" })

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

		# 포인트 적립
		msgTypeStr = params["msgType"]=='1' and 'PraiseSend' or 'ThanksSend'
		point_result = putPointFunc(request.form['userId'], 100, msgTypeStr, message.id)
		if point_result!=False :
			result["pointId"] = point_result["pointId"]
			result["point"] = point_result["point"]

		# 상대방이 오늘 중 메시지 3번째 수신 확인 후, 그러면 푸쉬 보내기.
		today = datetime.today()
		todayDate = today.strftime("%Y-%m-%d")
		rUserTodayRcvCnt = db_session.query(Message).filter_by(rUserId=params["rUserId"]).filter_by(msgType=params["msgType"]).filter(Message.rdate > todayDate).count()
		if rUserTodayRcvCnt >= 3 :
			pushMsg = params["msgType"]=='1' and '칭찬 메시지가 왔습니다.' or '감사 메시지가 왔습니다.'
			push_result = sendPush(params["rUserId"], 11, '축하합니다! ' + pushMsg)
			result["push"] = push_result

		else : #보통 푸쉬.
			pushMsg = params["msgType"]=='1' and '칭찬 메시지가 왔습니다.' or '감사 메시지가 왔습니다.'
			push_result = sendPush(params["rUserId"], 1, pushMsg)
			result["push"] = push_result

	return jsonify(result)
Example #50
0
def pushList():
	companyId = request.form.get("companyId") and request.form.get("companyId") or session.get("companyId")
	
	result_rows = db_session.query(PushMsg)\
			.filter(PushMsg.companyId==companyId)\
			.filter(PushMsg.isValid>0)\
			.order_by(PushMsg.id.desc())
	
	result = { "entries": list() }
	for row in result_rows :
		rowJSON = row.tojson()
		rowJSON["repeatVal"] = row.repeatVal and int(row.repeatVal)
		result["entries"].append(rowJSON)
	return jsonify(result)
Example #51
0
def getSurveyPoints(userId):
	if not userId: return None

	my_result = db_session.query(Result.nth, Result.perTotal).filter(Result.userId==userId).group_by(Result.nth).order_by(Result.nth).all()
	result = {"first":0, "second":0, "zero":None}
	for nth, per in my_result:
		if nth==1:
			result["first"] = per
		elif nth==2:
			result["second"] = per
		else:
			result["zero"] = per

	return result
Example #52
0
def login():
    if request.method == "POST":
        _username = request.form["username"];
        _password = request.form["password"];

        user = db_session.query(User) \
                         .filter(User.username.like(_username)) \
                         .first()

        if user is not None and user.check_password(_password) is True:
            login_user(user)
            return redirect(url_for("landing.index"))

    return render_template("login.html", display_register_form=False)
Example #53
0
def delGoodPost():
	update_result = db_session.query(GoodPost).filter_by(postId=request.form['postId'])\
					.filter_by(userId=request.form['userId']).filter_by(isValid=1).update({'isValid': 0})
	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):
		result = { "code": 401, "result": "No affected rows" }
	else:
		result = { "code": 200, "result": "Success" }
	return jsonify(result)
Example #54
0
def uploadProfile():
	userId = request.form.get("userId")
	if userId==None :
		return jsonify({"code": 304, "result": "No user ID"})
	
	file = request.files['thumb']
	if file and allowed_file(file.filename):
		from werkzeug import secure_filename
		now = datetime.now()
		imgFilename = now.strftime("%y%m%d%H%M%S") + "_" + secure_filename(file.filename)
		# file.save( app.config['UPLOAD_FOLDER'] + '/' + imgFilename )

		from PIL import Image
		try:
			im = Image.open(file)
			
			width = 200
			imgW, imgH = im.size
			if imgW > width:
				height = int(width * (float(imgH) / float(imgW)))
				im.thumbnail((width, height), Image.ANTIALIAS)

			ext = imgFilename.rsplit('.', 1)[1]
			if ext=='jpg' or ext=='JPG': ext='JPEG'
			im.save(app.config['UPLOAD_FOLDER'] + '/' + imgFilename, ext.upper())

			thumbURL = 'http://oasis.kwig.co.kr/loadImage/' + imgFilename
			update_result = db_session.query(User).filter_by(userId=userId).update({'thumbURL': thumbURL})
			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):
				result = { "code": 401, "result": "No affected rows" }
			else:
				result = { "code": 200, "result": "Success", "imgURL": thumbURL }	

		except IOError:
			print "cannot create thumbnail"
			result = { "code": 500, "result": "File IO Error" }            

	else:
		result = { "code": 303, "result": "File Not Aloowed" }
	return jsonify(result)
Example #55
0
def editGoodPostReply():
	update_result = db_session.query(GoodReply).filter_by(replyId=request.form['replyId'])\
					.filter_by(userId=request.form['userId']).filter_by(isValid=1)\
					.update({ 'text': request.form['text'], 'rdate': datetime.now() })
	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):
		result = { "code": 401, "result": "No affected rows" }
	else:
		result = { "code": 200, "result": "Success" }

	return jsonify(result)
Example #56
0
def userList():
	companyId = request.form.get("companyId") and request.form.get("companyId") or session.get("companyId")

	result_rows = db_session.query(User, Group.name)\
			.outerjoin(Group, Group.groupId==User.groupId)\
			.filter(User.companyId==companyId)\
			.filter(User.isValid>0)\
			.order_by(User.userId.desc())
	
	result = { "entries": list() }
	for row, groupName in result_rows :
		rowJSON = row.tojson()
		rowJSON["groupName"] = groupName
		rowJSON["birthYear"] = row.birth and row.birth.year
		rowJSON["birthMonth"] = row.birth and row.birth.month
		result["entries"].append(rowJSON)
	return jsonify(result)
Example #57
0
def groupList():

	companyId = session.get('companyId')
	if not companyId:
		return jsonify({"code": 405, "result":"no company id"})

	result_rows = db_session.query(Group, func.count(User.userId))\
			.outerjoin(User, and_(Group.groupId==User.groupId, User.isValid>0) )\
			.filter(Group.companyId==companyId)\
			.group_by(Group.groupId)\
			.order_by(Group.groupId.desc())
	
	result = { "entries": list() }
	for row, userCnt in result_rows :
		rowJSON = row.tojson()
		rowJSON["userCnt"] = userCnt
		result["entries"].append(rowJSON)
	return jsonify(result)
Example #58
0
def partnerList():

	result_rows = db_session.query(Company, CompanyCategory.name, Account.email, func.count(User.userId))\
			.outerjoin(CompanyCategory, CompanyCategory.categoryId==Company.categoryId)\
			.outerjoin(Account, and_(Company.companyId==Account.companyId, Account.level==0) )\
			.outerjoin(User, and_(Company.companyId==User.companyId, User.isValid>0) )\
			.group_by(Company.companyId)\
			.filter(Company.isValid>0)\
			.order_by(Company.companyId.desc())
	
	result = { "entries": list() }
	for row, category, email, userCnt in result_rows :
		rowJSON = row.tojson()
		rowJSON["rdate"] = row.rdate.strftime("%Y-%m-%d")
		rowJSON["category"] = category
		rowJSON["admin"] = email
		rowJSON["userCnt"] = userCnt
		result["entries"].append(rowJSON)
	return jsonify(result)
Example #59
0
def companyInfo():

	companyId = session['companyId']
	if not companyId:
		return jsonify({"code": 405, "result": "no company id"})

	result_rows = db_session.query(Company, CompanyCategory.name, Account.email)\
			.outerjoin(CompanyCategory, CompanyCategory.categoryId==Company.categoryId)\
			.outerjoin(Account, and_(Company.companyId==Account.companyId, Account.level==0) )\
			.filter(Company.isValid>0).filter(Company.companyId==companyId)\
			.limit(1)
	
	result = { "entries": list() }
	for row, category, email in result_rows :
		rowJSON = row.tojson()
		rowJSON["rdate"] = row.rdate.strftime("%Y-%m-%d")
		rowJSON["category"] = category
		rowJSON["admin"] = email
		result["entries"].append(rowJSON)
	return jsonify(result)
Example #60
0
def syncProjects(username):
    url='http://www.seerlabs.com:5556/api/getProject'
    user = User.query.filter_by(username=username).first()
    payload = {'email': user.email}
    response = requests.post(url, data=payload)
    responseJson = response.json()
    print(responseJson['projects'])

    for projectName in responseJson['projects']:
        print projectName
        (ret, ), = db_session.query(exists().where(Project.project_name==projectName))
        if(ret):
             project = Project.query.filter_by(project_name=projectName).first()
             user.projects.append(project)
             print "Existing"
        else:
            project = Project(projectName)
            if(add_to_db(project)):
                user.projects.append(project)
                db_session.commit()
                print "Project added"