def room3(): tiles1 = [ Coord(7, 1), Coord(7, 2), Coord(7, 3), Coord(7, 18), Coord(6, 4), Coord(6, 1), Coord(6, 3), Coord(7, 5), Coord(8, 4), Coord(8, 2), Coord(8, 3), Coord(8, 4), Coord(8, 5), Coord(9, 2), Coord(9, 3), Coord(9, 4) ] start1 = Coord(5, 0) dimensions1 = Coord(5, 5) doors1 = [Coord(7, 5)] items1 = [Item(KEY, Coord(6, 1)), Item(KEY, Coord(7, 3))] room3 = Room(start1, dimensions1, tiles1, doors1, items1) return room3
def handle_stock_check_result(conn, stock_check_result: StockCheckResult, item: Item, main_thread_loop, stock_check_time: datetime, bot): item.item_name = stock_check_result.item_name if stock_check_result.item_name is not None and stock_check_result.item_name != "" else item.item_name item.last_stock_check = stock_check_time stock_check_result.item_name = item.item_name stock_check_result.fail_count = 0 if item.last_stock_check_result is None else item.last_stock_check_result.fail_count if not stock_check_result.is_item_available: stock_check_result.fail_count += 1 else: stock_check_result.fail_count = 0 if item.last_stock_check_result != stock_check_result: sql_item_persistence.sqlite_item_persistence.insert_price_history( conn, stock_check_result, int(item.last_stock_check.timestamp())) item.stock_status = stock_check_result.is_in_stock item.last_stock_check_result = stock_check_result sql_item_persistence.sqlite_item_persistence.upsert_item(conn, item) subscribed_users = sql_item_persistence.sqlite_item_persistence.get_subscribed_users_for_item( conn, item) for subscribed_user in subscribed_users: asyncio.run_coroutine_threadsafe( notify_valid_subscribers(subscribed_user, item, stock_check_result, bot), main_thread_loop)
def test_get_items_by_shop_and_category(self): dao = ItemsDAO(self.db) category_a = 'CategoryA' category_b = 'CategoryB' shop_a = '5f7c28c6e979c6a33a1f3f79' shop_b = '5f7c2d96e48e242b81178822' item_1 = Item('Name1', 1.0, category_a, shop_a, ProductDetails('', {}), Image('', '')) item_2 = Item('Name2', 1.0, category_a, shop_b, ProductDetails('', {}), Image('', '')) item_3 = Item('Name3', 1.0, category_b, shop_a, ProductDetails('', {}), Image('', '')) item_4 = Item('Name4', 1.0, category_b, shop_b, ProductDetails('', {}), Image('', '')) for item in [item_1, item_2, item_3, item_4]: dao.store_one(item.to_db_object()) items = self.item_handler.get_items_by_shop_and_category(None, None) self.assertEqual(len(items), 4) items = self.item_handler.get_items_by_shop_and_category( shop_a, category_a) self.assertEqual(len(items), 1) self.assertEqual(items[0]['name'], item_1.name) items = self.item_handler.get_items_by_shop_and_category(shop_b, None) self.assertEqual(len(items), 2) self.assertEqual(len([i for i in items if i['name'] == item_2.name]), 1) self.assertEqual(len([i for i in items if i['name'] == item_4.name]), 1) items = self.item_handler.get_items_by_shop_and_category( None, category_b) self.assertEqual(len([i for i in items if i['name'] == item_3.name]), 1) self.assertEqual(len([i for i in items if i['name'] == item_4.name]), 1)
def _map_item(item_id): # fetch data item = get_item(item_id) # generate map (mapped, links) = map_item(item) this_mapped = mapped[None] if list(verify_map(this_mapped)): print "Validation errors in mapping item %s: %r, continuing." % (item_id, list(verify_map(this_mapped))) # First, update this item's map Item.update_map(json.dumps(this_mapped, separators=(',', ':')), item_id) # Then, go through the links, creating items as needed with the types designated by their mapping paths for (node, destination, data_id) in links: link_type = '%'.join([str(d) for d in destination]) if node is None: node_item = item_id else: node_item = data_to_item(node) target_item = data_to_item(data_id) if target_item is None: target_item = _create_item(_link_type_to_item_type(link_type)) print "%s -> %s" % (data_id, target_item) _register_data_item(target_item, data_id, '{}') if node_item is None: node_item = _create_item('') print "%s -> %s" % (node, node_item) _register_data_item(node_item, node, '{}') ItemLink.find_or_insert(node_item, target_item, link_type) # Now that we can be assured any types set by links are already set on the items, insert the maps for other mapped nodes for data_id in mapped.keys(): if data_id is not None: verify = list(verify_map(mapped[data_id])) if verify: print "Validation errors in mapping data item %s: %r, continuing" % (data_id, verify) add_data_item(data_id, '', json.dumps(mapped[data_id]))
def deleteItemView(list_id, item_id): ''' View for deleting an item ''' # just check permissions on the item get_item_with_permission(list_id, item_id, session['user_id']) Item.delete(id=item_id) return jsonify({})
def checkItemView(list_id, item_id): ''' View for deleting an item ''' status = None message = None item, list_owner = get_item_with_permission( list_id, item_id, session['user_id'] ) if list_owner: return flask.abort(403) if item.status == 1: new_status = 0 checked_by = None else: new_status = 1 checked_by = session['user_id'] try: Item.update( {'status': new_status, 'checked_by': checked_by}, id=item.id ) status = 'ok' except Exception: status = 'error' message = 'could not update item' return jsonify( { 'status': status, 'message': message, 'update_status': new_status, } )
def update(self): mm = self.__map_manager player = mm.player game_system = mm.game_system if InputManager.isPush(Key.s): game_system.add_speed() if InputManager.isPush(Key.p) \ and player.stats.potion > 0: from task.map.use_item import UseItem self.__next_task = UseItem(self.__map_manager, Item(Item.Type.POTION)) return if InputManager.isPush(Key.b) \ and player.stats.bom > 0: from task.map.use_item import UseItem self.__next_task = UseItem(self.__map_manager, Item(Item.Type.BOM)) return direction = InputManager.get_push_direction() if player.ready_move(direction): mm.event_manager.ready_move_enemys() from task.map.move import Move self.__next_task = Move(self.__map_manager) return elif direction != Direction.NEWTRAL: game_system.play_se(SE.BUMP)
def item_init(): global item item = [] for i in range(8): if i < 4: item.append(Item(i, "Notebook", [MAP_HEIGHT-2, i])) else: item.append(Item(i, "Notebook", [MAP_HEIGHT-1, i-4]))
def put(self, item_id): try: item = Item.objects(item_id=item_id).first() except Exception: return {"message": "Item id not exit"}, 400 if item is None: return {"message": "Item id not exit"}, 400 parser = reqparse.RequestParser() parser.add_argument(name="menu_id", type=str, location='json') parser.add_argument(name="cate_id", type=str, location='json') parser.add_argument(name="item_id", type=str, location='json') parser.add_argument(name="item_name", type=str, location='json') parser.add_argument(name="item_price", type=float, location='json') # parser.add_argument(name="item_discount", type=float, location='json') parser.add_argument(name="item_discount", type=float, location='json') parser.add_argument(name="item_desc", type=str, location='json') parser.add_argument(name="item_info", type=str, location='json') parser.add_argument(name="item_images_url", type=str, location='json', action='append') body = parser.parse_args() item_old_price = item.item_price menu_id = body["menu_id"] cate_id = body["cate_id"] # item_id = body["item_id"] item_name = body["item_name"] item_price = body["item_price"] # item_discount = body["item_discount"] item_desc = body["item_desc"] item_info = body["item_info"] item_images_url =[] # item_images_url = body["item_images_url"] listImage = ["http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201423/bigstar_6281.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/tom-b_8200.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201635/1a_7975.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/chicken-ball-rice_1604.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201424/soup_7846.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201635/4a_858.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/pho-mai-que_5719.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/gavien_6350.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201710/hash-brown-n_9432.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/hot-pie-_7269.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/kem-ly-b_4978.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/kem-cay_4637.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/corn-salad---2_8590.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/soy-bean-chicken-rice_2175.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201640/lotteria---ga-sot---set_5668.png&zc=1"] item_images_url.append(listImage[random.randint(0, 14)]) item_images_url.append(listImage[random.randint(0, 14)]) item_images_url.append(listImage[random.randint(0, 14)]) item.update(set__menu_id=menu_id, set__cate_id=cate_id, set__item_name=item_name, set__item_price=item_price, set__item_old_price=item_old_price, set__item_info=item_info, set__item_desc=item_desc, set__item_images_url=item_images_url) added_item = Item.objects().with_id(item.id) return mlab.item2json(added_item)
def parse_message(self, message): text = message.text pr_ids = parse_pr_id(text) if not pr_ids: return for pr_id in pr_ids: if pr_id in self.items: item = self.items[pr_id] if item.first_mentioned > message.timestamp: item.first_mentioned = message.timestamp if item.last_mentioned < message.timestamp: item.last_mentioned = message.timestamp if message.is_bot and (item.last_mentioned_bot is None or item.last_mentioned_bot < message.timestamp): item.last_mentioned_bot = message.timestamp else: item = Item() item.id = pr_id item.type = 'pr' item.project = pr_id.split('#')[0] item.first_mentioned = message.timestamp item.last_mentioned = message.timestamp if message.is_bot: item.last_mentioned_bot = message.timestamp item.url = 'https://github.com/augurysys/{0}/pull/{1}'.format(*pr_id.split('#')) self.items[pr_id] = item
def dict_lists(lists, item_limit=None): list_items = {} for lst in lists: items = Item.fetch_all(list_id=lst.id, limit=3) total = Item.count('id', list_id=lst.id) list_items[lst.id] = { 'items': items, 'list': lst, 'total': total, } return list_items
def parse_message(self, message): text = message.text dr_id = parse_dr_id(text) if not dr_id: return print dr_id if dr_id in self.items: item = self.items[dr_id] if item.first_mentioned > message.timestamp: item.first_mentioned = message.timestamp if item.last_mentioned < message.timestamp: item.last_mentioned = message.timestamp if message.is_bot and ( item.last_mentioned_bot is None or item.last_mentioned_bot < message.timestamp): item.last_mentioned_bot = message.timestamp else: item = Item() item.id = dr_id item.type = 'doc' item.first_mentioned = message.timestamp item.last_mentioned = message.timestamp if message.is_bot: item.last_mentioned_bot = message.timestamp item.url = 'https://docs.google.com/document/d/{0}'.format(dr_id) self.items[dr_id] = item
def fetch_candidate_items_for_category(city, category): search_results = candidate_yelp_ids_with_name(city, category) candidate_items = [] for yelp_id, item_name in search_results: item = Item( id=None, yelp_id=yelp_id, category=category.name, name=item_name, start_time="", end_time="" ) item.yelp_entry = db.sqlite.get_yelp_entry(yelp_id) candidate_items.append(item) return candidate_items
def test_gamemanager(level2): gm = GameManager() player_names = [] for i in range(3): player_names.append("bruh " + str(i)) gm.register_player_names(player_names) assert len(gm.players) == 3 assert gm.players[0].name == "bruh 0" assert gm.players[1].name == "bruh 1" assert gm.players[2].name == "bruh 2" gm.start_game(level2) assert gm.gamestate.current_level assert len(gm.players) == 3 assert len(gm.gamestate.players) == 3 assert gm.players[0].name == "bruh 0" assert gm.players[1].name == "bruh 1" assert gm.players[2].name == "bruh 2" new_player_locs = [gm.players[0].pos, gm.players[1].pos, gm.players[2].pos] new_player_locs[2] = Coord(7, 18) gm.request_player_move(gm.players[2].name, Coord(7, 3)) assert gm.players[2].pos == Coord(7, 3) item = Item(KEY, Coord(8, 17)) gm.apply_player_item_interaction(gm.gamestate.players[2], Coord(8, 17)) print(str(gm.gamestate.players[2])) assert item in gm.gamestate.players[2].inventory
def create_item(self, name, description, category_id, owner_id): item = Item(name=name, description=description, category_id=category_id, owner_id=owner_id) self.db_session.add(item) self.db_session.commit()
def get_items(): items = Item.objects() if not items: raise exceptions.ItemNotFoundException() else: return items
def __init__(self, file): self.backgrounds = [] self.classes = [] self.feats = [] self.items = [] self.monsters = [] self.races = [] self.spells = [] tree = ET.parse(file) root = tree.getroot() for c in list(root): t = c.tag if t == 'background': self.backgrounds += [Background(c)] elif t == 'class': self.classes += [CharClass(c)] elif t == 'feat': self.feats += [Feat(c)] elif t == 'item': self.items += [Item(c)] elif t == 'monster': self.monsters += [Monster(c)] elif t == 'race': self.races += [Race(c)] elif t == 'spell': self.spells += [Spell(c)]
def create_orders(): user = g.current_user data = request.get_json() items = [] goods = Goods.query.filter(Goods.id.in_(data['goods_id'])).all() owner_id = goods[0].user_id if len(goods) != 0 else None if owner_id is None: return {'errmsg': '请选择商品!', 'errcode': 400}, 400 for res in goods: if res.user_id != owner_id: return {'errmsg': '一次只能提交同一商家的商品', 'errcode': 400}, 400 if res.sale == 1: return { 'errmsg': '商品 ' + res.name + ' 已被购买, 下次手快点哦', 'errcode': 400 }, 400 items.append(Item(goods_id=res.id)) if owner_id == user.id: return {'errmsg': '不可购买自己发布的商品', 'errcode': 400}, 400 try: address = user.addresses.filter_by(id=data['address_id']).first() order = Order(user=user, owner_id=owner_id, address=address) order.items = items # 更新goods为已售出 for val in goods: val.sale = 1 db.session.add(order) db.session.commit() return {'errmsg': '下单成功, 请期待您的宝贝~', 'errcode': 200}, 200 except: return {'errmsg': '数据出错, 请确认数据'}
def parse_items_from_file(file_path): list = [] file_data = open(file_path, 'r') value = [] for each_line in file_data: each_line = each_line.replace("]", "") each_line = each_line.replace("[", "") each_line = each_line.replace("\"", "") value.append(each_line.strip().split(",")) for each_data_Array in value: size = len(each_data_Array) price = float(each_data_Array[2].strip()) if size == 3: new_item = Item(each_data_Array[0], each_data_Array[1], price) list.append(new_item) elif size == 4: date = datetime.datetime.strptime( each_data_Array[3].strip(), "%Y-%m-%d %H:%M:%S.%f").strftime("%Y-%m-%d %H:%M:%S.%f") new_event = Event(each_data_Array[0], each_data_Array[1], price, date) list.append(new_event) file_data.close() return list
def get_item_with_permission(list_id, item_id, user_id): thelist, list_owner = get_list_with_permission(list_id, user_id) item = Item.fetch_one( list_id=thelist.id, id=item_id ) return item, list_owner
def get(self, item_id): try: item = Item.objects(item_id=item_id).first() except Exception: return {"message": "Item id not exit"}, 400 if item is None: return {"message": "Item id not exit"}, 400 return item.get_json()
def get_renderable(item_id): '''Fetch and return an item's data including a pretty-printed version of the data items.''' item = Item.get(item_id) if item is not None: item = item.to_dict() item['data_formatted'] = dict([(d_id, json.dumps(data, indent=4)) for d_id, data in item.get('data', {}).iteritems()]) item['map_formatted'] = json.dumps(item['map'], indent=4) return item
def get(self): user = users.get_current_user() url_login = users.create_logout_url('/') items = Item.query(Item.owner == users.get_current_user().user_id() ).order(-Item.added) jinja = jinja2.get_jinja2(app=self.app) values = {"url_login": url_login, "user": user, "items": items} self.response.write(jinja.render_template('/items.html', **values))
def post(self): name = self.request.get("name", "").strip() item_id = self.request.get("item_id", "").strip() link = self.request.get("link", "").strip() price = float(self.request.get("price", 0.0).strip()) owner = users.get_current_user().user_id() if link and not link.startswith("http://") and not link.startswith("https://"): link = "http://" + link if item_id: item = ndb.Key(urlsafe=item_id).get() item.name = name item.link = link item.price = price else: item = Item(name=name, link=link, price=price, owner=owner) item.put() self.redirect("/items")
def delete(self, item_id): try: item = Item.objects(item_id=item_id).first() except Exception: return {"message": "Item id not exit"}, 400 if item is None: return {"message": "Item id not exit"}, 400 item.delete() return {"message": "deleted item"}
def get(self, cate_id): try: category = Categoty.objects(cate_id=cate_id).first() items = Item.objects(cate_id=cate_id) category.items = items except Exception: return {'message': "this id is wrong"}, 404 return category.get_json()
def fetch_new_item(location, category, start_time="", end_time="", coordinate_str=None, disallowed_yelp_ids=[]): """ If start_time, end_time not specified, callee must add these to Item! coordinate_str is for 'cll' param in yelp search query string Does not persist Item result to the database! """ yelp_id, item_name = best_yelp_id_with_name(location, category, coordinate_str=coordinate_str, disallowed_yelp_ids=disallowed_yelp_ids) item = Item( id=None, yelp_id=yelp_id, category=category.name, name=item_name, start_time=start_time, end_time=end_time ) item.yelp_entry = db.sqlite.get_yelp_entry(yelp_id) return item
def get(self, item_id): try: item = Item.objects(item_id=item_id).first() except Exception: return {"message": "Item id not exit"}, 400 if item is None: return {"message": "Item id not exit"}, 400 new_view = item.item_view_count + 1 item.update(set__item_view_count=new_view) return {"view_count": new_view}, 200
def test_create_request_correctly(self): session_id = 'sessionId' requester = Requester('login', 'pw', 'first', 'last', '5f81ae776db502d353a84fdf') self.requester_handler.active_user_sessions[session_id] = requester item_1 = Item('item1', 42.42, 'category', '5f7c28c6e979c6a33a1f3f79', ProductDetails('', {}), Image('', '')) item_2 = Item('item2', 13.37, 'category', '5f7c28c6e979c6a33a1f3f79', ProductDetails('', {}), Image('', '')) item_1_id = self.items_dao.store_one(item_1.to_db_object()) item_2_id = self.items_dao.store_one(item_2.to_db_object()) item_1_amount = 5 item_2_amount = 3 request_items = [{ 'id': item_1_id, 'amount': item_1_amount }, { 'id': item_2_id, 'amount': item_2_amount }] request_id = self.request_handler.create_request( request_items, session_id) requests = self.requests_dao.get_all() self.assertEqual(len(requests), 1) self.assertEqual(str(requests[0]['_id']), request_id) self.assertEqual(str(requests[0]['requester']), requester.id) self.assertEqual(requests[0]['volunteer'], None) self.assertEqual(requests[0]['status'], RequestStatus.CREATED) self.assertEqual(str(requests[0]['items'][0]['id']), item_1_id) self.assertEqual(requests[0]['items'][0]['amount'], item_1_amount) self.assertEqual(str(requests[0]['items'][1]['id']), item_2_id) self.assertEqual(requests[0]['items'][1]['amount'], item_2_amount)
def login_check(): if request.method == 'POST': email = request.form['email'] password = request.form['password'] if User.validate(email, password): User.login(email) else: return render_template("login.html") username = email.split('@')[0] user_email[username] = email items = Item.get_items() return render_template("profile.html", username=username, items=items)
def get_item(self) -> Optional[Item]: if random.random() < 0.8: return None item_type = random.choice([ Item.Type.SA_ADD_20, Item.Type.SA_ADD_20, Item.Type.SA_ADD_20, Item.Type.SA_ADD_20, Item.Type.SA_ADD_100 ]) return Item(item_type)
def __create_object(self, it_str: str) -> Item: item = Item() obj_array = it_str.split(';') item.id = obj_array[0] item.name = obj_array[1] item.price = obj_array[2] item.description = obj_array[3] return item
def parse_level(level_input): try: level_json = json.loads(level_input) except TypeError: level_json = level_input rooms = None hallways = None objects = None point = None try: if level_json[0][TYPE] != LEVEL: print('Invalid Args: Type is not level') return None input_json = level_json[0] point = level_json[1] except (KeyError, IndexError): input_json = level_json rooms = input_json[ROOMS] hallways = input_json[HALLWAYS] objects = input_json[OBJECTS] rooms_list = [parse_room_obj(room)[ROOM] for room in rooms] halls_list = [parse_hall(hall, rooms_list) for hall in hallways] exits = [] keys = [] for item in objects: posn = item[POS] if item[TYPE] == KEY: key_coord = to_coord(posn) keys.append(Item(KEY, key_coord)) elif item[TYPE] == EXIT: exit_coord = to_coord(posn) exits.append(Item(EXIT, exit_coord)) parsed_level = Level(rooms_list, halls_list, keys, exits) return {LEVEL: parsed_level, COORD: to_coord(point) if point else None}
def __get_item(self) -> Item: item_type = random.choice([ Item.Type.POTION, Item.Type.POTION, Item.Type.POTION, Item.Type.BOM, Item.Type.BOM, Item.Type.BOM, Item.Type.BOM, Item.Type.BOM, Item.Type.BOM, Item.Type.SA_SPOILED, ]) return Item(item_type)
def editItemView(list_id, item_id): ''' View for editing an item ''' error_message = None update_status = None item, list_owner = get_item_with_permission( list_id, item_id, session['user_id'] ) if not list_owner: return flask.abort(403) if request.method == 'POST': try: Item.update(request.form, id=item_id) update_status = True render_item = Item.fetch_one( id=item.id ) except Exception, e: update_status = False error_message = str(e) render_item = dict_to_obj(request.form.to_dict())
def craftar(self, id): x = Item() with open('Estudo/GameArena/dao/itens.txt','r') as arquivo: for linha in arquivo: linha = linha.strip() lista = linha.split(';') x.id = int(lista[0]) x.nome = lista[1] x.arma = int(lista[2]) x.escudo = int(lista[3]) x.armadura = int(lista[4]) if x.id == id: return x
def post(self): item_form = ItemForm(self.request.arguments) price_form = PriceForm(self.request.arguments) if item_form.validate() and price_form.validate(): item = Item.new(**item_form.data) if item: data = dict(price_form.data) data['item_id'] = item.id Price.new(**data) return self.redirect('/') else: self.flash(u'创建商品失败, 请重试') else: self.flash(u'表单错误,请检查') return self.redirect(self.request.uri)
def room2(): # Room 2 example tiles1 = [ Coord(7, 15), Coord(7, 17), Coord(7, 18), Coord(6, 17), Coord(8, 17), Coord(8, 15), Coord(6, 15), Coord(7, 15), Coord(7, 15), Coord(9, 17), Coord(9, 16), Coord(9, 15), Coord(9, 15), Coord(6, 16) ] start1 = Coord(5, 15) dimensions1 = Coord(5, 5) doors1 = [Coord(7, 15)] items1 = [Item(KEY, Coord(8, 17)), Item(KEY, Coord(7, 17))] room2 = Room(start1, dimensions1, tiles1, doors1, items1) return room2
def test_get_requesters_own_requests_correctly(self): session_id = 'sessionId' requester_id = '5f7c2d96e48e242b81178822' other_requester_id = '5f81ae36fa3b02a743177500' requester = Requester('login', 'pw', 'first', 'last', requester_id) self.requester_handler.active_user_sessions[session_id] = requester item = Item('item', 42.42, 'category', '5f7c28c6e979c6a33a1f3f79', ProductDetails('', {}), Image('', '')) item_id = self.items_dao.store_one(item.to_db_object()) item.id = item_id request_1 = Request(requester=requester_id, status=RequestStatus.CREATED, items=[], volunteer=None) request_2 = Request(requester=requester_id, status=RequestStatus.IN_PROGRESS, items=[(item, 3)], volunteer='5f81ae776db502d353a84fdf', submission_date=datetime.now()) request_3 = Request(requester=other_requester_id, status=RequestStatus.PAID, items=[(item, 1)], volunteer='5f81ae776db502d353a84fdf', submission_date=datetime.now()) request_1_id = self.requests_dao.store_one(request_1.to_db_object()) request_2_id = self.requests_dao.store_one(request_2.to_db_object()) request_3_id = self.requests_dao.store_one(request_3.to_db_object()) requests = self.request_handler.get_requesters_own_requests(session_id) self.assertEqual(len(requests), 2) self.assertIn(request_1_id, [request['id'] for request in requests]) self.assertIn(request_2_id, [request['id'] for request in requests]) self.assertEqual( len([r for r in requests if r['id'] == request_2_id][0]['items']), 1) self.assertEqual([r for r in requests if r['id'] == request_2_id ][0]['items'][0]['item']['id'], item_id)
def edit_alert(alert_id): # Get the alert information from the database (alert_id part of GET request) alert = Alert.get_by_id(alert_id) item = Item.get_by_id(alert.item_id) # POST method is used once changes have been made on the edit alert form # After saving the updated alert, the user is forwarded back to alerts home '/' if request.method == 'POST': price_limit = float(request.form['price_limit']) alert.price_limit = price_limit alert.save_to_mongo() return redirect(url_for('.index')) # Where GET request only, user is directed to the edit alert page return render_template('alerts/edit_alert.html', alert=alert)
def listDetailView(list_id): ''' View details for a single list ''' thelist, list_owner = get_list_with_permission(list_id, session['user_id']) items = Item.fetch_all(list_id=list_id) rendered_items =\ [render_html('wishlist/item/view.html', item=item, list_owner=list_owner) # noqa for item in items] quick_add_form = render_html( 'wishlist/item/quick_add.html', list_id=list_id ) return render_template( 'list-detail.html', thelist=thelist, items=rendered_items, quick_add_form=quick_add_form, list_owner=list_owner )
def get(self, menu_id): try: menu = Menu.objects(menu_id=menu_id).first() categories = Categoty.objects(menu_id=menu_id) # items = Item.objects(menu_id=menu_id) items = Item.objects(menu_id=menu_id) # temp_cates =[] for cate in categories: for item in items: if item.cate_id == cate.cate_id: cate.items.append(item) menu.categories = categories # menu.items = items except Exception: mess = {"message": "menu id not exit"} return RespHandle.get_resp(mess=mess, code=204) return menu.get_json()
def createItemView(list_id): ''' View for adding a new item to an existing list ''' thelist, list_owner = get_list_with_permission(list_id, session['user_id']) new_item = request.form.to_dict() new_item.update({'list_id': list_id, }) status = None message = None item_result = None item_id = None try: item = Item.create(new_item) status = 'ok' message = 'added item to list' item_id = item.id item_result = render_html( 'wishlist/item/view.html', item=item, list_owner=list_owner ) except Exception, e: status = 'error' message = str(e)
def get(self, cate_id): item = Item.objects(cate_id=cate_id) return mlab.list2json(item)
def _create_item(data_type): item = Item.create(type=data_type) if not item.id: raise Exception('No row created') return item.id
def get(self, menu_id): items = Item.objects(menu_id=menu_id) return mlab.list2json(items)
def get(self, *args): items = Item.explore() return self.render('index.html', items=items)
def item_from_cursor(self, cursor, row): if row: item = Item(row[0], row[2], row[3], row[4], row[5], row[6]) item.yelp_entry = self.get_yelp_entry(item.yelp_id) return item return None
def post(self): parser = reqparse.RequestParser() parser.add_argument(name="menu_id", type=str, location='json') parser.add_argument(name="cate_id", type=str, location='json') parser.add_argument(name="item_id", type=str, location='json') parser.add_argument(name="item_name", type=str, location='json') parser.add_argument(name="item_price", type=float, location='json') # parser.add_argument(name="item_discount", type=float, location='json') # parser.add_argument(name="item_discount", type=float, location='json') parser.add_argument(name="item_desc", type=str, location='json') parser.add_argument(name="item_images_url", type=str, location='json', action='append') parser.add_argument(name="item_info", type=str, location='json') body = parser.parse_args() menu_id = body["menu_id"] cate_id = body["cate_id"] item_id = body["item_id"] item_name = body["item_name"] item_price = body["item_price"] # item_discount = body["item_discount"] item_desc = body["item_desc"] item_images_url = [] item_info = body["item_info"] listImage = ["http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201423/bigstar_6281.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/tom-b_8200.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201635/1a_7975.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/chicken-ball-rice_1604.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201424/soup_7846.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201635/4a_858.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/pho-mai-que_5719.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/gavien_6350.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201710/hash-brown-n_9432.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/hot-pie-_7269.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/kem-ly-b_4978.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/kem-cay_4637.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/corn-salad---2_8590.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/soy-bean-chicken-rice_2175.png&zc=1", "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201640/lotteria---ga-sot---set_5668.png&zc=1"] item_images_url.append(listImage[random.randint(0, 14)]) item_images_url.append(listImage[random.randint(0, 14)]) item_images_url.append(listImage[random.randint(0, 14)]) cur_items = Item.objects() for c in cur_items: if item_id is None: return {"message": "Item id required"}, 400 if cate_id is None: return {"message": "Cate id required"}, 400 if item_price < 0: return {"message": "Price must be > 0"}, 400 if c["item_id"] == item_id: return {"message": "Item id exited"}, 400 item = Item(menu_id=menu_id, cate_id=cate_id, item_id=item_id, item_name=item_name, item_price=item_price, item_desc=item_desc, item_info=item_info, item_old_price=0, item_images_url=item_images_url) item.save() # added_item = Item.objects().with_id(item.id) return {"message": "add success"}, 200
def get(self): # get all item items = Item.objects() return mlab.list2json(items), 200
def get_item(item_id): return Item.get_item_data(item_id)