def add_trip(request): # A HTTP POST? if request.method == 'POST': form = TripForm(request.POST) # Have we been provided with a valid form? if form.is_valid(): # Save the new category to the database. trip = form.save(commit=False) trip.user = request.user # The logged-in user trip.lat_lng = trip.country trip.save() # Now call the index() view. # The user will be shown the homepage. return my_trips(request) else: # The supplied form contained errors - just print them to the terminal. print(form.errors) else: # If the request was not a POST, display the form to enter details. form = TripForm() # Bad form (or form details), no form supplied... # Render the form with error messages (if any). return render(request, 'trips/add_trip.html', {'form': form})
def create(request): """ Create a new trip """ form = TripForm(request.POST, auto_id="%s", prefix="TripForm") if form.is_valid(): form.save() if request.is_ajax(): template_format = "json" mimetype = "application/json" if form.errors: errors = simplejson.dumps(form.errors, cls=LazyEncoder, ensure_ascii=False) else: errors = None else: template_format = "html" mimetype = "text/html; charset=utf-8" errors = form.errors return render_to_response( "trips/create.%s" % template_format, {"errors": errors}, context_instance=RequestContext(request), mimetype=mimetype, )
def edit(request, tripid): context = RequestContext(request) user = request.user try: trip = Trip.objects.get(pk=tripid) if trip.owner != user: messages.error(request, _('You have not permission to edit foreign trip.')) return HttpResponseRedirect(reverse('trips:index')) if request.method == 'POST': trip_form = TripForm(data=request.POST, instance=trip) if trip_form.is_valid(): trip = trip_form.save(commit=False) if 'gpx_log' in request.FILES: trip.gpx_log = request.FILES['gpx_log'] try: trip.save() messages.success(request, _('Successfully edited trip ') + trip.title) #trip_form = TripForm(instance=trip) #for refreshing gpx log return HttpResponseRedirect(reverse('trips:view', args=(tripid,))) except ValidationError, e: messages.error(request, e.message) trip = Trip.objects.get(pk=tripid) else: messages.error(request, trip_form.errors) else:
def create_form(self, data=None, instance=None, user=None): trip_dict = to_dict(self.trip) if data: for k, v in data.iteritems(): trip_dict[k] = v instance = instance if instance else self.trip form = TripForm(data=trip_dict, instance=instance) form.request = SimpleObject() form.request.user = user if user else self.trip.owner return form
def trips_add(request): context = {'active':'trips'} if request.method == 'POST': trip_form = TripForm(request.POST) if trip_form.is_valid(): season = get_current_season() trip = Trip(season=season, **trip_form.cleaned_data) trip.save() return redirect('trips_view', trip_id = trip.id) else: context['add_trip_form'] = trip_form else: context['add_trip_form'] = TripForm() return render(request, 'trips/trips_add.html', context)
def create(request): context = RequestContext(request) if request.method == 'POST': trip_form = TripForm(data=request.POST) if trip_form.is_valid(): trip = trip_form.save(commit=False) user = request.user trip.owner = user if 'gpx_log' in request.FILES: trip.gpx_log = request.FILES['gpx_log'] try: trip.save() messages.success(request, _('Successfully created trip ') + trip.title) return HttpResponseRedirect(reverse('trips:index')) except ValidationError, e: messages.error(request, e.message) else: messages.error(request, trip_form.errors)
def trips_edit(request, trip_id=None): context = {'active':'trips'} trip = get_object_or_404(Trip, pk=int(trip_id)) context['trip'] = trip if request.method == 'POST': trip_form = TripForm(request.POST) if trip_form.is_valid(): for k,v in trip_form.cleaned_data.items(): trip.__dict__[k] = v trip.save() return redirect('trips_view', trip_id = trip.id) else: context['edit_trip_form'] = trip_form else: context['edit_trip_form'] = TripForm(instance=trip) return render(request, 'trips/trips_edit.html', context)
def test_submit_cancel_form_actions(self): """ Test the existence of submit/cancel buttons """ template = engines['django'].from_string(""" {% load crispy_forms_tags %} {% crispy form %} """) form = TripForm() context = {'form': form, 'cancel_button_path': 'trips:trip_list'} html = template.render(context) self.assertEqual(html.count('input type="submit"'), 1) self.assertEqual(html.count('name="cancel">Cancel</a>'), 1)
def test_title_field_label(self): form = TripForm() self.assertEqual(form.fields['title'].label, 'Trip Title')
def test_form_id(self): form = TripForm() self.assertEqual(form.helper.form_id, 'id-TripForm')
def test_number_nights_field_label(self): form = TripForm() self.assertEqual(form.fields['start_date'].label, 'Start date')
def test_form_class(self): form = TripForm() self.assertEqual(form.helper.form_class, 'trip_forms')
def test_form_method(self): form = TripForm() self.assertEqual(form.helper.form_method, 'post')
def test_form_action(self): form = TripForm() self.assertEqual(form.helper.form_action, '')
def test_form_field_class(self): form = TripForm() self.assertEqual(form.helper.field_class, 'col-md-9')
def test_number_nights_field_label(self): form = TripForm() self.assertEqual(form.fields['number_nights'].label, 'Number')