예제 #1
0
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,
    )
예제 #2
0
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:
예제 #3
0
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})
예제 #4
0
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)