
    >Tf@
                         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
mZ d dlmZ dZ G d d	e
          Z G d
 dee          ZdS )    )models)Q)reverse)gettext_lazy)NestedGroupModelPrimaryModel)ContactsMixin)TenantTenantGroupc                       e Zd ZdZ ej         ed          dd          Z ej         ed          dd          Z	 G d d          Z
d	 Zd
S )r   z-
    An arbitrary collection of Tenants.
    named   T)verbose_name
max_lengthuniqueslugc                   @    e Zd ZdgZ ed          Z ed          ZdS )TenantGroup.Metar   ztenant groupztenant groupsN)__name__
__module____qualname__ordering_r   verbose_name_plural     ;/var/www/html/netbox-4.1.3/netbox/tenancy/models/tenants.pyMetar      s6        8q((a00r   r   c                 0    t          d| j        g          S )Nztenancy:tenantgroupargsr   pkselfs    r   get_absolute_urlzTenantGroup.get_absolute_url#   s    ,DG9====r   N)r   r   r   __doc__r   	CharFieldr   r   	SlugFieldr   r   r&   r   r   r   r   r      s          6QvYY  D
 6QvYY  D1 1 1 1 1 1 1 1
> > > > >r   r   c                       e Zd ZdZ ej         ed          d          Z ej         ed          d          Z	 ej
        dej        ddd	          Zd
Z G d d          Zd Zd ZdS )r
   z
    A Tenant represents an organization served by the NetBox owner. This is typically a customer or an internal
    department.
    r   r   )r   r   r   ztenancy.TenantGrouptenantsT)to	on_deleterelated_nameblanknull)groupdescriptionc            
           e Zd ZdgZ ej        dd ed                     ej        dd ed	          
           ej        dd ed                     ej        dd ed	          
          fZ ed          Z	 ed          Z
dS )Tenant.Metar   )r1   r   z)%(app_label)s_%(class)s_unique_group_namez%Tenant name must be unique per group.)fieldsr   violation_error_messager   z#%(app_label)s_%(class)s_unique_nameT)group__isnull)r5   r   	condition)r1   r   z)%(app_label)s_%(class)s_unique_group_slugz%Tenant slug must be unique per group.)r   z#%(app_label)s_%(class)s_unique_slugtenantr+   N)r   r   r   r   r   UniqueConstraintr   r   constraintsr   r   r   r   r   r   r4   @   s        8#F#(@()*Q(R(R  
 $F# :!$///  
 $F#(@()*Q(R(R  
 $F# :!$///  !
, q{{a	llr   r   c                     | j         S )Nr7   r$   s    r   __str__zTenant.__str__[   s
    yr   c                 0    t          d| j        g          S )Nztenancy:tenantr    r"   r$   s    r   r&   zTenant.get_absolute_url^   s    'twi8888r   N)r   r   r   r'   r   r(   r   r   r)   r   
ForeignKeySET_NULLr1   clone_fieldsr   r>   r&   r   r   r   r
   r
   '   s          6QvYY  D 6QvYY  D F /  EL+ + + + + + + +6  9 9 9 9 9r   r
   N)	django.dbr   django.db.modelsr   django.urlsr   django.utils.translationr   r   netbox.modelsr   r   netbox.models.featuresr	   __all__r   r
   r   r   r   <module>rJ      s                      6 6 6 6 6 6 8 8 8 8 8 8 8 8 0 0 0 0 0 0> > > > >" > > >089 89 89 89 89]L 89 89 89 89 89r   