from django.http import HttpResponse from django.template import loader from map import map_generator from map import map_renderer from map.map_renderer import RenderedMap from map.quest_map import QuestMap def _ordinal(level): return {1: '1st', 2: '2nd', 3: '3rd', 4: '4th', 5: '5th'}[level] def index(request): level = int(request.GET.get('level', 1)) if level not in range(1, 5 + 1): raise Exception(f'Level should be in range [1, 5] but was {level}') quest_map: QuestMap = map_generator.generate_map(level) rendered_map: RenderedMap = map_renderer.render_map(quest_map) template = loader.get_template('map/index.html') context = {'level_ordinal': _ordinal(level), 'map': rendered_map} return HttpResponse(template.render(context, request))