Beispiel #1
0
    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()
Beispiel #2
0
    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")