def reload_entries(request, sheet_slug, chronicle_slug=None, bridge=None, form_class=TraitForm, **kwargs): 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) entries = sheet.experience_entries.all() # Check all of the various sheet editing permissions if not can_edit_sheet(request, sheet): return permission_denied(request) template_name = "characters/experience_entries.html" return render_to_response(template_name, { 'sheet': sheet, 'group': group, 'experience_entries': entries, 'is_ajax': request.is_ajax, }, context_instance=RequestContext(request))
def show_recent_expenditures(request, sheet_slug, form_class=ExperienceEntryForm, **kwargs): group, bridge = group_and_bridge(request) 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) entry = sheet.get_recent_expenditures_entry() form = form_class(None, instance=entry) ctx = group_context(group, bridge) ctx.update({ 'sheet': sheet, 'form': form, 'reason': entry.reason, 'post_url': reverse('sheet_add_recent_expenditures', args=[sheet_slug]) }) return render_to_response( 'characters/sheet_show_recent_purchases.html', RequestContext(request, ctx))
def reload_traits(request, sheet_slug, traitlistname_slug, 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 = "characters/_trait_category.html" return render_to_response(template_name, { 'sheet': sheet, 'group': group, 'traitlistname': traitlistname, 'prepend': '', }, context_instance=RequestContext(request))
def add_recent_expenditures(request, sheet_slug, action_description="Recent Expenditures", object_description="Experience Entry", chronicle_slug=None, bridge=None, form_class=ExperienceEntryForm, **kwargs): 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/generic_edit.html") if request.is_ajax(): template_name = kwargs.get( "template_name_facebox", "characters/generic_edit_facebox.html", ) if request.method == "POST": print "Posting recent" form = form_class(request.POST) pprint(request.POST) form.is_valid() #pprint(form.cleaned_data) #pprint(form.errors) if form.is_valid(): print "Valid?" sheet.add_experience_entry(form.save(commit=False)) ChangedTrait.objects.filter(sheet=sheet).delete() return experience_entry_change_ajax_success(request, sheet, None, group) else: print "Invalid?" else: entry = sheet.get_recent_expenditures_entry() form = form_class(None, instance=entry) return render_to_response(template_name, { 'sheet': sheet, 'form': form, 'group': group, 'action_description': action_description, 'object_description': object_description, 'form_template': 'characters/generic_edit_form.html', 'post_url': reverse('sheet_add_recent_expenditures', args=[sheet_slug]), }, context_instance=RequestContext(request))
def reorder_traitlist(request, sheet_slug, traitlistname_slug, chronicle_slug=None, bridge=None, **kwargs): 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/reorder_traitlist.html") if request.is_ajax(): template_name = kwargs.get( "template_name_facebox", "characters/traits/reorder_traitlist_facebox.html", ) tln = get_object_or_404(TraitListName, slug=traitlistname_slug) traits = [] DisplayOrderFormSet = formset_factory(DisplayOrderForm, extra=0) if request.method == "POST": formset = DisplayOrderFormSet(request.POST) if formset.is_valid(): pprint(formset.cleaned_data) for data in formset.cleaned_data: trait = sheet.traits.get(id=data['trait_id']) if data['order'] != trait.order: trait.order = data['order'] trait.save() return trait_change_ajax_success(request, sheet, tln, group) else: traits = sheet.get_traits(tln.name) initial = [] for trait in traits: initial.append({'order': trait.order, 'trait_id': trait.id, 'trait': unicode(trait)}) formset = DisplayOrderFormSet(initial=initial) return render_to_response(template_name, { 'sheet': sheet, 'traitlistname': tln, 'traits': traits, 'formset': formset, }, context_instance=RequestContext(request))
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 experience_entry_action(request, sheet_slug, entry_id=None, action_description="", object_description="Experience Entry", post_url="", action=None, chronicle_slug=None, bridge=None, form_class=ExperienceEntryForm, **kwargs): 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) if entry_id is not None: entry = get_object_or_404(sheet.experience_entries.all(), id=entry_id) else: entry = None # 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/generic_edit.html") if request.is_ajax(): template_name = kwargs.get( "template_name_facebox", "characters/generic_edit_facebox.html", ) form = form_class(request.POST or None, instance=entry) if form.is_valid() and request.method == "POST": action(form, sheet) return experience_entry_change_ajax_success(request, sheet, entry, group) return render_to_response(template_name, { 'sheet': sheet, 'form': form, 'group': group, 'entry': entry, 'action_description': action_description, 'object_description': object_description, 'form_template': 'characters/generic_edit_form.html', 'post_url': post_url, }, context_instance=RequestContext(request))
def delete_experience_entry(request, sheet_slug, entry_id, chronicle_slug=None, bridge=None, **kwargs): 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) if entry_id is not None: entry = get_object_or_404(sheet.experience_entries.all(), id=entry_id) else: entry = None # 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/generic_delete.html") if request.is_ajax(): template_name = kwargs.get( "template_name_facebox", "characters/generic_delete_facebox.html", ) if request.method == "POST" and request.POST.has_key('__confirm__'): sheet.delete_experience_entry(entry) return experience_entry_change_ajax_success(request, sheet, None, group) return render_to_response(template_name, { 'sheet': sheet, 'group': group, 'instance': entry, 'object_description': 'Experience Entry', 'form_template': 'characters/generic_delete_form.html', 'post_url': reverse('sheet_delete_experience_entry', args=[sheet_slug, entry_id]), }, context_instance=RequestContext(request))
def edit_traitlist(request, sheet_slug, traitlistname_slug, chronicle_slug=None, bridge=None, form_class=TraitListPropertyForm, **kwargs): 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/edit_traitlist.html") if request.is_ajax(): template_name = kwargs.get( "template_name_facebox", "characters/traits/edit_traitlist_facebox.html", ) tln = get_object_or_404(TraitListName, slug=traitlistname_slug) tlp = sheet.get_traitlist_property(tln) form = form_class(request.POST or None, instance=tlp) if form.is_valid() and request.method == "POST": tlp = form.save() for trait in sheet.get_traitlist(tln.name): if trait.display_preference != tlp.display_preference: trait.display_preference = tlp.display_preference trait.save() print "tln", tln return trait_change_ajax_success(request, sheet, tln, group) return render_to_response(template_name, { 'sheet': sheet, 'traitlistname': tln, 'form': form, }, context_instance=RequestContext(request))
def edit_trait(request, sheet_slug, trait_id, chronicle_slug=None, bridge=None, form_class=TraitForm, **kwargs): 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) trait = get_object_or_404(sheet.traits.all(), id=trait_id) # 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/edit_trait.html") if request.is_ajax(): template_name = kwargs.get( "template_name_facebox", "characters/traits/edit_trait_facebox.html", ) form = form_class(request.POST or None, instance=trait) form.is_valid() pprint(form.errors) print request.is_ajax() if form.is_valid() and request.method == "POST": form.save() return trait_change_ajax_success(request, sheet, trait.traitlistname, group) return render_to_response(template_name, { 'sheet': sheet, 'form': form, 'trait': trait, 'group': group, }, context_instance=RequestContext(request))
def delete_trait(request, sheet_slug, trait_id, chronicle_slug=None, bridge=None, **kwargs): 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) trait = get_object_or_404(sheet.traits.all(), id=trait_id) # 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/delete_trait.html") if request.is_ajax(): template_name = kwargs.get( "template_name_facebox", "characters/traits/delete_trait_facebox.html", ) if request.method == "POST" and request.POST.has_key('__confirm__'): tln = trait.traitlistname trait.delete() return trait_change_ajax_success(request, sheet, tln, group) return render_to_response(template_name, { 'sheet': sheet, 'trait': trait, 'group': group, }, context_instance=RequestContext(request))
def edit_vampire_sheet_attributes(request, sheet_slug, form_class=VampireSheetAttributesForm, **kwargs): sheet = get_object_or_404(Sheet, slug=sheet_slug) if not can_edit_sheet(request, sheet): return permission_denied(request) template_name = kwargs.get("template_name", "characters/vampires/edit_vampire_sheet_attributes.html") if request.is_ajax(): template_name = kwargs.get( "template_name_facebox", "characters/vampires/edit_vampire_sheet_attributes_facebox.html", ) vampire_sheet = sheet.vampiresheet form = form_class(request.POST or None, instance=vampire_sheet) if form.is_valid() and request.method == "POST": form.save() return HttpResponseRedirect(reverse("sheet_list", args=[sheet_slug])) return render_to_response(template_name, { 'sheet': vampire_sheet, 'form': form, }, context_instance=RequestContext(request))
def new_trait(request, sheet_slug, traitlistname_slug, menuitem_id=None, id_segment=None, 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(): print "New sheet trait is Ajax" template_name = kwargs.get( "template_name_facebox", "characters/traits/new_trait_facebox.html", ) if request.method == "POST": form = form_class(request.POST or None) if form.is_valid(): sheet.add_trait(traitlistname.name, form.cleaned_data) print "returning ajax check" return trait_change_ajax_success(request, sheet, traitlistname, group) else: t = None if menuitem_id is not None: mi = MenuItem.objects.get(id=menuitem_id) t = Trait(name=mi.name, traitlistname=traitlistname, sheet=sheet, order=0, value=mi.cost) t.note = mi.note t.display_preference = sheet.get_traitlist_property(traitlistname).display_preference ids = id_segment.split('/') if len(ids) >= 2: menus = [] for id in ids: menus.append(Menu.objects.get(id=id)) names = [m.name for m in menus[1:]] pprint(names) prefix = ': '.join(names) + ': ' t.name = prefix + t.name form = form_class(request.POST or None, instance=t) print "returning regs" return render_to_response(template_name, { 'sheet': sheet, 'form': form, 'group': group, 'traitlistname': traitlistname, }, context_instance=RequestContext(request))