コード例 #1
0
ファイル: views.py プロジェクト: gnu-lorien/crapvine-online
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")
コード例 #2
0
    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