
 Xz                 @   s   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z m Z d  d l	 m
 Z
 d Z Gd d   d e  Z Gd	 d
   d
 e  Z d S)    )
ModelAdmin)OpenLayersWidget)models)HAS_GDALOGRGeomType)ImproperlyConfiguredi  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.htmlz.http://openlayers.org/api/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__ N/home/ubuntu/projects/ifolica/build/django/django/contrib/gis/admin/options.pyr   /   s    zGeoModelAdmin.mediac                s   t  | t j  r| | j d k  r| t r\ | j |  j k r\ t d |  j | | j f   n  |  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).
           z\Map SRID is %s and SRID of `%s` is %s. GDAL must be installed to perform the transformation.widgetN)
isinstancer   ZGeometryFieldZdimr   sridmap_sridr   get_map_widgetZ	formfieldr   r   formfield_for_dbfield)r   db_fieldrequestkwargs)r   r   r   r   7   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>_   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_zoomr   display_sridwms_url	wms_layerwms_namewms_optionsdebugN)r3   r!   )r4   r"   )r5   r    )$__name__
__module____qualname__map_templatetemplater-   rF   itemsjoinr)   r*   r+   rG   r,   r   namer0   r1   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   r   rB   rC   rD   rE   paramsr   )r2   r   r/   r   r   r   OLMapY   sN   			





















rQ   )z
MULTIPOINTzMULTILINESTRINGzMULTIPOLYGONr#   )r-   r   replacer   )r   r   rQ   r   )r2   r   r/   r   r   r   J   s    	(+zGeoModelAdmin.get_map_widget)&rH   rI   rJ   __doc__r)   r*   r+   r,   rB   r   r6   r7   r8   r9   r:   r;   r<   r=   r>   r1   r0   r?   r@   r   rK   r   rA   rC   rD   rE   rF   rG   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)rH   rI   rJ   rK   r6   spherical_mercator_sridr   r;   r:   rA   r9   r   r   r   r   rU      s   
rU   N)Zdjango.contrib.adminr   Z django.contrib.gis.admin.widgetsr   Zdjango.contrib.gis.dbr   Zdjango.contrib.gis.gdalr   r   Zdjango.core.exceptionsr   rX   r   rU   r   r   r   r   <module>   s   }