o
    ^"<f                     @   sd   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Z
G dd deZG d	d
 d
eZdS )    )
ModelAdmin)OpenLayersWidget)models)OGRGeomType)Mediai  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!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t| jg| j d S )z-Injects OpenLayers JavaScript into the admin.)js)supermediar   openlayers_urlextra_js)self	__class__ W/var/www/html/kck/venv/lib/python3.10/site-packages/django/contrib/gis/admin/options.pyr   /   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).
           widgetNr   )
isinstancer   GeometryFielddimget_map_widget	formfieldr   formfield_for_dbfield)r   db_fieldrequestkwargsr   r   r   r   4   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GEOMETRYCOLLECTIONr%   Any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>.OLMapr(   c                 S   s   g | ]}d | qS )z%s: '%s'r   ).0pairr   r   r   
<listcomp>V   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_type
is_genericGEOMETRYis_linestring)
LINESTRINGr#   
is_polygon)POLYGONr$   is_point)POINTr"   num_zoommax_zoommin_zoomunitsmax_resolution
max_extent
modifiablemouse_position
scale_text	map_width
map_height
point_zoomsriddisplay_sridwms_url	wms_layerwms_namewms_optionsdebugN)$__name__
__module____qualname__map_templatetemplate_namer1   rP   itemsjoinr-   r.   r/   rQ   r0   r   namer4   r5   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   map_sridrL   rM   rN   rO   paramsr   r6   r   r3   r   r   r   OLMapP   s    
	




 !
r]   )r1   r   replacer   )r   r   r]   r   r\   r   r   A   s   

,zGeoModelAdmin.get_map_widget)'rR   rS   rT   __doc__r-   r.   r/   r0   rL   r   r?   r@   rA   rB   rC   rD   rE   rF   rG   r5   r4   rH   rI   rZ   rU   r   rJ   rM   rN   rO   rP   rQ   r   r   propertyr   r   r   __classcell__r   r   r   r   r   
   sF    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)rR   rS   rT   rU   r?   spherical_mercator_sridrZ   rD   rC   rJ   rB   r   r   r   r   rb      s    rb   N)django.contrib.adminr    django.contrib.gis.admin.widgetsr   django.contrib.gis.dbr   django.contrib.gis.gdalr   django.formsr   re   r   rb   r   r   r   r   <module>   s    u