
    Rh                     >    d dl mZ d dlmZ d dlmZ  G d de      Zy)    )BaseCommand)apps)Qc                       e Zd ZdZd Zd Zy)Commandu  Liczy rekordy łącznie, aktywne, nieaktywne, nieznane (NULL) oraz ile ma check_active=True.
Przykład:
  python manage.py count_active --model extractly.AdsManual
Opcjonalne pola:
  --active-field is_active (domyślnie)
  --check-field  check_active (domyślnie)
Tryb cichy (CSV):
  python manage.py count_active --model extractly.AdsManual --quiet
  Kolumny: total,active,inactive,unknown,check_true
c                     |j                  ddd       |j                  ddd       |j                  d	d
d       |j                  ddd       y )Nz--modelTz=Model w formacie app_label.ModelName, np. extractly.AdsManual)requiredhelpz--active-field	is_activeuG   Nazwa pola boolean określającego aktywność (domyślnie: is_active).)defaultr
   z--check-fieldcheck_activeu;   Nazwa pola boolean do zliczenia (domyślnie: check_active).z--quiet
store_truezFWypisuje tylko liczby (CSV: total,active,inactive,unknown,check_true).)actionr
   )add_argument)selfparsers     B/var/www/extractly/houslyspace/management/commands/count_active.pyadd_argumentszCommand.add_arguments   sx    P 	 	

 	Z 	 	

 	"N 	 	

 	Y 	 	
    c                    |d   }|d   }|d   }|d   }	 t        j                  |      }|j                  j                         D ch c]  }|j                   }	}||	vr+t        | j                  j                  d| d| d	            |j                  j                         j                         }
 |j                  j                  di |d
ij                         } |j                  j                  di |dij                         }|j                  j                  t        di | dd
i      j                         }||	v r/ |j                  j                  di |d
ij                         }d
}nd}d}|r*| j                  j                  |
 d| d| d| d| 	       y | j                  j                  | j                  j!                  d             | j                  j                  d|        | j                  j                  d|        |r | j                  j                  d| d       n8| j                  j                  | j                  j#                  d| d             | j                  j                  d|
        | j                  j                  | j                  j!                  d|              | j                  j                  | j                  j#                  d|              | j                  j                  | j                  j%                  d|              |r9| j                  j                  | j                  j!                  | d|              ||z   |z   |
k7  rD|
||z   |z   z
  }| j                  j                  | j                  j                  d| d             y y # t        $ r) t        | j                  j                  d| d            w xY wc c}w )Nmodelactive_fieldcheck_fieldquietzModel 'z' nie istnieje.zPole 'z' nie istnieje w modelu .TF__isnullr   ,z== Podsumowanie ==zModel:           u   Pole aktywności: zPole check:      
zPole check 'u/   ' nie istnieje w modelu — pomijam zliczanie.
u   Łącznie:         zAktywne:         zNieaktywne:      zNieznane (NULL): z=True:  z
UWAGA: u*    rekord(ów) poza standardowym podziałem. )r   	get_modelLookupError
SystemExitstyleERROR_meta
get_fieldsnameobjectsallcountfilterr   stdoutwriteSUCCESSWARNINGNOTICE)r   argsoptsmodel_labelr   r   r   Modelffield_namestotalactiveinactiveunknown
check_truecheck_field_presentothers                    r   handlezCommand.handle,   s   7mN+=)W	WNN;/E (-{{'='='?@'?!qvv'?@{*

  6,7OP[}\]!^_ 
 !!#))+%%%=t(<=CCE'5==''@<*?@FFH--&&q'M|nH,Et+L'MNTTV +%---Dd0CDJJLJ"&J"'KKq(1WIQzlST 	$**,,-ABC-k];<.|n=>KK 1+bABKKdjj00{m+[\  	/w78$**,,/@-IJK$**,,/@
-KLM$**++.?y,IJKKKdjj00K=1UVW X'E1Vh.89EKKdjj..5'Ak/lmn 2a  	WTZZ--}O.TUVV	W As   N= O2=2O/N)__name__
__module____qualname__r
   r   r>   r   r   r   r   r   	   s    	@ 	
,:or   r   N)django.core.management.baser   django.appsr   django.db.modelsr   r   r   r   r   <module>rE      s     4  ]ok ]or   