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
|
||||
|
||||
@@ -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 "заведение"
|
||||
|
||||
@@ -41,6 +41,7 @@ INSTALLED_APPS = [
|
||||
"django.contrib.sessions",
|
||||
"django.contrib.messages",
|
||||
"django.contrib.staticfiles",
|
||||
"django.contrib.gis",
|
||||
"rest_framework",
|
||||
"rest_framework_gis",
|
||||
"corsheaders",
|
||||
|
||||
@@ -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")),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user