
v^                 @   s   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
 Gd d   d e  Z Gd	 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%   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 d |  j g |  j  S)z-Injects OpenLayers JavaScript into the admin.Zjs)supermediar   openlayers_urlextra_js)self)	__class__ B/tmp/pip-build-8lau8j11/django/django/contrib/gis/admin/options.pyr   /   s    zGeoModelAdmin.mediac                s[   t  | t j  rA | j d k  rA |  j |  | d <| j |   St   j | | |  Sd S)z
        Overloaded from ModelAdmin so that an OpenLayersWidget is used
        for viewing/editing 2D GeometryFields (OpenLayers 2 does not support
        3D editing).
           widgetN)
isinstancer   ZGeometryFieldZdimget_map_widgetZ	formfieldr   formfield_for_dbfield)r   db_fieldrequestkwargs)r   r   r   r   4   s    !z#GeoModelAdmin.formfield_for_dbfieldc                s}    j  d k   rK  j  d k r- d   qQ t  j  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GEOMETRYCOLLECTIONZAnyZMULTI Nonec            B       s  e  Z d  Z  j Z  j Z d Z  j r\ d d    j j   D Z d d j e  Z d  j	 d  j
 d  j d	  j p  j d
 e  j  d  j d  d  j d  j d   d  j d k d  j d/ k d  j d0 k d  j d1 k 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)  j  d*  j! d+  j" d, e d-  j i! Z# d. S)2z+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_typeZ
is_genericZGEOMETRYZis_linestring
LINESTRINGr   Z
is_polygonPOLYGONr   Zis_pointPOINTr   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)r0   r   )r1   r   )r2   r   )$__name__
__module____qualname__map_templateZtemplate_namer*   rC   itemsjoinr&   r'   r(   rD   r)   r   namer-   r.   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   map_sridr?   r@   rA   rB   paramsr   )r/   r   r,   r   r   r   OLMapP   sN   																										rN   )z
MULTIPOINTzMULTILINESTRINGzMULTIPOLYGONr    )r*   r   replacer   )r   r   rN   r   )r/   r   r,   r   r   r   A   s    	(,zGeoModelAdmin.get_map_widget)&rE   rF   rG   __doc__r&   r'   r(   r)   r?   r   r3   r4   r5   r6   r7   r8   r9   r:   r;   r.   r-   r<   r=   rL   rH   r   r>   r@   rA   rB   rC   rD   r   r   propertyr   r   r   r   r   )r   r   r   
   sB   
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)rE   rF   rG   rH   r3   spherical_mercator_sridrL   r8   r7   r>   r6   r   r   r   r   rR      s   
rR   N)Zdjango.contrib.adminr   Z django.contrib.gis.admin.widgetsr   Zdjango.contrib.gis.dbr   Zdjango.contrib.gis.gdalr   Zdjango.formsr   rU   r   rR   r   r   r   r   <module>   s   u