o
    Ti                     @   s   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ G d	d
 d
ZG dd deeZdZG dd deZG dd deZdS )    N)
ModelAdmin)OpenLayersWidget)models)	OSMWidget)OGRGeomType)Media)RemovedInDjango50Warningc                       s$   e Zd ZeZi Z fddZ  ZS )GeoModelAdminMixinc                    sZ   t |tjr"|jdk s| jjr"| jdi | j|d< |jdi |S t j	||fi |S )N   widget )

isinstancer   GeometryFielddim
gis_widgetZsupports_3dgis_widget_kwargs	formfieldsuperformfield_for_dbfieldselfdb_fieldrequestkwargs	__class__r   `/var/www/html/evchargy.com/venv/lib/python3.10/site-packages/django/contrib/gis/admin/options.pyr      s
   z(GeoModelAdminMixin.formfield_for_dbfield)__name__
__module____qualname__r   r   r   r   __classcell__r   r   r   r   r	      s    r	   c                   @   s   e Zd ZdS )GISModelAdminN)r   r   r   r   r   r   r   r!      s    r!   i  c                       s   e Zd ZdZdZdZdZdZdZg Z	dZ
dZdZdZdZdZdZdZdZdZdZdZdZd	Zd
ZdZe
d ZdZdZdZddiZdZe Z! fddZ"e# fddZ$ fddZ%dd Z&  Z'S )GeoModelAdminz
    The administration options class for Geographic models. Map settings
    may be overloaded from their defaults to create custom maps.
    r      F   TiX  i  i  zgis/admin/openlayers.htmlzFhttps://cdnjs.cloudflare.com/ajax/libs/openlayers/2.13.1/OpenLayers.js   z&http://vmap0.tiles.osgeo.org/wms/vmap0basiczOpenLayers WMSformatz
image/jpegc                    s&   t jdtdd t j|i | d S )Nzdjango.contrib.gis.admin.GeoModelAdmin and OSMGeoAdmin are deprecated in favor of django.contrib.admin.ModelAdmin and django.contrib.gis.admin.GISModelAdmin.   )
stacklevel)warningswarnr   r   __init__)r   argsr   r   r   r   r,   K   s   zGeoModelAdmin.__init__c                    s   t  jt| jg| j d S )z-Injects OpenLayers JavaScript into the admin.)js)r   mediar   openlayers_urlextra_js)r   r   r   r   r/   U   s   zGeoModelAdmin.mediac                    sJ   t |tjr|jdk r| ||d< |jdi |S t j||fi |S )z
        Overloaded from ModelAdmin so that an OpenLayersWidget is used
        for viewing/editing 2D GeometryFields (OpenLayers 2 does not support
        3D editing).
        r
   r   Nr   )r   r   r   r   get_map_widgetr   r   r   r   r   r   r   r   Z   s   z#GeoModelAdmin.formfield_for_dbfieldc                    sV   j dv rj dkrd ntj dd nd G  fdddj}|S )	z
        Return a subclass of the OpenLayersWidget (or whatever was specified
        in the `widget` attribute) using the settings from the attributes set
        in this class.
        )
MULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTIONr6   AnyZMULTI Nonec                       sh  e Zd ZjZjZdZjr dd j D Zdde Zi dj	dj
djd	jp3jd
ejdjddjdjd djdkdjdv djdv djdv djdjdji djdjdjdjdjd jd!jd"jd#jd$jd%jd&j d'j!d(j"d)ed*jZ#d+S ),z+GeoModelAdmin.get_map_widget.<locals>.OLMapr8   c                 S   s   g | ]}d | qS )z%s: '%s'r   ).0pairr   r   r   
<listcomp>   s    z6GeoModelAdmin.get_map_widget.<locals>.OLMap.<listcomp>z, %sz, default_londefault_latdefault_zoomdisplay_wkt	geom_type
field_nameis_collection
scrollablelayerswitchercollection_typeZ
is_genericZGEOMETRYZis_linestring)Z
LINESTRINGr4   Z
is_polygon)ZPOLYGONr5   Zis_point)ZPOINTr3   num_zoommax_zoommin_zoomunitsmax_resolution
max_extent
modifiablemouse_position
scale_text	map_width
map_height
point_zoomZsriddisplay_sridwms_url	wms_layerwms_namewms_optionsdebugN)$r   r   r   map_templateZtemplate_namerA   rW   itemsjoinr=   r>   r?   rX   r@   r   namerD   rE   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   map_sridrS   rT   rU   rV   paramsr   rF   r   rC   r   r   r   OLMap{   s    
	



 !"
r`   )rA   r   replacer   )r   r   r`   r   r_   r   r2   g   s   

.zGeoModelAdmin.get_map_widget)(r   r   r   __doc__r=   r>   r?   r@   rS   r1   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rE   rD   rP   rQ   r]   rY   r0   rR   rT   rU   rV   rW   rX   r   r   r,   propertyr/   r   r2   r    r   r   r   r   r"   #   sJ    
r"   c                   @   s,   e Zd ZdZdZeZdZdZed Z	dZ
dS )OSMGeoAdminzgis/admin/osm.html   z%-20037508,-20037508,20037508,20037508z156543.0339r%   mN)r   r   r   rY   rG   spherical_mercator_sridr]   rL   rK   rR   rJ   r   r   r   r   rd      s    rd   )r*   Zdjango.contrib.adminr   Z django.contrib.gis.admin.widgetsr   Zdjango.contrib.gis.dbr   Zdjango.contrib.gis.formsr   Zdjango.contrib.gis.gdalr   Zdjango.formsr   Zdjango.utils.deprecationr   r	   r!   rg   r"   rd   r   r   r   r   <module>   s     