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 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 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 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 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)