U
    N+|jö  ã                   @   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                    sR   t |tjƒr<|jdk s| jjr<| jf | jŽ|d< |jf |ŽS tƒ j	||f|ŽS d S )Né   Úwidget)
Ú
isinstancer   ÚGeometryFieldÚdimÚ
gis_widgetZsupports_3dÚgis_widget_kwargsÚ	formfieldÚsuperÚformfield_for_dbfield©ÚselfÚdb_fieldÚrequestÚkwargs©Ú	__class__© úhc:\users\snmko\desktop\web_content\django_cbt\venv\Lib\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||Ž d S )Nz�django.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.)Zjs)r   Úmediar   Úopenlayers_urlÚextra_js)r   r   r   r   r.   U   s    zGeoModelAdmin.mediac                    sF   t |tjƒr0|jdk r0|  |¡|d< |jf |ŽS tƒ j||f|ŽS d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   N)r   r   r   r   Úget_map_widgetr   r   r   r   r   r   r   r   Z   s    z#GeoModelAdmin.formfield_for_dbfieldc                    sV   ˆj dk‰ˆr2ˆj dkrd‰ q6tˆ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ÚGEOMETRYCOLLECTIONr5   ÚAnyZMULTIÚ ÚNonec                "       sâ   e Zd Z”jZ”jZdZ”jr@dd„ ”j ¡ D ƒZdd e¡ Z”j	”j
”j”jpV”je”jƒ”j””j”j” ”jdk”jdk”jdk”jd	k”j”j”j”j”j”j”j”j”j”j”j”j”j”j”j ”j!”j"e”jd
œ!Z#dS )z+GeoModelAdmin.get_map_widget.<locals>.OLMapr7   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, ZGEOMETRY)Z
LINESTRINGr3   )ZPOLYGONr4   )ÚPOINTr2   )!Údefault_lonÚdefault_latÚdefault_zoomÚdisplay_wktÚ	geom_typeÚ
field_nameÚis_collectionÚ
scrollableÚlayerswitcherÚcollection_typeZ
is_genericZis_linestringZ
is_polygonZis_pointÚ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{   sT   
ÿÞr`   )rA   r   Úreplacer   )r   r   r`   r   r_   r   r1   g   s    

.zGeoModelAdmin.get_map_widget)(r   r   r   Ú__doc__r=   r>   r?   r@   rS   r0   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rE   rD   rP   rQ   r]   rY   r/   rR   rT   rU   rV   rW   rX   r   r   r,   Úpropertyr.   r   r1   r    r   r   r   r   r"   #   sH   ÿ
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    