%global _empty_manifest_terminate_build 0 Name: python-django-google-maps Version: 0.13.0 Release: 1 Summary: Plugs google maps V3 api into Django admin. License: BSD License URL: https://github.com/madisona/django-google-maps Source0: https://mirrors.nju.edu.cn/pypi/web/packages/1f/b2/946e9d00b0d85dc27a62854e336856bddb285a7773f22360ca05a3999006/django-google-maps-0.13.0.tar.gz BuildArch: noarch Requires: python3-Django %description - include the ``django_google_maps`` app in your ``settings.py`` - Add your Google Maps API Key in your ``settings.py`` as ``GOOGLE_MAPS_API_KEY`` - create a model that has both an address field and geolocation field from django.db import models from django_google_maps import fields as map_fields class Rental(models.Model): address = map_fields.AddressField(max_length=200) geolocation = map_fields.GeoLocationField(max_length=100) - in the ``admin.py`` include the following as a formfield_override from django.contrib import admin from django_google_maps import widgets as map_widgets from django_google_maps import fields as map_fields class RentalAdmin(admin.ModelAdmin): formfield_overrides = { map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget}, } - To change the map type (``hybrid`` by default), you can add an html attribute on the ``AddressField`` widget. The list of allowed values is: ``hybrid``, ``roadmap``, ``satellite``, ``terrain`` from django.contrib import admin from django_google_maps import widgets as map_widgets from django_google_maps import fields as map_fields class RentalAdmin(admin.ModelAdmin): formfield_overrides = { map_fields.AddressField: { 'widget': map_widgets.GoogleMapsAddressWidget(attrs={'data-map-type': 'roadmap'})}, } - To change the autocomplete options, you can add an html attribute on the ``AddressField`` widget. See https://developers.google.com/maps/documentation/javascript/places-autocomplete#add_autocomplete for a list of available options import json from django.contrib import admin from django_google_maps import widgets as map_widgets from django_google_maps import fields as map_fields class RentalAdmin(admin.ModelAdmin): formfield_overrides = { map_fields.AddressField: { ‘widget’: map_widgets.GoogleMapsAddressWidget(attrs={ ‘data-autocomplete-options’: json.dumps({ ‘types’: [‘geocode’, ‘establishment’], ‘componentRestrictions’: { 'country': 'us' } }) }) }, } That should be all you need to get started. I also like to make the geolocation field readonly in the admin so a user (myself) doesn't accidentally change it to a nonsensical value. There is validation on the field so you can't enter an incorrect value, but you could enter something that is not even close to the address you intended. When you're displaying the address back to the user, just request the map using the geocoordinates that were saved in your model. Maybe sometime when I get around to it I'll see if I can create a method that will build that into the model. %package -n python3-django-google-maps Summary: Plugs google maps V3 api into Django admin. Provides: python-django-google-maps BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-django-google-maps - include the ``django_google_maps`` app in your ``settings.py`` - Add your Google Maps API Key in your ``settings.py`` as ``GOOGLE_MAPS_API_KEY`` - create a model that has both an address field and geolocation field from django.db import models from django_google_maps import fields as map_fields class Rental(models.Model): address = map_fields.AddressField(max_length=200) geolocation = map_fields.GeoLocationField(max_length=100) - in the ``admin.py`` include the following as a formfield_override from django.contrib import admin from django_google_maps import widgets as map_widgets from django_google_maps import fields as map_fields class RentalAdmin(admin.ModelAdmin): formfield_overrides = { map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget}, } - To change the map type (``hybrid`` by default), you can add an html attribute on the ``AddressField`` widget. The list of allowed values is: ``hybrid``, ``roadmap``, ``satellite``, ``terrain`` from django.contrib import admin from django_google_maps import widgets as map_widgets from django_google_maps import fields as map_fields class RentalAdmin(admin.ModelAdmin): formfield_overrides = { map_fields.AddressField: { 'widget': map_widgets.GoogleMapsAddressWidget(attrs={'data-map-type': 'roadmap'})}, } - To change the autocomplete options, you can add an html attribute on the ``AddressField`` widget. See https://developers.google.com/maps/documentation/javascript/places-autocomplete#add_autocomplete for a list of available options import json from django.contrib import admin from django_google_maps import widgets as map_widgets from django_google_maps import fields as map_fields class RentalAdmin(admin.ModelAdmin): formfield_overrides = { map_fields.AddressField: { ‘widget’: map_widgets.GoogleMapsAddressWidget(attrs={ ‘data-autocomplete-options’: json.dumps({ ‘types’: [‘geocode’, ‘establishment’], ‘componentRestrictions’: { 'country': 'us' } }) }) }, } That should be all you need to get started. I also like to make the geolocation field readonly in the admin so a user (myself) doesn't accidentally change it to a nonsensical value. There is validation on the field so you can't enter an incorrect value, but you could enter something that is not even close to the address you intended. When you're displaying the address back to the user, just request the map using the geocoordinates that were saved in your model. Maybe sometime when I get around to it I'll see if I can create a method that will build that into the model. %package help Summary: Development documents and examples for django-google-maps Provides: python3-django-google-maps-doc %description help - include the ``django_google_maps`` app in your ``settings.py`` - Add your Google Maps API Key in your ``settings.py`` as ``GOOGLE_MAPS_API_KEY`` - create a model that has both an address field and geolocation field from django.db import models from django_google_maps import fields as map_fields class Rental(models.Model): address = map_fields.AddressField(max_length=200) geolocation = map_fields.GeoLocationField(max_length=100) - in the ``admin.py`` include the following as a formfield_override from django.contrib import admin from django_google_maps import widgets as map_widgets from django_google_maps import fields as map_fields class RentalAdmin(admin.ModelAdmin): formfield_overrides = { map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget}, } - To change the map type (``hybrid`` by default), you can add an html attribute on the ``AddressField`` widget. The list of allowed values is: ``hybrid``, ``roadmap``, ``satellite``, ``terrain`` from django.contrib import admin from django_google_maps import widgets as map_widgets from django_google_maps import fields as map_fields class RentalAdmin(admin.ModelAdmin): formfield_overrides = { map_fields.AddressField: { 'widget': map_widgets.GoogleMapsAddressWidget(attrs={'data-map-type': 'roadmap'})}, } - To change the autocomplete options, you can add an html attribute on the ``AddressField`` widget. See https://developers.google.com/maps/documentation/javascript/places-autocomplete#add_autocomplete for a list of available options import json from django.contrib import admin from django_google_maps import widgets as map_widgets from django_google_maps import fields as map_fields class RentalAdmin(admin.ModelAdmin): formfield_overrides = { map_fields.AddressField: { ‘widget’: map_widgets.GoogleMapsAddressWidget(attrs={ ‘data-autocomplete-options’: json.dumps({ ‘types’: [‘geocode’, ‘establishment’], ‘componentRestrictions’: { 'country': 'us' } }) }) }, } That should be all you need to get started. I also like to make the geolocation field readonly in the admin so a user (myself) doesn't accidentally change it to a nonsensical value. There is validation on the field so you can't enter an incorrect value, but you could enter something that is not even close to the address you intended. When you're displaying the address back to the user, just request the map using the geocoordinates that were saved in your model. Maybe sometime when I get around to it I'll see if I can create a method that will build that into the model. %prep %autosetup -n django-google-maps-0.13.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-django-google-maps -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 0.13.0-1 - Package Spec generated