Exemplo n.º 1
0
def tables_quest_all(request, quest_id):
    quest = get_object_or_404(Quest, pk=quest_id, type=Quest.LINEAR, parent__isnull=True)
    request = is_quest_organizer_or_agent(request, quest)
    players = quest.players()
    missions = quest.missions().exclude(is_finish=True)
    keylogs = Keylog.right_keylogs(missions)
    context = {'quest': quest, 'players': players, 'missions': missions, 'keylogs': keylogs}
    return render(request, 'coordination/quests/tables/all.html', context)
Exemplo n.º 2
0
def quest_missions(request, quest_id):
    quest = get_object_or_404(Quest, pk=quest_id, parent__isnull=True)
    if not quest.published:
        request = is_quest_organizer_or_agent(request, quest)
    if quest.multilinear:
        return redirect('coordination:quest_lines', quest_id=quest.id)
    missions = quest.missions()
    context = {'quest': quest, 'missions': missions}
    return render(request, 'coordination/missions/all.html', context)
Exemplo n.º 3
0
def quest_lines(request, quest_id):
    quest = get_object_or_404(Quest, pk=quest_id, type=Quest.MULTILINEAR)
    if not quest.published:
        request = is_quest_organizer_or_agent(request, quest)
    mission_start = quest.start_mission()
    mission_finish = quest.finish_mission()
    lines = quest.lines()
    context = {'quest': quest, 'mission_start': mission_start, 'mission_finish': mission_finish, 'lines': lines}
    return render(request, 'coordination/missions/lines.html', context)
Exemplo n.º 4
0
def picture_mission(request, mission_id):
    mission = get_object_or_404(Mission, pk=mission_id)
    if mission.picture:
        quest = mission.quest
        player = request.user
        can_user_view = quest.published and \
                        (quest.ended or (player.is_authenticated() and mission.is_completed(player))
                         or (player.is_authenticated() and mission.is_current(player)))
        if not can_user_view:
            request = is_quest_organizer_or_agent(request, quest)
        return sendfile(request, mission.picture.path)
    else:
        raise Http404
Exemplo n.º 5
0
def tables_quest(request, quest_id):
    quest = get_object_or_404(Quest, pk=quest_id, parent__isnull=True)
    if quest.nonlinear or quest.multilinear:
        request = is_quest_organizer_or_agent(request, quest)
        rest_quest = 0
        if quest.started:
            rest_quest = get_timedelta(quest.game_over)
        players = quest.players_ext()
        missions = quest.missions_ext()
        context = {'quest': quest, 'players': players, 'missions': missions, 'rest_quest': rest_quest}
        if quest.nonlinear:
            return render(request, 'coordination/quests/tables/nonlinear.html', context)
        else:
            return render(request, 'coordination/quests/tables/multilinear.html', context)
    else:
        return redirect('coordination:quest_tables_current', quest_id=quest_id)
Exemplo n.º 6
0
def detail_mission(request, mission_id):
    mission = get_object_or_404(Mission, pk=mission_id)
    quest = mission.quest
    can_user_view = quest.published and \
                    (quest.ended or (request.user.is_authenticated() and mission.is_completed(request.user)))
    if not can_user_view:
        request = is_quest_organizer_or_agent(request, quest)
    hints = None
    hint_form = None
    if not mission.is_start and not mission.is_finish:
        hints = mission.hints()
        if request.method == 'POST':
            hint_form = HintForm(request.POST)
            if hint_form.is_valid():
                hint = hint_form.save(commit=False)
                hint.mission = mission
                hint.save()
                return redirect('coordination:mission_detail', mission_id=mission.id)
        else:
            hint_form = HintForm(next_number=mission.next_hint_number())
    context = {'quest': quest, 'mission': mission, 'hints': hints, 'hint_form': hint_form}
    return render(request, 'coordination/missions/detail.html', context)
Exemplo n.º 7
0
def tables_quest_current(request, quest_id):
    quest = get_object_or_404(Quest, pk=quest_id, type=Quest.LINEAR, parent__isnull=True)
    request = is_quest_organizer_or_agent(request, quest)
    current_missions = quest.current_missions()
    context = {'quest': quest, 'current_missions': current_missions}
    return render(request, 'coordination/quests/tables/current.html', context)