
     h                         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
          Z G d dee          ZdZ G d de          Z G d de          ZdS )    N)
ModelAdmin)OpenLayersWidget)models)	OSMWidget)OGRGeomType)Media)RemovedInDjango50Warningc                   &     e Zd ZeZi Z fdZ xZS )GeoModelAdminMixinc                     t          |t          j                  r9|j        dk     s| j        j        r" | j        di | j        |d<    |j        di |S  t                      j	        ||fi |S )N   widget )

isinstancer   GeometryFielddim
gis_widgetsupports_3dgis_widget_kwargs	formfieldsuperformfield_for_dbfieldselfdb_fieldrequestkwargs	__class__s       _/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/django/contrib/gis/admin/options.pyr   z(GeoModelAdminMixin.formfield_for_dbfield   s    h 455 	NL1 ;.tHH1GHHF8%8%/////057707MMfMMM    )__name__
__module____qualname__r   r   r   r   __classcell__r   s   @r   r   r      sL        JN N N N N N N N Nr    r   c                       e Zd ZdS )GISModelAdminN)r!   r"   r#   r   r    r   r'   r'      s        Dr    r'   i  c                        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
  ZdZdZdZddiZdZe Z! fdZ"e# fd            Z$ fdZ%d Z& x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                 r    t          j        dt          d            t                      j        |i | d S )Nzdjango.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   s      r   r4   zGeoModelAdmin.__init__K   sM    6 %	
 	
 	
 	
 	$)&)))))r    c                 h    t                      j        t          | j        g| j        z             z   S )z-Injects OpenLayers JavaScript into the admin.)js)r   mediar   openlayers_urlextra_js)r   r   s    r   r8   zGeoModelAdmin.mediaU   s.     ww}u)<(=(MNNNNNr    c                     t          |t          j                  r0|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).
        r   r   Nr   )r   r   r   r   get_map_widgetr   r   r   r   s       r   r   z#GeoModelAdmin.formfield_for_dbfieldZ   sy     h 455 	N(,:J:J#228<<F8%8%/////057707MMfMMMr    c                      j         dv r7j         dk    rdn+t          j                             dd                    nd G  f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GEOMETRYCOLLECTIONrA   AnyMULTI Nonec                      e Zd Zj        Zj        ZdZj        r;d j                                        D             Zdd                    e          z  Zi 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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 )++GeoModelAdmin.get_map_widget.<locals>.OLMaprD   c                     g | ]}d |z  S )z%s: '%s'r   ).0pairs     r   
<listcomp>z6GeoModelAdmin.get_map_widget.<locals>.OLMap.<listcomp>   s    VVVTzD0VVVr    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)$r!   r"   r#   map_templatetemplate_namerP   ro   itemsjoinrL   rM   rN   rp   rO   r   namerS   rT   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   map_sridrk   rl   rm   rn   params)rU   r   rR   r   s   r   OLMaprG   {   sy        -M *IK >VVT=M=S=S=U=UVVV$tyy'='==#t/#t/#  1# tz=T-=	#
 [[);<<# hm#  # do#  !3# "?# h0J>#  !34"5# h04OO# H.2II#  DM!#" DM##$ DM%# #& '#( !$"5)#* do+#, do-#. !$"5/#0 do1#2 T^3#4 do5#6 do7#8 9#:  1;#< 4<=#> T^?#@ DMA#B {C#D E# #FFFr    rx   )rP   r   replacer   )r   r   rx   rU   rR   s   `` @@r   r<   zGeoModelAdmin.get_map_widgetg   s     !* /
 
  	%!%999"'"-h.@.H.HRT.U.U"V"V$O,	 ,	 ,	 ,	 ,	 ,	 ,	 ,	 ,	 ,	DK ,	 ,	 ,	\ r    )(r!   r"   r#   __doc__rL   rM   rN   rO   rk   r:   r^   r_   r`   ra   rb   rc   rd   re   rf   rT   rS   rg   rh   rv   rq   r9   ri   rl   rm   rn   ro   rp   r   r   r4   propertyr8   r   r<   r$   r%   s   @r   r)   r)   #   sA         KKLKLHHHHENJJNJMJIJH.LP  AJ6GIH\*KEF* * * * * O O O O XON N N N NB B B B B B Br    r)   c                   0    e Zd ZdZdZeZdZdZedz
  Z	dZ
dS )OSMGeoAdminzgis/admin/osm.html   z%-20037508,-20037508,20037508,20037508z156543.0339r,   mN)r!   r"   r#   rq   r^   spherical_mercator_sridrv   rc   rb   ri   ra   r   r    r   r}   r}      s5        'LH&H8J"NAJEEEr    r}   )r2   django.contrib.adminr    django.contrib.gis.admin.widgetsr   django.contrib.gis.dbr   django.contrib.gis.formsr   django.contrib.gis.gdalr   django.formsr   django.utils.deprecationr	   r   r'   r   r)   r}   r   r    r   <module>r      sX    + + + + + + = = = = = = ( ( ( ( ( ( . . . . . . / / / / / /       = = = = = =N N N N N N N N	 	 	 	 	&
 	 	 	
  F F F F FJ F F FT    -     r    