Example #1
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})
Example #2
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,
    )
Example #3
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:
Example #4
0
    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
Example #5
0
    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
Example #6
0
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)
Example #7
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)
Example #8
0
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)
Example #9
0
 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)
Example #10
0
 def test_title_field_label(self):
     form = TripForm()
     self.assertEqual(form.fields['title'].label, 'Trip Title')
Example #11
0
 def test_form_id(self):
     form = TripForm()
     self.assertEqual(form.helper.form_id, 'id-TripForm')
Example #12
0
 def test_number_nights_field_label(self):
     form = TripForm()
     self.assertEqual(form.fields['start_date'].label, 'Start date')
Example #13
0
 def test_form_class(self):
     form = TripForm()
     self.assertEqual(form.helper.form_class, 'trip_forms')
Example #14
0
 def test_form_method(self):
     form = TripForm()
     self.assertEqual(form.helper.form_method, 'post')
Example #15
0
 def test_form_action(self):
     form = TripForm()
     self.assertEqual(form.helper.form_action, '')
Example #16
0
 def test_form_field_class(self):
     form = TripForm()
     self.assertEqual(form.helper.field_class, 'col-md-9')
Example #17
0
 def test_number_nights_field_label(self):
     form = TripForm()
     self.assertEqual(form.fields['number_nights'].label, 'Number')