diff options
Diffstat (limited to 'python-django-google-maps.spec')
-rw-r--r-- | python-django-google-maps.spec | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/python-django-google-maps.spec b/python-django-google-maps.spec new file mode 100644 index 0000000..da4a25a --- /dev/null +++ b/python-django-google-maps.spec @@ -0,0 +1,235 @@ +%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 <Python_Bot@openeuler.org> - 0.13.0-1 +- Package Spec generated |