
    Hwg                         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y)    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                        rV|j                  dk  s| j                  j
                  r1 | j                  di | j                  |d<    |j                  di |S t        | $  ||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       W/var/www/horilla/myenv/lib/python3.12/site-packages/django/contrib/gis/admin/options.pyr   z(GeoModelAdminMixin.formfield_for_dbfield   sv    h 4 45LL1 ; ;.tH1G1GHF8%8%%///707MfMM    )__name__
__module____qualname__r   r   r   r   __classcell__r   s   @r   r   r      s    JN Nr    r   c                       e Zd Zy)GISModelAdminN)r!   r"   r#   r   r    r   r'   r'      s    r    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                 \    t        j                  dt        d       t        |   |i | y )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   s0    6 %	
 	$)&)r    c                 b    t         |   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+     w}u)<)<(=(MNNNr    c                     t        |t        j                        r5|j                  dk  r&| j	                  |      |d<    |j
                  di |S t        |   ||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   r   )r   r   r   r   get_map_widgetr   r   r   r   s       r   r   z#GeoModelAdmin.formfield_for_dbfieldZ   sb     h 4 45(,,:J#228<F8%8%%///707MfMMr    c                      j                   dv r8j                   dk(  rdn(t        j                   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W j                  ZW j
                  ZdZW j                  rBW j                  j                         D  cg c]  }d|z  	 c}} Zddj                  e      z  Zi dW j                  dW j                  dW j                  dW j                  xs W j                  d	 eW j
                        d
W j                  dW dW j                   dW j"                  dW dW j
                  dk(  dW j
                  dv dW j
                  dv dW j
                  dv dW j$                  dW j&                  dW j(                  i dW j*                  dW j,                  dW j.                  dW j0                  dW j2                  dW j4                  d W j6                  d!W j8                  d"W j:                  d#W j<                  d$W j>                  d%W j@                  d&W jB                  d'W jD                  d(ed)W j                  Z#y*c c}} w )++GeoModelAdmin.get_map_widget.<locals>.OLMaprD   z%s: '%s'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_namerL   rk   itemsjoinrH   rI   rJ   rl   rK   r   namerO   rP   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   map_sridrg   rh   ri   rj   params).0pairrQ   r   rN   r   s   00r   OLMaprG   {   s    --M **IK=A=M=M=S=S=UVTzD0V$tyy'==#t//#t//#  1 1# tzz=T-=-=	#
 [););<# hmm#  # doo#  !3!3# "?# h00J>#  !3!34"5# h004OO# H..2II#  DMM!#" DMM##$ DMM%#& '#( !$"5"5)#* doo+#, doo-#. !$"5"5/#0 doo1#2 T^^3#4 doo5#6 doo7#8 9#:  1 1;#< 4<<=#> T^^?#@ DMMA#B {C#D E#F Ws   Irv   )rL   r   replacer   )r   r   rv   rQ   rN   s   `` @@r   r<   zGeoModelAdmin.get_map_widgetg   ss     !** /
 
 !!%99"'"-h.@.@.H.HRT.U"V$O,	 ,	DKK ,	\ r    )(r!   r"   r#   __doc__rH   rI   rJ   rK   rg   r:   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rP   rO   rc   rd   rr   rm   r9   re   rh   ri   rj   rk   rl   r   r   r4   propertyr8   r   r<   r$   r%   s   @r   r)   r)   #   s     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NBr    r)   c                   .    e Zd ZdZdZeZdZdZedz
  Z	dZ
y)OSMGeoAdminzgis/admin/osm.html   z%-20037508,-20037508,20037508,20037508z156543.0339r,   mN)r!   r"   r#   rm   rZ   spherical_mercator_sridrr   r_   r^   re   r]   r   r    r   r{   r{      s)    'LH&H8J"NAJEr    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      s[     + = ( . /  =N N	&
 	
  FJ FT- r    