def new_trait_from_menu(request, sheet_slug, traitlistname_slug, id_segment, chronicle_slug=None, bridge=None, form_class=TraitForm, **kwargs): traitlistname = get_object_or_404(TraitListName, slug=traitlistname_slug) if bridge is not None: try: group = bridge.get_group(chronicle_slug) except ObjectDoesNotExist: raise Http404 else: group = None if group: sheet = get_object_or_404(group.content_objects(Sheet), slug=sheet_slug) else: sheet = get_object_or_404(Sheet, slug=sheet_slug) # Check all of the various sheet editing permissions if not can_edit_sheet(request, sheet): return permission_denied(request) template_name = kwargs.get("template_name", "characters/traits/new_trait.html") if request.is_ajax(): template_name = kwargs.get( "template_name_facebox", "characters/traits/new_trait_facebox.html", ) print traitlistname.name print "sheet in new_trait_from_menu", sheet send_segment = None if len(id_segment) > 0: print "id_segment", pformat(id_segment[1:]) send_segment = id_segment[1:] else: try: try: if sheet.vampiresheet: desired_menu = Menu.get_menu_for_traitlistname(traitlistname, VampireSheet) except ObjectDoesNotExist: desired_menu = Menu.get_menu_for_traitlistname(traitlistname) except Menu.DoesNotExist: return new_trait(request, sheet_slug, traitlistname_slug, chronicle_slug=chronicle_slug, bridge=bridge, **kwargs) print desired_menu.name send_segment = "%d" % desired_menu.id return show_menu( request, send_segment, sheet=sheet, traitlistname=traitlistname, group=group, template_name_facebox="characters/menus/show_menu.html")
def startElement(self, name, attrs): if name == 'menu': if not attrs.has_key('name'): return menu = Menu(name=attrs.get('name')) r = AttributeReader(attrs) from pprint import pprint #pprint(r.text('category', '1')) #pprint(r.boolean('abc')) #pprint(r.boolean('required')) #pprint(r.text('display', '0')) #pprint(r.boolean('autonote')) #pprint(r.boolean('negative')) menu.category = r.text('category', '1') menu.sorted = r.boolean('abc') menu.required = r.boolean('required') menu.display_preference = int(r.text('display', '0')) menu.autonote = r.boolean('autonote') menu.negative = r.boolean('negative') menu.save() self.current_menu = menu self.order_count = 0 elif name == 'item': if not attrs.has_key('name'): return item = MenuItem(name=attrs.get('name'), parent=self.current_menu, item_type=0, order=self.order_count) r = AttributeReader(attrs) item.cost = r.text('cost', '1') item.note = r.text('note', '') item.save() self.order_count = self.order_count + 1 elif name == 'submenu' or name == 'include': if not attrs.has_key('name'): return item_type = 1 if name == 'include' else 2 link = MenuItem(name=attrs.get('name'), parent=self.current_menu, item_type=item_type, order=self.order_count) r = AttributeReader(attrs) link_menu_name = r.text('link', link.name) try: link.menu_to_import = Menu.objects.get(name=link_menu_name) except Menu.DoesNotExist: self.delayed.append((link, link_menu_name)) link.save() self.order_count = self.order_count + 1