Exemple #1
0
 def get(self, request):
     """Return a form for creating a character."""
     form_data = request.session.pop('form_data', None)
     if form_data is None:
         form = forms.CharacterForm()
     else:
         form = forms.CharacterForm(json.loads(form_data))
     return render(
         request,
         'gurps_manager/character_templates/character-create-form.html',
         {'form': form})
Exemple #2
0
    def put(self, request, character_id):
        """Update character ``character_id``.

        If update suceeds, redirect user to ``CharacterId`` view. Otherwise,
        redirect user to ``CharacterIdUpdateForm`` view.

        """
        # Does the requested character exist, and is the user authorized to
        # update this character?
        character = _get_model_object_or_404(models.Character, character_id)
        if not _user_owns_character(request.user, character):
            return http.HttpResponseForbidden(
                'Error: you do not own this character.')

        # Attempt to save changes. Reply.
        form = forms.CharacterForm(request.POST, instance=character)
        if form.is_valid():
            form.save()
            return http.HttpResponseRedirect(
                reverse('gurps-manager-character-id', args=[character_id]))
        else:
            request.session['form_data'] = json.dumps(form.data)
            return http.HttpResponseRedirect(
                reverse('gurps-manager-character-id-update-form',
                        args=[character_id]))
Exemple #3
0
    def get(self, request, character_id):
        """Return a form for updating character ``character_id``."""
        # Does the requested character exist, and is the user authorized to
        # update this character?
        character = _get_model_object_or_404(models.Character, character_id)
        if not _user_owns_character(request.user, character):
            return http.HttpResponseForbidden(
                'Error: you do not own this character.')

        # Populate and return an update form.
        form_data = request.session.pop('form_data', None)
        if form_data is None:
            form = forms.CharacterForm(instance=character)
        else:
            form = forms.CharacterForm(json.loads(form_data))
        return render(
            request,
            'gurps_manager/character_templates/character-id-update-form.html',
            {
                'character': character,
                'form': form
            })
Exemple #4
0
    def post(self, request):
        """Create a new item.

        If creation succeeds, rediret user to ``CharacterId`` view. Otherwise,
        redirect user to ``CharacterCreateForm`` view.

        """
        form = forms.CharacterForm(request.POST)
        if form.is_valid():
            new_character = form.save()
            return http.HttpResponseRedirect(
                reverse('gurps-manager-character-id', args=[new_character.id]))
        else:
            # Put form data into session. Destination view will use it.
            request.session['form_data'] = json.dumps(form.data)
            return http.HttpResponseRedirect(
                reverse('gurps-manager-character-create-form'))
 def test_has_description(self):
     """Create a CharacterForm and set ``description``."""
     attributes = self._character_attributes()
     attributes['description'] = factories.character_description()
     form = forms.CharacterForm(attributes)
     self.assertTrue(form.is_valid())
 def test_missing_used_fatigue(self):
     """Create a CharacterForm without setting ``used_fatigue``."""
     attributes = self._character_attributes()
     del attributes['used_fatigue']
     form = forms.CharacterForm(attributes)
     self.assertFalse(form.is_valid())
 def test_valid(self):
     """Create a valid CharacterForm."""
     form = forms.CharacterForm(self._character_attributes())
     self.assertTrue(form.is_valid())
 def test_missing_free_health(self):
     """Create a CharacterForm without setting ``free_health``."""
     attributes = self._character_attributes()
     del attributes['free_health']
     form = forms.CharacterForm(attributes)
     self.assertFalse(form.is_valid())
 def test_missing_total_points(self):
     """Create a CharacterForm without setting ``total_points``."""
     attributes = self._character_attributes()
     del attributes['total_points']
     form = forms.CharacterForm(attributes)
     self.assertFalse(form.is_valid())
Exemple #10
0
 def test_missing_muscle_memory(self):
     """Create a CharacterForm without setting ``muscle_memory``."""
     attributes = self._character_attributes()
     del attributes['muscle_memory']
     form = forms.CharacterForm(attributes)
     self.assertFalse(form.is_valid())
Exemple #11
0
 def test_missing_bonus_initiative(self):
     """Create a CharacterForm without setting ``bonus_initiative``."""
     attributes = self._character_attributes()
     del attributes['bonus_initiative']
     form = forms.CharacterForm(attributes)
     self.assertFalse(form.is_valid())
Exemple #12
0
 def test_missing_appearance(self):
     """Create a CharacterForm without setting ``appearance``."""
     attributes = self._character_attributes()
     del attributes['appearance']
     form = forms.CharacterForm(attributes)
     self.assertFalse(form.is_valid())
Exemple #13
0
 def test_missing_dexterity(self):
     """Create a CharacterForm without setting ``dexterity``."""
     attributes = self._character_attributes()
     del attributes['dexterity']
     form = forms.CharacterForm(attributes)
     self.assertFalse(form.is_valid())
Exemple #14
0
 def test_missing_campaign(self):
     """Create a CharacterForm without setting ``campaign``."""
     attributes = self._character_attributes()
     del attributes['campaign']
     form = forms.CharacterForm(attributes)
     self.assertFalse(form.is_valid())
Exemple #15
0
 def test_missing_everything(self):
     """Create a CharacterForm and set no fields."""
     form = forms.CharacterForm({})
     self.assertFalse(form.is_valid())
Exemple #16
0
 def test_has_story(self):
     """Create a CharacterForm and set ``story``."""
     attributes = self._character_attributes()
     attributes['story'] = factories.character_story()
     form = forms.CharacterForm(attributes)
     self.assertTrue(form.is_valid())