JourneyJoker/auction/views.py

36 lines
1.2 KiB
Python
Raw Normal View History

from django.views.generic import CreateView
from django.shortcuts import redirect
from django.contrib import messages
from django.urls import reverse
2021-04-08 09:33:00 +00:00
from django.contrib.gis.geos import Point
2021-03-01 09:58:08 +00:00
from public.mixins import InConstructionMixin
from .models import Inquiry
2021-04-08 09:32:09 +00:00
from .helpers import name_to_coords
class InquiryCreateView(InConstructionMixin, CreateView):
model = Inquiry
fields = ["destination_name", "destination_coords", "budget", "arrival", "min_nights", "adults", "children"]
def get(self, request, *args, **kwargs):
return redirect("/")
def form_invalid(self, form, *args, **kwargs):
for field in form:
for error in field.errors:
messages.error(self.request, f"{field.name}: {error}")
return redirect("/")
def get_success_url(self):
return reverse("auction:process_inquiry", args=(self.object.id))
def clean_destination_coords(self):
lat = self.data.get("destination_lat", "")
lon = self.data.get("destination_lon", "")
if (not lat) or (not lon):
2021-04-08 09:32:09 +00:00
lat, lon = name_to_coords(self.cleaned_data.get("destination_name"))
return Point(lon, lat)