Beispiel #1
0
 def get_handler():
     """Return a form for creating an item."""
     form_data = request.session.pop('form_data', None)
     if form_data is None:
         form = forms.ItemForm()
     else:
         form = forms.ItemForm(json.loads(form_data))
     return render(request, 'elts/item-create-form.html', {'form': form})
Beispiel #2
0
 def get_handler():
     """Return a form for updating item ``item_id_``."""
     form_data = request.session.pop('form_data', None)
     if form_data is None:
         form = forms.ItemForm(instance = item_)
     else:
         form = forms.ItemForm(json.loads(form_data))
     return render(
         request,
         'elts/item-id-update-form.html',
         {'item': item_, 'form': form}
     )
Beispiel #3
0
 def test_has_tags(self):
     """Create an ItemForm and set ``tags``."""
     form = forms.ItemForm({
         'name': factories.item_name(),
         'tags': [tag.id for tag in factories.item_tags()],
     })
     self.assertTrue(form.is_valid())
Beispiel #4
0
 def test_has_is_lendable(self):
     """Create an ItemForm and set ``is_lendable``."""
     form = forms.ItemForm({
         'name': factories.item_name(),
         'is_lendable': factories.item_is_lendable(),
     })
     self.assertTrue(form.is_valid())
Beispiel #5
0
 def test_has_description(self):
     """Create an ItemForm and set ``description``."""
     form = forms.ItemForm({
         'name': factories.item_name(),
         'description': factories.item_description(),
     })
     self.assertTrue(form.is_valid())
Beispiel #6
0
    def put_handler():
        """Update item ``item_id_``.

        If update succeeds, redirect user to ``item_id`` view. Otherwise,
        redirect user to ``item_id_update_form``.

        """
        form = forms.ItemForm(request.POST, instance = item_)
        if form.is_valid():
            form.save()
            return http.HttpResponseRedirect(
                reverse('elts.views.item_id', args = [item_id_])
            )
        else:
            request.session['form_data'] = json.dumps(form.data)
            return http.HttpResponseRedirect(
                reverse('elts.views.item_id_update_form', args = [item_id_])
            )
Beispiel #7
0
    def post_handler():
        """Create a new item.

        If creation succeeds, redirect user to ``item_id`` view. Otherwise,
        redirect user to ``item_create_form`` view.

        """
        form = forms.ItemForm(request.POST)
        if form.is_valid():
            new_item = form.save()
            return http.HttpResponseRedirect(
                reverse('elts.views.item_id', args = [new_item.id])
            )
        else:
            # Put ``form`` into session for retreival by ``item_create_form``.
            request.session['form_data'] = json.dumps(form.data)
            return http.HttpResponseRedirect(
                reverse('elts.views.item_create_form')
            )
Beispiel #8
0
 def test_missing_name(self):
     """Create an ItemForm without setting ``name``."""
     form = forms.ItemForm({})
     self.assertFalse(form.is_valid())
Beispiel #9
0
 def test_valid(self):
     """Create a valid ItemForm."""
     form = forms.ItemForm({'name': factories.item_name()})
     self.assertTrue(form.is_valid())