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} )
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} )
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]) )
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_] ) )
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())
def test_missing_note_text(self): """Create an ItemNoteForm without setting ``note_text``.""" form = forms.ItemNoteForm({}) self.assertFalse(form.is_valid())
def test_valid(self): """Create a valid ItemNoteForm.""" form = forms.ItemNoteForm({'note_text': factories.note_note_text()}) self.assertTrue(form.is_valid())