Добавлен базовый фронтенд

This commit is contained in:
2022-09-10 07:29:29 +03:00
parent 0b1c16b24f
commit c58061a63b
23 changed files with 20276 additions and 25 deletions

View File

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

View File

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

View 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

View File

@@ -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:

View File

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

View File

@@ -6,6 +6,6 @@ app_name = "facilities"
router = routers.DefaultRouter()
router.register("facilities", FacilityViewSet, "facilities")
router.register("", FacilityViewSet, "facilities")
urlpatterns = router.urls

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-09-10 03:41+0300\n"
"POT-Creation-Date: 2022-09-10 07:27+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,14 +19,26 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
"%100>=11 && n%100<=14)? 2 : 3);\n"
#: facilities/apps.py:8
msgid "Facilities"
msgstr "Заведения"
#: facilities/models.py:16
msgid "facility"
msgstr "заведение"
#: facilities/models.py:17
#: facilities/apps.py:8 facilities/models.py:16
msgid "facilities"
msgstr "заведения"
#: facilities/models.py:7
msgid "name"
msgstr "название"
#: facilities/models.py:8
msgid "address"
msgstr "адрес"
#: facilities/models.py:9
msgid "city"
msgstr "город"
#: facilities/models.py:11
msgid "location"
msgstr "местоположение"
#: facilities/models.py:15
msgid "facility"
msgstr "заведение"

View File

@@ -41,6 +41,7 @@ INSTALLED_APPS = [
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"django.contrib.gis",
"rest_framework",
"rest_framework_gis",
"corsheaders",

View File

@@ -19,5 +19,5 @@ from django.urls import include
urlpatterns = [
path("admin/", admin.site.urls),
path("api/", include("facilities.urls")),
path("api/facilities", include("facilities.urls")),
]