
    P1i                         d dl mZ d dlmZ d dlmZ d dlmZ  G d dej                        Z
	  G d dej                        Zy	)
    )forms)gettext_lazy)Person)datec                   @     e Zd ZdZ G d d      Z fdZ fdZ xZS )NumberPowerFormz8Form for NumberPower calculation using the Person model.c                       e Zd ZeZg dZ ed       ed       ed       ed       ed       ed      dZ ed	       ed
       ed       ed      dZ e	j                  ddi       e	j                  ddi       e	j                  ddd       e	j                  ddd       e	j                  ddi       e	j                  ddd       e	j                  ddd       e	j                  ddd      dZy)NumberPowerForm.Meta)namegender
birth_date
birth_time	twin_type
father_dob
mother_dobnotesu   出生日期u   出生时间u   双胞胎选项u   父亲出生日期u   母亲出生日期u   备注)r   r   r   r   r   r   u   按照阳历/公历填写u   如不确定可留空u   双大必填u   双小必填)r   r   r   r   classform-controlattrszform-control datepickerr   )r   typezform-control timepickertime   )r   rowsN)__name__
__module____qualname__r   modelfields_labels
help_textsr   	TextInputSelect	DateInput	TimeInputTextareawidgets     ./home/cursorai/projects/iching/number/forms.pyMetar
   	   s%   qN+N+,-0101x[
 7834N+N+	

 $EOO7N*CD"ell'>)BC)%//:S]c0de)%//:S]c0de%Wn,EF)%//21  *%//21  $U^^NA*NO
r*   r,   c                     t        |   |i | d| j                  d   _        d| j                  d   _        d| j                  d   _        d| j                  d   _        g d| j                  d   _        y )	NTr   r   Fr   r   ))r   u   正常)   u   双大)   u   双小r   )super__init__r   requiredchoices)selfargskwargs	__class__s      r+   r1   zNumberPowerForm.__init__+   sn    $)&)-1L!*)-H& .3L!*-2L!*,
K (r*   c                 d   t         |          }|j                  d      }t        |t              r|j                         rt        |      }|dk(  r.|j                  d      s| j                  dt        d             |S |dk(  r,|j                  d      s| j                  dt        d             |S )zS
        Custom validation to ensure parent DOB is provided for twin cases
        r   r.   r   u$   双大需要填写父亲出生日期r/   r   u$   双小需要填写母亲出生日期)	r0   cleanget
isinstancestrisdigitint	add_errorr    )r4   cleaned_datar   r7   s      r+   r9   zNumberPowerForm.clean<   s     w} $$[1	 i%)*;*;*=II>##L1|Q/U-VW 	 !^##L1|Q/U-VWr*   )r   r   r   __doc__r,   r1   r9   __classcell__)r7   s   @r+   r   r      s     B 
  
D
" r*   r   c                       e Zd ZdZ ej
                  ej                  j                          e	d       ej                  ddi            Zy)NumberPowerCalculateFormz<Form for performing calculations on existing Person records.u   选择人员r   r   r   )querysetlabelwidgetN)r   r   r   rA   r   ModelChoiceFieldr   objectsallr    r$   personr)   r*   r+   rD   rD   i   sB    F#U####%u||7N";<Fr*   rD   N)djangor   django.utils.translationr   r    bazi.modelsr   datetimer   	ModelFormr   FormrD   r)   r*   r+   <module>rR      s9     6  Ieoo IZ,uzz r*   