
^Q\                 @   sv   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)OGRGeomTypei  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 i d d 6Z 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 WMSz
image/jpegformatc                s9   t  t |   j } | j |  j g  | j |  j  | S)z-Injects OpenLayers JavaScript into the admin.)superr   mediaZadd_jsopenlayers_urlextra_js)selfr   )	__class__ F/var/www/dbchiro/venv/build/Django/django/contrib/gis/admin/options.pyr   .   s    zGeoModelAdmin.mediac                sa   t  | t j  rA | j d k  rA |  j |  | d <| j |   St t |   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   r   formfield_for_dbfield)r   db_fieldrequestkwargs)r   r   r   r   6   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
        Returns 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                   s  e  Z d  Z  j Z  j Z d Z  j r_ d d    j j   D Z d d j e  Z n  i!  j	 d 6 j
 d 6 j d 6 j p  j d	 6e  j  d
 6 j d 6 d 6 j d 6 j d 6  d 6 j d k d 6 j d/ k d 6 j d0 k d 6 j d1 k d 6 j d 6 j d 6 j d 6 j d 6 j d 6 j d  6 j d! 6 j d" 6 j d# 6 j d$ 6 j d% 6 j d& 6 j d' 6 j d( 6 j  d) 6 j! d* 6 j" d+ 6e d, 6 j d- 6Z# 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>X   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GEOMETRYZ
is_generic
LINESTRINGr   Zis_linestringPOLYGONr   Z
is_polygonPOINTr   Z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   )r0   r   )r1   r   )$__name__
__module____qualname__map_templateZtemplate_namer)   rB   itemsjoinr%   r&   r'   rC   r(   r   namer,   r-   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   map_sridr>   r?   r@   rA   paramsr   )r.   r   r+   r   r   r   OLMapR   sN   			





















rM   )z
MULTIPOINTzMULTILINESTRINGzMULTIPOLYGONr   )r)   r   replacer   )r   r   rM   r   )r.   r   r+   r   r   r   C   s    	(+zGeoModelAdmin.get_map_widget)&rD   rE   rF   __doc__r%   r&   r'   r(   r>   r   r2   r3   r4   r5   r6   r7   r8   r9   r:   r-   r,   r;   r<   rK   rG   r   r=   r?   r@   rA   rB   rC   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)rD   rE   rF   rG   r2   spherical_mercator_sridrK   r7   r6   r=   r5   r   r   r   r   rQ      s   
rQ   N)Zdjango.contrib.adminr   Z django.contrib.gis.admin.widgetsr   Zdjango.contrib.gis.dbr   Zdjango.contrib.gis.gdalr   rT   r   rQ   r   r   r   r   <module>   s   w