Esempio n. 1
0
 def testAvailableCharacters(self):
     """
     Tests that the Quest object has a static method that can
     return available characters for a user
     """
     self.assertEqual(len(Character.available_characters_by_user(self.test_member)), 2)
     self.assertEqual(len(Character.available_characters_by_user(self.test_admin)), 1)
Esempio n. 2
0
def create_quest(request, town_slug):
    """
    View that allows members to create a quest
    """
    town = get_object_or_404(Town, slug=town_slug)
    queryset = Character.available_characters_by_user(request.user)
    
    if len(queryset) < 1:
        return handle_error(request,
                            u'You do not have any available characters.',
                            town.get_absolute_url())
    
    if request.method == 'POST':
        form = CreateQuestForm(request.POST,
                               queryset=queryset)
        if form.is_valid():
            quest = form.save(commit=False)
            quest.is_open = True
            quest.town = town
            quest.save()
            quest.set_initial_member(form.cleaned_data['character'])
            return HttpResponseRedirect(quest.get_absolute_url())
    else:
        form = CreateQuestForm(queryset=queryset)
    context = { 'form' : form }
    return render_to_response("game/create-quest.html", 
                              context,
                              RequestContext(request))
Esempio n. 3
0
def join_quest(request, town_slug, quest_slug):
    """
    View that allows members to join quests
    """
    quest = get_object_or_404(Quest, slug=quest_slug, town__slug=town_slug)
    qs = Character.available_characters_by_user(request.user)
    
    if request.method == 'POST':
        form = QuestForm(request.POST, queryset=qs)
        if form.is_valid():
            quest.add_character(form.cleaned_data['character'])
            return HttpResponseRedirect(quest.get_absolute_url())
    else:
        form = QuestForm(queryset=qs)
    context = { 'form' : form }
    return render_to_response("game/join-quest.html", 
                              context,
                              RequestContext(request))
Esempio n. 4
0
 def testCanLoadCharactersByUser(self):
     """
     Ensures the static method correctly gets all characters for a user
     """
     self.assertEqual(len(Character.approved_characters_by_user(self.test_member)), 2)