
    	]j                     F   d 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
mZ ddlmZmZ ddlmZ dd	lmZmZmZ dd
lmZ  G d de      Z G d dej0                        Z G d dej0                        Zej6                  j9                  ee       ej6                  j9                  e       ej6                  j9                  e
       ej6                  j9                  e       ej6                  j9                  e       ej6                  j9                  e       ej6                  j9                  e       ej6                  j9                  e       ej6                  j9                  ee       ej6                  j9                  ee       ej6                  j;                  e       y)zThis file and its contents are licensed under the Apache License 2.0. Please see the included NOTICE for copyright information and LICENSE for a copy of the license.
    )AsyncMigrationStatus)admin)	UserAdmin)Group)	MLBackendMLBackendTrainJob)OrganizationOrganizationMember)Project)
Annotation
PredictionTask)Userc                   ,     e Zd ZdddiffZ fdZ xZS )UserAdminShortNfields)email	password1	password2c                     t        t        | 
  |i | d| _        d| _        d| _        d| _        d ddifdddifd	dd
ifdddiff| _        y )N)r   usernameactive_organizationorganizationis_staffis_superuser)r   r   	is_active)r   
first_name	last_namer   organization__titleactive_organization__title)r   r   )passwordzPersonal info)r   r   r   r   Permissions)r   r   r   zImportant dates)
last_logindate_joined)superr   __init__list_displaylist_filtersearch_fieldsordering	fieldsetsselfargskwargs	__class__s      B/root/env/lib/python3.12/site-packages/label_studio/users/admin.pyr&   zUserAdminShort.__init__   s    nd,d=f=
 E
 # Hm,-x)YZ[ 	 +H IJ
    )__name__
__module____qualname__add_fieldsetsr&   __classcell__r0   s   @r1   r   r      s     X'JKLNM$
 $
r2   r   c                   8     e Zd Z fdZd Zd Zde_         xZS )AsyncMigrationStatusAdminc                 t    t        t        | 
  |i | d| _        d| _        d| _        d| _        dg| _        y )N)idnameprojectstatus
created_at
updated_atmeta)r=   r?   )r=   project__id)z-idrun_scheduled_migrations)r%   r:   r&   r'   r(   r)   r*   actionsr,   s      r1   r&   z"AsyncMigrationStatusAdmin.__init__:   sA    '7HHc-4 23r2   c                 ~    |j                   xs i }||d<   ||_         |j                  |_        |j                          y)z=Helper to mark migration as ERROR with error message in meta.errorN)rB   STATUS_ERRORr?   save)r-   	migrationerror_messagerB   s       r1   _mark_migration_errorz/AsyncMigrationStatusAdmin._mark_migration_errorC   s8    ~~#%W	$11	r2   c                    ddl }ddlm} ddlm} d}d}d}dt
        dt        t
        dz  t
        dz  f   fd}	|D ]  }
|
j                  |
j                  k7  r|dz  }" |	|
j                        \  }}|r| j                  |
|       |dz  }Q	 |j                  |      }t        |d
d      }|| j                  |
d       |dz  }	  |||
j                  |dd       |
j                  |
_        |
j                          |dz  } d| d| d| }|dkD  r| j!                  ||d       y|dkD  r| j!                  ||d       y| j!                  ||d       y# t        $ r%}| j                  |
d	|        |dz  }Y d}~Gd}~ww xY w# t        $ r+}| j                  |
t        |             |dz  }Y d}~~d}~ww xY w)aY  Run selected scheduled migrations manually.

        Expects AsyncMigrationStatus.name in one of forms:
        - "<app>:<migration_module>"
        - "<app>.migrations.<migration_module>"
        - Full dotted path "label_studio.<app>.migrations.<migration_module>"

        Does not scan all apps. If app is not provided, marks error.
        r   N)execute_sql_job)start_job_async_or_syncr=   returnc                 B    | xs dj                         }|syd|vry|d fS )N )NzEmpty migration import pathz.migrations.)NzHMigration import path must include ".migrations." (use full dotted path))strip)r=   ss     r1   resolve_import_pathzOAsyncMigrationStatusAdmin.run_scheduled_migrations.<locals>.resolve_import_path^   s.    ""$A:Q&gd7Nr2      zImport error: sql_forwardsz*sql_forwards not found in migration moduleFdefault)migration_namesqlreverse
queue_namez
Executed: z, Skipped: z
, Errors: SUCCESS)levelERRORWARNING)	importlibcore.migration_helpersrN   
core.redisrO   strtupler?   STATUS_SCHEDULEDr=   rL   import_module	ExceptiongetattrSTATUS_STARTEDrI   message_user)r-   requestquerysetra   rN   rO   executed_countskipped_counterror_countrU   rJ   import_patherrmoduleesql_fwmessages                    r1   rD   z2AsyncMigrationStatusAdmin.run_scheduled_migrationsK   s    	:6	c 	eC$Jd
4J.K 	 " $	!I9#=#=="29>>BK**9c:q "00= V^T:F~**96bcq !'##,>>!( $-#;#;	  !#C$	!L ~.k-
S^R_`Agwi@1_gwg>gwi@A  **9qc6JKq ,  !**9c!f=q !s0   E=F	F#FF	F? F::F?z!Run selected SCHEDULED migrations)r3   r4   r5   r&   rL   rD   short_descriptionr7   r8   s   @r1   r:   r:   9   s$    4GAR 2U..r2   r:   c                        e Zd Z fdZ xZS )OrganizationMemberAdminc                 V    t        t        | 
  |i | d| _        d| _        d| _        y )N)r<   userr   r@   rA   )user__emailr   )r<   )r%   ry   r&   r'   r)   r*   r,   s      r1   r&   z OrganizationMemberAdmin.__init__   s/    %t5tFvFVCr2   )r3   r4   r5   r&   r7   r8   s   @r1   ry   ry      s       r2   ry   N)__doc__core.modelsr   django.contribr   django.contrib.auth.adminr   django.contrib.auth.modelsr   	ml.modelsr   r   organizations.modelsr	   r
   projects.modelsr   tasks.modelsr   r   r   users.modelsr   r   
ModelAdminr:   ry   siteregister
unregister r2   r1   <module>r      s3   ,   / , 2 A # 5 5 (
Y (
V[U 0 0 [U| e..   

  D. ) 

  G  

  I  

  % & 

  D  

  J  

  J  

  L ! 

  &(? @ 

  (*C D 

  e r2   