def add_item(self, currt_user, new_item): cat_name = self.request.get("cat_name") cat_key = db.Key.from_path('Account', currt_user.nickname(), 'Category', cat_name) category = db.get(cat_key) items = Item.all() items.ancestor(cat_key) items.filter("item_name =", new_item) if items.count() == 0: item = Item(key_name=new_item, parent=category, item_name=new_item) item.win = 0 item.lose = 0 item.put()
def post(self): upload_files = self.get_uploads() # 'file' is file upload field in the form blob_info = upload_files[0] #self.redirect('/serve/%s' % blob_info.key()) blob_key = blob_info.key() blob_reader = blobstore.BlobReader(blob_key) document = blob_reader.read() #self.response.out.write(document) dom = xml.dom.minidom.parseString(document) names = dom.getElementsByTagName("NAME") xml_cat_name = names[0].toxml() xml_cat_name = xml_cat_name.replace("<NAME>", "") xml_cat_name = xml_cat_name.replace("</NAME>", "") xml_item_names = [] for i in range(1, len(names)): name = names[i].toxml() name = name.replace("<NAME>", "") name = name.replace("</NAME>", "") xml_item_names.append(name) currt_user = users.get_current_user() account_key = db.Key.from_path('Account', currt_user.nickname()) account = db.get(account_key) categories = Category.all() categories.ancestor(account_key) cat_names = [] for category in categories.run(): cat_names.append(category.cat_name) ### if category exists if xml_cat_name in cat_names: items = Item.all() category = categories.filter("cat_name =", xml_cat_name) category = category.get() category_key = category.key() items = items.ancestor(category_key) item_names = [] for item in items: item_names.append(item.item_name) ### add new items for item_name in xml_item_names: if item_name not in item_names: item = Item(key_name=item_name, parent=category, item_name=item_name) item.win = 0 item.lose = 0 item.put() ### delete old items for item_name in item_names: if item_name not in xml_item_names: items = Item.all() items = items.ancestor(category_key) items.filter("item_name =", item_name) item = items.get() item.delete() ### if new category else: cat = Category(key_name=xml_cat_name, parent=account, cat_name=xml_cat_name) cat.put() for xml_item_name in xml_item_names: item = Item(key_name=xml_item_name, parent=cat, item_name=xml_item_name) item.win = 0 item.lose = 0 item.put() self.redirect("/option?option=manage")