def get(self, request): """Return a form for creating a campaign.""" form_data = request.session.pop('form_data', None) if form_data is None: form = forms.CampaignForm() else: form = forms.CampaignForm(json.loads(form_data)) return render( request, 'gurps_manager/campaign_templates/campaign-create-form.html', {'form': form})
def test_valid(self): """Create a valid CampaignForm.""" form = forms.CampaignForm({ 'name': factories.campaign_name(), 'owner': factories.UserFactory.create().id }) self.assertTrue(form.is_valid())
def get(self, request, campaign_id): """Return a form for updating campaign ``campaign_id``.""" campaign = _get_model_object_or_404(models.Campaign, campaign_id) if not _user_owns_campaign(request.user, campaign): return http.HttpResponseForbidden( 'Error: you do not own this campaign.') form_data = request.session.pop('form_data', None) if form_data is None: form = forms.CampaignForm(instance=campaign) else: form = forms.CampaignForm(json.loads(form_data)) return render( request, 'gurps_manager/campaign_templates/campaign-id-update-form.html', { 'campaign': campaign, 'form': form })
def test_has_description(self): """Create a CampaignForm and set ``description``.""" form = forms.CampaignForm({ 'name': factories.campaign_name(), 'description': factories.campaign_description(), 'owner': factories.UserFactory.create().id, }) self.assertTrue(form.is_valid())
def post(self, request): """Create a new item. If creation succeeds, rediret user to ``CampaignId`` view. Otherwise, redirect user to ``CampaignCreateForm`` view. """ form = forms.CampaignForm(request.POST) if form.is_valid(): new_campaign = form.save() return http.HttpResponseRedirect( reverse('gurps-manager-campaign-id', args=[new_campaign.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-campaign-create-form'))
def put(self, request, campaign_id): """Update campaign ``campaign_id``. If update suceeds, redirect user to ``CampaignId`` view. Otherwise, redirect user to ``CampaignIdUpdateForm`` view. """ campaign = _get_model_object_or_404(models.Campaign, campaign_id) if not _user_owns_campaign(request.user, campaign): return http.HttpResponseForbidden( 'Error: you do not own this campaign.') form = forms.CampaignForm(request.POST, instance=campaign) if form.is_valid(): form.save() return http.HttpResponseRedirect( reverse('gurps-manager-campaign-id', args=[campaign_id])) else: request.session['form_data'] = json.dumps(form.data) return http.HttpResponseRedirect( reverse('gurps-manager-campaign-id-update-form', args=[campaign_id]))
def test_missing_name(self): """Create a CampaignForm without setting ``name``.""" form = forms.CampaignForm({}) self.assertFalse(form.is_valid())