def display_crossover_sheet(request, slug=None): if request.is_ajax: chronicle = get_current_chronicle() if slug is None: slug = 'julius_von_blow' c = Creature.objects.get(rid=slug) if chronicle.acronym == 'BAV': scenario = "Bayerische Nächte" pre_title = 'Munich' post_title = "Oktoberfest, 2019" else: pre_title = 'World of Darkness' scenario = "NEW YORK CITY" post_title = "feat. Julius Von Blow" spe = c.get_specialities() shc = c.get_shortcuts() settings = { 'version': 1.0, 'labels': STATS_NAMES[c.creature], 'pre_title': pre_title, 'scenario': scenario, 'post_title': post_title, 'fontset': FONTSET, 'specialities': spe, 'shortcuts': shc } crossover_sheet_context = { 'settings': json.dumps(settings, sort_keys=True, indent=4), 'data': c.toJSON() } return JsonResponse(crossover_sheet_context)
def update_creature(sender, instance, **kwargs): if instance.name == '': chronicle = get_current_chronicle() instance.name = 'new ' + datetime.timestamp() instance.chronicle == chronicle.acronym instance.update_rid() if instance.need_fix: instance.fix()
def add_creature(request): if request.is_ajax: slug = request.POST['creature'] chronicle = get_current_chronicle() item = Creature() item.name = " ".join(slug.split("-")) item.chronicle = chronicle.acronym item.creature = chronicle.main_creature item.source = 'zaffarelli' item.ghost = False item.need_fix = True item.save() context = {'answer': 'creature added'} return JsonResponse(context) else: return HttpResponse(status=204)
def build_gaia_wheel(): chronicle = get_current_chronicle() creatures = Creature.objects.filter(chronicle=chronicle.acronym).exclude( mythic=True).exclude(ghost=True).order_by('-faction', 'display_pole') for creature in creatures: creature.need_fix = True creature.save() wyrm_list = [] weaver_list = [] wyld_list = [] for c in creatures: creature_dict = { 'name': c.name, 'player': c.player, 'creature': c.creature, 'family': c.family, 'group': c.group, 'groupspec': c.groupspec, 'display_gauge': c.display_gauge, 'display_pole': c.display_pole, 'freebies': c.freebies, 'auspice': c.auspice, 'breed': c.breed, 'rank': c.rank, 'rid': c.rid, 'position': c.position, 'status': c.status } if (c.faction == 'Camarilla') or (c.faction == 'Sabbat') or ( c.faction == 'Independant') or (c.faction == 'Anarchs') or ( c.faction == 'Inconnu') or (c.faction == 'Pentex'): wyrm_list.append(creature_dict) elif (c.faction == 'Gaia'): wyld_list.append(creature_dict) else: weaver_list.append(creature_dict) d3js_data = {'weaver': weaver_list, 'wyrm': wyrm_list, 'wyld': wyld_list} all = json.dumps(d3js_data, indent=4, sort_keys=False) return all
def commons(request): chronicle = wod_reference.get_current_chronicle() context = { 'chronicle': chronicle.acronym,'chronicle_name':chronicle.name,'chronicle_logo': "collector/"+chronicle.image_logo} return context
from django.http import HttpResponse, Http404, JsonResponse from django.shortcuts import render, get_object_or_404 from collector.models.creatures import Creature from django.core.paginator import Paginator from django.template.loader import get_template from django.views.decorators.csrf import csrf_exempt from collector.templatetags.wod_filters import as_bullets from collector.utils.kindred_stuff import build_per_primogen, build_gaia_wheel from collector.utils.wod_reference import get_current_chronicle from collector.models.chronicles import Chronicle from collector.utils.wod_reference import STATS_NAMES import json from collector.utils.wod_reference import FONTSET chronicle = get_current_chronicle() def prepare_index(request): chronicles = [] players = [] plist = Creature.objects.filter(chronicle=chronicle.acronym).exclude( player='') for p in plist: players.append({'name': p.name, 'rid': p.rid, 'player': p.player}) print(players) for c in Chronicle.objects.all(): chronicles.append({ 'name': c.name, 'acronym': c.acronym, 'active': c == chronicle })
def build_per_primogen(param=None): chronicle = get_current_chronicle() cainites = create_mythics() if param is None: kindreds = Creature.objects.filter( creature='kindred', ghost=False, mythic=False, chronicle=chronicle.acronym).order_by('family') else: kindreds = Creature.objects.filter( creature='kindred', faction=param, ghost=False, mythic=False, chronicle=chronicle.acronym).order_by('family') # Improvise empty sires for kindred in kindreds: gen = 13 - kindred.background3 k = kindred.json_str() if kindred.sire == '': k['sire'] = f'temporary_{improvise_id()}_{gen-1}_{k["name"]}_{k["clan"]}' else: k['sire'] = kindred.sire cainites[f'{gen}'].append(k) # Try to fill empty lineages for gen in range(13, 0, -1): for k in cainites[f'{gen}']: if gen > 1: if k['sire'].startswith('temporary_'): sire = None for item in cainites[f'{gen-1}']: if item.get('sire') == k['sire']: sire = item if sire is None: words = k["sire"].split('_') sire = blank_str(words[1], words[2], "TBD", words[4]) sire['children'].append(k) k['sire'] = sire['name'] cainites[f'{gen-1}'].append(sire) else: if k["sire"] == "TBD": # We need here to find a matchingsire according to clan found = None for s in cainites[f'{gen-1}']: if s["family"] == k["family"]: k["sire"] = s["name"] s["children"].append(k) found = s break if found is None: sire = blank_str(improvise_id(), gen - 1, "TBD", k['clan']) sire['children'].append(k) k['sire'] = sire['name'] cainites[f'{gen - 1}'].append(sire) else: sire = None for item in cainites[f'{gen-1}']: if item['name'] == k["sire"]: sire = item sire['children'].append(k) if sire is None: sire = blank_str(k['sire'], gen - 1, "TBD", k['clan']) sire['children'].append(k) k['sire'] = sire['name'] cainites[f'{gen - 1}'].append(sire) str = json.dumps(cainites['1'], indent=4, sort_keys=False) print(str) return str
def test_creature_default_chronicle(self): chronicle = get_current_chronicle() c = BlankCreatureFactory.build() self.assertTrue(c.chronicle == chronicle.acronym)