def edit_menu_item(request, key=None): item = None if key is not None: item = MenuItem.get(key) if request.method == 'POST': form = MenuItemForm(request.POST) if form.is_valid(): item = MenuItem.from_form(form, key) item.put() return HttpResponseRedirect('/admin/menu/items/') elif item: if item.category is None: category_key = "" else: category_key = item.category.key() form = MenuItemForm({ 'category': category_key, 'name': item.name, 'description': item.description, 'price': item.price, 'show_on_menu': item.show_on_menu, # Hidden 'key': item.key()}) else: form=MenuItemForm() return render_admin_template('admin/menu/items/edit.html', dict( item=item, item_form=form))
def delete_menu_item(request, key=None): item = None if key is not None: item = MenuItem.get(key) if key and request.method == 'POST': item.delete() return HttpResponseRedirect('/admin/menu/items/')
def load_fixtures(request): """Populate the data store with an initial set of data.""" fixtures = yaml.load(open(os.path.dirname(__file__) + '/../../fixtures.yaml', 'r')) menu_categories = fixtures['MenuCategory'] menu_items = fixtures['MenuItem'] categories_by_key = dict() for category in menu_categories: key = category['key'] name = category.get('name', '') description = category.get('description', '') column = category.get('column', 1) order = category.get('order', 1) cat = MenuCategory(key_name=key, name=name, description=description, column=column, order=order) cat.put() categories_by_key[key] = cat items = [] for item in menu_items: category = categories_by_key[item['category']] name = item.get('name', None) price = str(item.get('price', None)) description = item.get('description', None) show_on_menu = item.get('show_on_menu', False) item = MenuItem(category=category, name=name, price=price, description=description, show_on_menu=show_on_menu) item.put() items.append(item) return render_admin_template('admin/fixtures.html', dict( menu_items=items, menu_categories=categories_by_key.values()))