You've already forked WhereToGoRedux
mirror of
https://github.com/Llloooggg/WhereToGoRedux.git
synced 2026-03-06 04:56:23 +03:00
Добавлен базовый фронтенд
This commit is contained in:
@@ -1,13 +1,12 @@
|
||||
from django.contrib.gis.db import models
|
||||
from django.forms.widgets import Textarea
|
||||
from django.contrib import admin
|
||||
|
||||
|
||||
from facilities.models import Facility
|
||||
|
||||
from facilities.forms import FacilityLocationForm
|
||||
|
||||
|
||||
class FacilityAdmin(admin.ModelAdmin):
|
||||
formfield_overrides = {models.PointField: {"widget": Textarea}}
|
||||
form = FacilityLocationForm
|
||||
|
||||
|
||||
admin.site.register(Facility, FacilityAdmin)
|
||||
|
||||
@@ -5,4 +5,4 @@ from django.utils.translation import gettext_lazy as _
|
||||
class FacilitiesConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "facilities"
|
||||
verbose_name = _("Facilities")
|
||||
verbose_name = _("facilities")
|
||||
|
||||
40
backend/wheretogo/facilities/forms.py
Normal file
40
backend/wheretogo/facilities/forms.py
Normal file
@@ -0,0 +1,40 @@
|
||||
from django import forms
|
||||
from django.contrib.gis.geos import Point
|
||||
|
||||
from facilities.models import Facility
|
||||
|
||||
|
||||
class FacilityLocationForm(forms.ModelForm):
|
||||
|
||||
latitude = forms.FloatField(
|
||||
min_value=-90,
|
||||
max_value=90,
|
||||
required=True,
|
||||
)
|
||||
longitude = forms.FloatField(
|
||||
min_value=-180,
|
||||
max_value=180,
|
||||
required=True,
|
||||
)
|
||||
|
||||
class Meta(object):
|
||||
model = Facility
|
||||
exclude = []
|
||||
widgets = {"location": forms.HiddenInput()}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
coordinates = self.initial.get("location", None)
|
||||
if coordinates:
|
||||
(
|
||||
self.initial["longitude"],
|
||||
self.initial["latitude"],
|
||||
) = coordinates.tuple
|
||||
|
||||
def clean(self):
|
||||
data = super().clean()
|
||||
longitude = data.get("longitude")
|
||||
latitude = data.get("latitude")
|
||||
if latitude and longitude:
|
||||
data["location"] = Point(longitude, latitude)
|
||||
return data
|
||||
@@ -4,12 +4,11 @@ from django.db import models
|
||||
|
||||
|
||||
class Facility(models.Model):
|
||||
name = models.CharField(max_length=200)
|
||||
address = models.CharField(max_length=100)
|
||||
city = models.CharField(max_length=50)
|
||||
name = models.CharField(max_length=200, verbose_name=_("name"))
|
||||
address = models.CharField(max_length=100, verbose_name=_("address"))
|
||||
city = models.CharField(max_length=50, verbose_name=_("city"))
|
||||
location = gis_models.PointField(
|
||||
null=True,
|
||||
blank=True,
|
||||
null=True, blank=True, verbose_name=_("location")
|
||||
)
|
||||
|
||||
class Meta:
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
from rest_framework_gis import serializers
|
||||
from rest_framework.serializers import ModelSerializer
|
||||
|
||||
from facilities.models import Facility
|
||||
|
||||
|
||||
class FacilitySerializer(serializers.GeoFeatureModelSerializer):
|
||||
class FacilitySerializer(ModelSerializer):
|
||||
class Meta:
|
||||
model = Facility
|
||||
fields = ("id", "name", "address", "city")
|
||||
geo_field = "location"
|
||||
fields = ("id", "name", "address", "city")
|
||||
|
||||
@@ -6,6 +6,6 @@ app_name = "facilities"
|
||||
|
||||
|
||||
router = routers.DefaultRouter()
|
||||
router.register("facilities", FacilityViewSet, "facilities")
|
||||
router.register("", FacilityViewSet, "facilities")
|
||||
|
||||
urlpatterns = router.urls
|
||||
|
||||
Reference in New Issue
Block a user