def edition_detail(request, edition_slug, edition_id): dnd_edition = get_object_or_404(DndEdition, id=edition_id) if dnd_edition.slug != edition_slug: return permanent_redirect_object(request, dnd_edition) rulebook_list = dnd_edition.rulebook_set.select_related('dnd_edition').all() paginator = DndPaginator(rulebook_list, request) if is_3e_edition(dnd_edition): request.submenu_item = MenuItem.Rulebooks.BOOKS_3_0 elif dnd_edition.slug == "core-35": request.submenu_item = MenuItem.Rulebooks.CORE_3_5 elif dnd_edition.slug == "supplementals-35": request.submenu_item = MenuItem.Rulebooks.SUPPLEMENTS_3_5 elif dnd_edition.slug == "dragonlance": request.submenu_item = MenuItem.Rulebooks.DRAGONLANCE_3_5 elif dnd_edition.slug == "eberron-35": request.submenu_item = MenuItem.Rulebooks.EBERRON_3_5 elif dnd_edition.slug == "forgotten-realms-35": request.submenu_item = MenuItem.Rulebooks.FORGOTTEN_REALMS_3_5 return render_to_response('dnd/rulebooks/edition_detail.html', { 'dnd_edition': dnd_edition, 'request': request, 'rulebook_list': paginator.items(), 'paginator': paginator, 'i_like_it_url': request.build_absolute_uri(), 'inaccurate_url': request.build_absolute_uri(), 'display_3e_warning': is_3e_edition(dnd_edition), }, context_instance=RequestContext(request), )
def monsters_in_rulebook(request, rulebook_slug, rulebook_id): rulebook = get_object_or_404(Rulebook, pk=rulebook_id) if not rulebook.slug == rulebook_slug: return permanent_redirect_view(request, 'monsters_in_rulebook', kwargs={ 'rulebook_slug': rulebook.slug, 'rulebook_id': rulebook_id, }) monster_list = rulebook.monster_set.select_related( 'rulebook', 'rulebook__dnd_edition', 'school').all() paginator = DndPaginator(monster_list, request) return render_to_response( 'dnd/monsters/monsters_in_rulebook.html', { 'rulebook': rulebook, 'monster_list': paginator.items(), 'paginator': paginator, 'request': request, 'display_3e_warning': is_3e_edition(rulebook.dnd_edition), }, context_instance=RequestContext(request), )
def feat_category_detail(request, category_slug): feat_category = get_object_or_404(FeatCategory, slug=category_slug) feat_list = feat_category.feat_set.select_related( 'rulebook', 'rulebook__dnd_edition').all() if feat_category.slug == 'trait': request.submenu_item = MenuItem.CharacterOptions.TRAITS elif feat_category.slug == 'flaw': request.submenu_item = MenuItem.CharacterOptions.FLAWS elif feat_category.slug == 'skill-trick': request.submenu_item = MenuItem.CharacterOptions.SKILL_TRICKS paginator = DndPaginator(feat_list, request) return render_to_response( 'dnd/feats/feat_category_detail.html', { 'feat_category': feat_category, 'feat_list': paginator.items(), 'paginator': paginator, 'request': request, 'i_like_it_url': request.build_absolute_uri(), 'inaccurate_url': request.build_absolute_uri(), }, context_instance=RequestContext(request), )
def spell_index(request): if is_admin(request): f = SpellFilterAdmin( request.GET, queryset=Spell.objects.select_related( "rulebook", "rulebook__dnd_edition", "school", "verified_author" ).distinct(), ) else: f = SpellFilter( request.GET, queryset=Spell.objects.select_related("rulebook", "rulebook__dnd_edition", "school").distinct() ) paginator = DndPaginator(f.qs, request) form_submitted = 1 if "_filter" in request.GET else 0 return render_to_response( "dnd/spells/spell_index.html", { "request": request, "spell_list": paginator.items(), "paginator": paginator, "filter": f, "form_submitted": form_submitted, }, context_instance=RequestContext(request), )
def spell_index(request): if is_admin(request): f = SpellFilterAdmin(request.GET, queryset=Spell.objects.select_related( 'rulebook', 'rulebook__dnd_edition', 'school', 'verified_author').distinct()) else: f = SpellFilter(request.GET, queryset=Spell.objects.select_related( 'rulebook', 'rulebook__dnd_edition', 'school').distinct()) paginator = DndPaginator(f.qs, request) form_submitted = 1 if '_filter' in request.GET else 0 return render_to_response( 'dnd/spells/spell_index.html', { 'request': request, 'spell_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def feat_category_list(request): feat_category_list = FeatCategory.objects.all() paginator = DndPaginator(feat_category_list, request) return render_to_response('dnd/feat_category_list.html', {'feat_category_list': paginator.items(), 'paginator': paginator, 'request': request, }, context_instance=RequestContext(request), )
def race_list_by_rulebook(request): rulebook_list = Rulebook.objects.select_related('dnd_edition').all() paginator = DndPaginator(rulebook_list, request) return render_to_response('dnd/race_list_by_rulebook.html', {'request': request, 'rulebook_list': paginator.items(), 'paginator': paginator, }, context_instance=RequestContext(request), )
def edition_list(request): edition_list = DndEdition.objects.all() paginator = DndPaginator(edition_list, request) return render_to_response('dnd/edition_list.html', {'edition_list': paginator.items(), 'paginator': paginator, 'request': request, }, context_instance=RequestContext(request), )
def item_list_by_rulebook(request): rulebook_list = Rulebook.objects.select_related("dnd_edition").all() paginator = DndPaginator(rulebook_list, request) return render_to_response( "dnd/items/item_list_by_rulebook.html", {"request": request, "rulebook_list": paginator.items(), "paginator": paginator}, context_instance=RequestContext(request), )
def item_list_by_rulebook(request): rulebook_list = Rulebook.objects.select_related('dnd_edition').all() paginator = DndPaginator(rulebook_list, request) return render_to_response('dnd/items/item_list_by_rulebook.html', { 'request': request, 'rulebook_list': paginator.items(), 'paginator': paginator, }, context_instance=RequestContext(request), )
def feat_category_list(request): feat_category_list = FeatCategory.objects.all() paginator = DndPaginator(feat_category_list, request) return render_to_response( 'dnd/feats/feat_category_list.html', { 'feat_category_list': paginator.items(), 'paginator': paginator, 'request': request, }, context_instance=RequestContext(request), )
def skill_list(request): f = SkillFilter(request.GET, queryset=Skill.objects.all()) form_submitted = 1 if 'name' in request.GET else 0 paginator = DndPaginator(f.qs, request) return render_to_response('dnd/skill_list.html', {'request': request, 'skill_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def edition_list(request): edition_list = DndEdition.objects.all() paginator = DndPaginator(edition_list, request) return render_to_response( 'dnd/rulebooks/edition_list.html', { 'edition_list': paginator.items(), 'paginator': paginator, 'request': request, }, context_instance=RequestContext(request), )
def feat_category_detail(request, category_slug): feat_category = get_object_or_404(FeatCategory, slug=category_slug) feat_list = feat_category.feat_set.select_related('rulebook', 'rulebook__dnd_edition').all() paginator = DndPaginator(feat_list, request) return render_to_response('dnd/feat_category_detail.html', {'feat_category': feat_category, 'feat_list': paginator.items(), 'paginator': paginator, 'request': request, 'i_like_it_url': request.build_absolute_uri(), 'inaccurate_url': request.build_absolute_uri(), }, context_instance=RequestContext(request), )
def rulebook_list(request): f = RulebookFilter(request.GET, queryset=Rulebook.objects.select_related( 'dnd_edition')) form_submitted = 1 if 'name' in request.GET else 0 paginator = DndPaginator(f.qs, request) return render_to_response('dnd/rulebook_list.html', {'request': request, 'rulebook_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def item_index(request): f = ItemFilter(request.GET, queryset=Item.objects.select_related( 'rulebook', 'rulebook__dnd_edition').distinct()) paginator = DndPaginator(f.qs, request) form_submitted = 1 if 'name' in request.GET else 0 return render_to_response('dnd/item_index.html', {'request': request, 'item_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def spell_school_detail(request, spell_school_slug): spell_school = get_object_or_404(SpellSchool, slug=spell_school_slug) spell_list = spell_school.spell_set.select_related( 'rulebook', 'rulebook__dnd_edition', 'school').all() paginator = DndPaginator(spell_list, request) return render_to_response('dnd/spell_school_detail.html', {'spell_school': spell_school, 'spell_list': paginator.items(), 'paginator': paginator, 'request': request, 'i_like_it_url': request.build_absolute_uri(), 'inaccurate_url': request.build_absolute_uri(), }, context_instance=RequestContext(request), )
def language_index(request): f = LanguageFilter(request.GET, queryset=Language.objects.distinct()) paginator = DndPaginator(f.qs, request) form_submitted = 1 if 'name' in request.GET else 0 return render_to_response('dnd/languages/language_index.html', { 'request': request, 'language_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def language_index(request): f = LanguageFilter(request.GET, queryset=Language.objects.distinct()) paginator = DndPaginator(f.qs, request) form_submitted = 1 if '_filter' in request.GET else 0 return render_to_response('dnd/languages/language_index.html', { 'request': request, 'language_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def deity_list(request): f = DeityFilter(request.GET, queryset=Deity.objects.all()) form_submitted = 1 if '_filter' in request.GET else 0 paginator = DndPaginator(f.qs, request) return render_to_response('dnd/deities/deity_list.html', { 'request': request, 'deity_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def item_index(request): f = ItemFilter(request.GET, queryset=Item.objects.select_related( 'rulebook', 'rulebook__dnd_edition', 'body_slot', 'property').distinct()) paginator = DndPaginator(f.qs, request) form_submitted = 1 if '_filter' in request.GET else 0 return render_to_response('dnd/items/item_index.html', { 'request': request, 'item_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def race_type_index(request): f = RaceTypeFilter(request.GET, queryset=RaceType.objects.distinct()) paginator = DndPaginator(f.qs, request) form_submitted = 1 if 'name' in request.GET else 0 return render_to_response('dnd/races/race_type_index.html', { 'request': request, 'race_type_list': paginator.items(), 'paginator': paginator, 'filter': f, 'BaseSaveType': RaceType.BaseSaveType, # enums 'BaseAttackType': RaceType.BaseAttackType, # enums 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def spell_descriptor_list(request): f = SpellDescriptorFilter(request.GET, queryset=SpellDescriptor.objects.all()) paginator = DndPaginator(f.qs, request) form_submitted = 1 if "_filter" in request.GET else 0 return render_to_response( "dnd/spells/spell_descriptor_list.html", { "request": request, "spell_descriptor_list": paginator.items(), "paginator": paginator, "filter": f, "form_submitted": form_submitted, }, context_instance=RequestContext(request), )
def deity_list(request): f = DeityFilter(request.GET, queryset=Deity.objects.all()) form_submitted = 1 if '_filter' in request.GET else 0 paginator = DndPaginator(f.qs, request) return render_to_response( 'dnd/deities/deity_list.html', { 'request': request, 'deity_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def spell_domain_list(request): f = SpellDomainFilter(request.GET, queryset=Domain.objects.all()) paginator = DndPaginator(f.qs, request) form_submitted = 1 if '_filter' in request.GET else 0 return render_to_response( 'dnd/spells/spell_domain_list.html', { 'request': request, 'spell_domain_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def character_class_list(request): f = CharacterClassFilter( request.GET, queryset=CharacterClassVariant.objects.select_related( 'rulebook', 'rulebook__dnd_edition', 'character_class') ) form_submitted = 1 if '_filter' in request.GET else 0 paginator = DndPaginator(f.qs, request) return render_to_response('dnd/character_classes/character_class_list.html', { 'character_class_list': paginator.items(), 'paginator': paginator, 'request': request, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def rulebook_list(request): f = RulebookFilter(request.GET, queryset=Rulebook.objects.select_related('dnd_edition')) form_submitted = 1 if '_filter' in request.GET else 0 paginator = DndPaginator(f.qs, request) return render_to_response( 'dnd/rulebooks/rulebook_list.html', { 'request': request, 'rulebook_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def spell_sub_school_detail(request, spell_sub_school_slug): spell_sub_school = get_object_or_404(SpellSubSchool, slug=spell_sub_school_slug) spell_list = spell_sub_school.spell_set.select_related("rulebook", "rulebook__dnd_edition", "school").all() paginator = DndPaginator(spell_list, request) return render_to_response( "dnd/spells/spell_sub_school_detail.html", { "spell_sub_school": spell_sub_school, "spell_list": paginator.items(), "paginator": paginator, "request": request, "i_like_it_url": request.build_absolute_uri(), "inaccurate_url": request.build_absolute_uri(), }, context_instance=RequestContext(request), )
def races_in_rulebook(request, rulebook_slug, rulebook_id): rulebook = get_object_or_404(Rulebook, pk=rulebook_id) if not rulebook.slug == rulebook_slug: return permanent_redirect_view(request, 'races_in_rulebook', kwargs={'rulebook_slug': rulebook.slug, 'rulebook_id': rulebook_id, }) race_list = rulebook.race_set.select_related( 'rulebook', 'rulebook__dnd_edition', 'school').all() paginator = DndPaginator(race_list, request) return render_to_response('dnd/races_in_rulebook.html', {'rulebook': rulebook, 'race_list': paginator.items(), 'paginator': paginator, 'request': request, 'display_3e_warning': is_3e_edition(rulebook.dnd_edition), }, context_instance=RequestContext(request), )
def race_type_index(request): f = RaceTypeFilter(request.GET, queryset=RaceType.objects.distinct()) paginator = DndPaginator(f.qs, request) form_submitted = 1 if "_filter" in request.GET else 0 return render_to_response( "dnd/races/race_type_index.html", { "request": request, "race_type_list": paginator.items(), "paginator": paginator, "filter": f, "BaseSaveType": RaceType.BaseSaveType, # enums "BaseAttackType": RaceType.BaseAttackType, # enums "form_submitted": form_submitted, }, context_instance=RequestContext(request), )
def race_type_index(request): f = RaceTypeFilter(request.GET, queryset=RaceType.objects.distinct()) paginator = DndPaginator(f.qs, request) form_submitted = 1 if '_filter' in request.GET else 0 return render_to_response( 'dnd/races/race_type_index.html', { 'request': request, 'race_type_list': paginator.items(), 'paginator': paginator, 'filter': f, 'BaseSaveType': RaceType.BaseSaveType, # enums 'BaseAttackType': RaceType.BaseAttackType, # enums 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def character_class_spells(request, character_class_slug, level): character_class = get_object_or_404(CharacterClass, slug=character_class_slug) spell_list = Spell.objects.filter( spellclasslevel__character_class=character_class.id, spellclasslevel__level=level).select_related( 'rulebook', 'rulebook__dnd_edition', 'school') paginator = DndPaginator(spell_list, request) return render_to_response('dnd/character_class_spells.html', {'character_class': character_class, 'spell_list': paginator.items(), 'paginator': paginator, 'level': level, 'request': request, }, context_instance=RequestContext(request), )
def edition_detail(request, edition_slug, edition_id): dnd_edition = get_object_or_404(DndEdition, id=edition_id) if dnd_edition.slug != edition_slug: return permanent_redirect_view(request, 'edition_detail', kwargs={'edition_slug': dnd_edition.slug, 'edition_id': dnd_edition.id, }) rulebook_list = dnd_edition.rulebook_set.select_related('dnd_edition').all() paginator = DndPaginator(rulebook_list, request) return render_to_response('dnd/edition_detail.html', {'dnd_edition': dnd_edition, 'request': request, 'rulebook_list': paginator.items(), 'paginator': paginator, 'i_like_it_url': request.build_absolute_uri(), 'inaccurate_url': request.build_absolute_uri(), 'display_3e_warning': is_3e_edition(dnd_edition), }, context_instance=RequestContext(request), )
def feat_index(request): f = FeatFilter(request.GET, queryset=Feat.objects.select_related( 'rulebook', 'rulebook__dnd_edition').distinct()) form_submitted = 1 if '_filter' in request.GET else 0 paginator = DndPaginator(f.qs, request) return render_to_response( 'dnd/feats/feat_index.html', { 'request': request, 'feat_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def spell_school_detail(request, spell_school_slug): spell_school = get_object_or_404(SpellSchool, slug=spell_school_slug) spell_list = spell_school.spell_set.select_related( 'rulebook', 'rulebook__dnd_edition', 'school').all() paginator = DndPaginator(spell_list, request) return render_to_response( 'dnd/spells/spell_school_detail.html', { 'spell_school': spell_school, 'spell_list': paginator.items(), 'paginator': paginator, 'request': request, 'i_like_it_url': request.build_absolute_uri(), 'inaccurate_url': request.build_absolute_uri(), }, context_instance=RequestContext(request), )
def race_index(request): f = RaceFilter( request.GET, queryset=Race.objects.select_related("rulebook", "rulebook__dnd_edition", "school").distinct() ) paginator = DndPaginator(f.qs, request) form_submitted = 1 if "_filter" in request.GET else 0 return render_to_response( "dnd/races/race_index.html", { "request": request, "race_list": paginator.items(), "paginator": paginator, "filter": f, "form_submitted": form_submitted, }, context_instance=RequestContext(request), )
def spell_index(request): if is_admin(request): f = SpellFilterAdmin(request.GET, queryset=Spell.objects.select_related( 'rulebook', 'rulebook__dnd_edition', 'school', 'verified_author').distinct()) else: f = SpellFilter(request.GET, queryset=Spell.objects.select_related( 'rulebook', 'rulebook__dnd_edition', 'school').distinct()) paginator = DndPaginator(f.qs, request) form_submitted = 1 if 'name' in request.GET else 0 return render_to_response('dnd/spells/spell_index.html', { 'request': request, 'spell_list': paginator.items(), 'paginator': paginator, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def item_index(request): f = ItemFilter( request.GET, queryset=Item.objects.select_related("rulebook", "rulebook__dnd_edition", "body_slot", "property").distinct(), ) paginator = DndPaginator(f.qs, request) form_submitted = 1 if "_filter" in request.GET else 0 return render_to_response( "dnd/items/item_index.html", { "request": request, "item_list": paginator.items(), "paginator": paginator, "filter": f, "form_submitted": form_submitted, }, context_instance=RequestContext(request), )
def character_class_list(request): f = CharacterClassFilter( request.GET, queryset=CharacterClassVariant.objects.select_related( 'rulebook', 'rulebook__dnd_edition', 'character_class')) form_submitted = 1 if '_filter' in request.GET else 0 paginator = DndPaginator(f.qs, request) return render_to_response( 'dnd/character_classes/character_class_list.html', { 'character_class_list': paginator.items(), 'paginator': paginator, 'request': request, 'filter': f, 'form_submitted': form_submitted, }, context_instance=RequestContext(request), )
def items_in_rulebook(request, rulebook_slug, rulebook_id): rulebook = get_object_or_404(Rulebook, pk=rulebook_id) if not rulebook.slug == rulebook_slug: return permanent_redirect_view( request, "items_in_rulebook", kwargs={"rulebook_slug": rulebook.slug, "rulebook_id": rulebook_id} ) item_list = rulebook.item_set.select_related("rulebook", "rulebook__dnd_edition", "school").all() paginator = DndPaginator(item_list, request) return render_to_response( "dnd/items/items_in_rulebook.html", { "rulebook": rulebook, "item_list": paginator.items(), "paginator": paginator, "request": request, "display_3e_warning": is_3e_edition(rulebook.dnd_edition), }, context_instance=RequestContext(request), )
def character_class_spells(request, character_class_slug, level): character_class = get_object_or_404(CharacterClass, slug=character_class_slug) spell_list = Spell.objects.filter( spellclasslevel__character_class=character_class.id, spellclasslevel__level=level).select_related('rulebook', 'rulebook__dnd_edition', 'school') paginator = DndPaginator(spell_list, request) return render_to_response( 'dnd/character_classes/character_class_spells.html', { 'character_class': character_class, 'spell_list': paginator.items(), 'paginator': paginator, 'level': level, 'request': request, }, context_instance=RequestContext(request), )
def feat_category_detail(request, category_slug): feat_category = get_object_or_404(FeatCategory, slug=category_slug) feat_list = feat_category.feat_set.select_related('rulebook', 'rulebook__dnd_edition').all() if feat_category.slug == 'trait': request.submenu_item = MenuItem.CharacterOptions.TRAITS elif feat_category.slug == 'flaw': request.submenu_item = MenuItem.CharacterOptions.FLAWS elif feat_category.slug == 'skill-trick': request.submenu_item = MenuItem.CharacterOptions.SKILL_TRICKS paginator = DndPaginator(feat_list, request) return render_to_response('dnd/feats/feat_category_detail.html', { 'feat_category': feat_category, 'feat_list': paginator.items(), 'paginator': paginator, 'request': request, 'i_like_it_url': request.build_absolute_uri(), 'inaccurate_url': request.build_absolute_uri(), }, context_instance=RequestContext(request), )
def edition_detail(request, edition_slug, edition_id): dnd_edition = get_object_or_404(DndEdition, id=edition_id) if dnd_edition.slug != edition_slug: return permanent_redirect_object(request, dnd_edition) rulebook_list = dnd_edition.rulebook_set.select_related( 'dnd_edition').all() paginator = DndPaginator(rulebook_list, request) if is_3e_edition(dnd_edition): request.submenu_item = MenuItem.Rulebooks.BOOKS_3_0 elif dnd_edition.slug == "core-35": request.submenu_item = MenuItem.Rulebooks.CORE_3_5 elif dnd_edition.slug == "supplementals-35": request.submenu_item = MenuItem.Rulebooks.SUPPLEMENTS_3_5 elif dnd_edition.slug == "dragonlance": request.submenu_item = MenuItem.Rulebooks.DRAGONLANCE_3_5 elif dnd_edition.slug == "eberron-35": request.submenu_item = MenuItem.Rulebooks.EBERRON_3_5 elif dnd_edition.slug == "forgotten-realms-35": request.submenu_item = MenuItem.Rulebooks.FORGOTTEN_REALMS_3_5 return render_to_response( 'dnd/rulebooks/edition_detail.html', { 'dnd_edition': dnd_edition, 'request': request, 'rulebook_list': paginator.items(), 'paginator': paginator, 'i_like_it_url': request.build_absolute_uri(), 'inaccurate_url': request.build_absolute_uri(), 'display_3e_warning': is_3e_edition(dnd_edition), }, context_instance=RequestContext(request), )
def language_detail(request, language_slug): language = get_object_or_404( Language.objects, slug=language_slug, ) assert isinstance(language, Language) race_list = Race.objects.filter(Q(automatic_languages=language) | Q(bonus_languages=language)).select_related( 'rulebook').distinct().all() paginator = DndPaginator(race_list, request) return render_to_response('dnd/languages/language_detail.html', { 'language': language, 'paginator': paginator, 'race_list': race_list, 'i_like_it_url': request.build_absolute_uri(), 'inaccurate_url': request.build_absolute_uri(), }, context_instance=RequestContext(request), )
def race_type_detail(request, race_type_slug): race_type = get_object_or_404( RaceType.objects, slug=race_type_slug, ) assert isinstance(race_type, RaceType) race_list = race_type.race_set.all() paginator = DndPaginator(race_list, request) return render_to_response( 'dnd/races/race_type_detail.html', { 'race_type': race_type, 'paginator': paginator, 'race_list': race_list, 'BaseSaveType': RaceType.BaseSaveType, # enums 'BaseAttackType': RaceType.BaseAttackType, # enums 'i_like_it_url': request.build_absolute_uri(), 'inaccurate_url': request.build_absolute_uri(), }, context_instance=RequestContext(request), )
def skill_detail(request, skill_slug, rulebook_slug=None, rulebook_id=None): # fetch the class skill = get_object_or_404(Skill.objects.select_related( 'skill_variant', 'skill_variant__rulebook'), slug=skill_slug) # fetch primary variant, this is independent of rulebook selected try: primary_variant = SkillVariant.objects.select_related( 'rulebook', 'rulebook__dnd_edition', ).filter( skill=skill, ).order_by('-rulebook__dnd_edition__core', '-rulebook__published')[0] except Exception: primary_variant = None # if rulebook is supplied, select find this variant if rulebook_slug and rulebook_id: # use canonical link in head as this is more or less duplicated content use_canonical_link = True selected_variant = get_object_or_404( SkillVariant.objects.select_related( 'rulebook', 'skill', 'rulebook__dnd_edition'), skill__slug=skill_slug, rulebook__pk=rulebook_id) # possible malformed/changed slug if rulebook_slug != selected_variant.rulebook.slug: return permanent_redirect_object(request, selected_variant) # selected variant is primary! Redirect to canonical url if selected_variant == primary_variant: return permanent_redirect_view( request, skill_detail, kwargs={ 'skill_slug': skill_slug} ) else: # this is canonical, no need to specify it use_canonical_link = False selected_variant = primary_variant other_variants = [ variant for variant in skill.skillvariant_set.select_related( 'rulebook', 'rulebook__dnd_edition', 'skill').all() if variant != selected_variant ] if selected_variant: display_3e_warning = is_3e_edition(selected_variant.rulebook.dnd_edition) else: display_3e_warning = False feat_list = skill.required_by_feats.select_related('rulebook').all() feat_paginator = DndPaginator(feat_list, request) return render_to_response('dnd/skills/skill_detail.html', { 'skill': skill, 'feat_list': feat_paginator.items(), 'feat_paginator': feat_paginator, 'request': request, 'i_like_it_url': request.build_absolute_uri(), 'inaccurate_url': request.build_absolute_uri(), 'selected_variant': selected_variant, 'other_variants': other_variants, 'use_canonical_link': use_canonical_link, 'display_3e_warning': display_3e_warning, }, context_instance=RequestContext(request), )
def spell_domain_detail(request, spell_domain_slug, rulebook_slug=None, rulebook_id=None): # fetch the class spell_domain = get_object_or_404( Domain.objects.select_related("domain_variant", "domain_variant__rulebook"), slug=spell_domain_slug ) # fetch primary variant, this is independent of rulebook selected try: primary_variant = ( DomainVariant.objects.select_related("rulebook", "rulebook__dnd_edition") .filter(domain=spell_domain) .order_by("-rulebook__dnd_edition__core", "-rulebook__published")[0] ) except Exception: primary_variant = None # if rulebook is supplied, select find this variant if rulebook_slug and rulebook_id: # use canonical link in head as this is more or less duplicated content use_canonical_link = True selected_variant = get_object_or_404( DomainVariant.objects.select_related("domain", "rulebook", "rulebook__dnd_edition"), domain__slug=spell_domain_slug, rulebook__pk=rulebook_id, ) # possible malformed/changed slug if rulebook_slug != selected_variant.rulebook.slug: return permanent_redirect_object(request, selected_variant) # selected variant is primary! Redirect to canonical url if selected_variant == primary_variant: return permanent_redirect_view( request, spell_domain_detail, kwargs={"spell_domain_slug": spell_domain_slug} ) else: # this is canonical, no need to specify it use_canonical_link = False selected_variant = primary_variant other_variants = [ variant for variant in spell_domain.domainvariant_set.select_related( "rulebook", "rulebook__dnd_edition", "spell_domain" ).all() if variant != selected_variant ] if selected_variant: display_3e_warning = is_3e_edition(selected_variant.rulebook.dnd_edition) else: display_3e_warning = False spell_list = spell_domain.spell_set.select_related("rulebook", "rulebook__dnd_edition", "school").all() paginator = DndPaginator(spell_list, request) return render_to_response( "dnd/spells/spell_domain_detail.html", { "spell_domain": spell_domain, "spell_list": paginator.items(), "paginator": paginator, "request": request, "i_like_it_url": request.build_absolute_uri(), "inaccurate_url": request.build_absolute_uri(), "selected_variant": selected_variant, "other_variants": other_variants, "use_canonical_link": use_canonical_link, "display_3e_warning": display_3e_warning, }, context_instance=RequestContext(request), )
def spell_domain_detail(request, spell_domain_slug, rulebook_slug=None, rulebook_id=None): # fetch the class spell_domain = get_object_or_404(Domain.objects.select_related( 'domain_variant', 'domain_variant__rulebook'), slug=spell_domain_slug) # fetch primary variant, this is independent of rulebook selected try: primary_variant = DomainVariant.objects.select_related( 'rulebook', 'rulebook__dnd_edition', ).filter(domain=spell_domain, ).order_by( '-rulebook__dnd_edition__core', '-rulebook__published')[0] except Exception: primary_variant = None # if rulebook is supplied, select find this variant if rulebook_slug and rulebook_id: # use canonical link in head as this is more or less duplicated content use_canonical_link = True selected_variant = get_object_or_404( DomainVariant.objects.select_related('domain', 'rulebook', 'rulebook__dnd_edition'), domain__slug=spell_domain_slug, rulebook__pk=rulebook_id) # possible malformed/changed slug if rulebook_slug != selected_variant.rulebook.slug: return permanent_redirect_object(request, selected_variant) # selected variant is primary! Redirect to canonical url if selected_variant == primary_variant: return permanent_redirect_view( request, spell_domain_detail, kwargs={'spell_domain_slug': spell_domain_slug}) else: # this is canonical, no need to specify it use_canonical_link = False selected_variant = primary_variant other_variants = [ variant for variant in spell_domain.domainvariant_set.select_related( 'rulebook', 'rulebook__dnd_edition', 'spell_domain').all() if variant != selected_variant ] if selected_variant: display_3e_warning = is_3e_edition( selected_variant.rulebook.dnd_edition) else: display_3e_warning = False spell_list = spell_domain.spell_set.select_related( 'rulebook', 'rulebook__dnd_edition', 'school').all() paginator = DndPaginator(spell_list, request) return render_to_response( 'dnd/spells/spell_domain_detail.html', { 'spell_domain': spell_domain, 'spell_list': paginator.items(), 'paginator': paginator, 'request': request, 'i_like_it_url': request.build_absolute_uri(), 'inaccurate_url': request.build_absolute_uri(), 'selected_variant': selected_variant, 'other_variants': other_variants, 'use_canonical_link': use_canonical_link, 'display_3e_warning': display_3e_warning, }, context_instance=RequestContext(request), )