예제 #1
0
 def get_handler():
     """Return information about item ``item_id_``."""
     form_data = request.session.pop('form_data', None)
     if form_data is None:
         form = forms.ItemNoteForm()
     else:
         form = forms.ItemNoteForm(json.loads(form_data))
     return render(
         request,
         'elts/item-id.html',
         {'item': item_, 'form': form}
     )
예제 #2
0
 def get_handler():
     """Return a form for updating item note ``item_note_id_``."""
     form_data = request.session.pop('form_data', None)
     if form_data is None:
         form = forms.ItemNoteForm(instance = item_note_)
     else:
         form = forms.ItemNoteForm(json.loads(form_data))
     return render(
         request,
         'elts/item-note-id-update-form.html',
         {'item_note': item_note_, 'form': form}
     )
예제 #3
0
    def post_handler():
        """Create a new item note.

        Redirect user to ``item_id`` view after handling request.

        """
        # For which item is this note being created?
        try:
            item_ = models.Item.objects.get(
                id = request.POST.get('item_id', None)
            )
        except models.Item.DoesNotExist:
            return http.HttpResponse(status = 422)

        # Get note text and, if valid, save the note.
        form = forms.ItemNoteForm(request.POST)
        if form.is_valid():
            models.ItemNote(
                note_text = form.cleaned_data['note_text'],
                author_id = request.user,
                item_id = item_,
            ).save()
        else:
            request.session['form_data'] = json.dumps(form.data)

        # Return the user to this page whether or not the note was saved.
        return http.HttpResponseRedirect(
            reverse('elts.views.item_id', args = [item_.id])
        )
예제 #4
0
    def put_handler():
        """Update item note ``item_note_id_``.

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

        """
        form = forms.ItemNoteForm(request.POST, instance = item_note_)
        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_note_id_update_form',
                    args = [item_note_id_]
                )
            )
예제 #5
0
 def test_invalid_note_text(self):
     """Create an ItemNoteForm and set an invalid note_text.``"""
     form = forms.ItemNoteForm({
         'note_text': factories.invalid_note_note_text()
     })
     self.assertFalse(form.is_valid())
예제 #6
0
 def test_missing_note_text(self):
     """Create an ItemNoteForm without setting ``note_text``."""
     form = forms.ItemNoteForm({})
     self.assertFalse(form.is_valid())
예제 #7
0
 def test_valid(self):
     """Create a valid ItemNoteForm."""
     form = forms.ItemNoteForm({'note_text': factories.note_note_text()})
     self.assertTrue(form.is_valid())