B
    b\                 @   s~   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 d dlmZ eeG d	d
 d
eZdS )    )Q)gettext_lazy)admin)ZKModelAdmin)actions)Announcement)Employee)MyUserc                   s   e Zd ZdZdZdZejejgZdd Z	dd Z
ede
_d	d
 Zede_dd Zede_dd Zede_dd Zede_ fddZ  ZS )AnnouncementAdmin)get_subject_displaycategoryget_emp_displayget_content_displayget_sender_displayget_system_sender_displayZcreate_time)subjectr   content)r   r   Zreceiver__emp_codec             C   s   |j |d dS )zA
        Given a model instance save it to the database.
        )requestN)Zsave)selfr   objZformZchange r   ?G:\easytimepro\master/mysite/mobile\admin\announcement_admin.py
save_model   s    zAnnouncementAdmin.save_modelc             C   s.   |j }|r*t|dkr*d|j d d }|S )N2   z{0}....)r   lenformat)r   r   r   r   r   r   r   !   s    z%AnnouncementAdmin.get_subject_displayZannouncement_filed_subjectc             C   s2   |j }|j r.t|j dkr.d|j d d }|S )Nr   z{0}....)r   r   r   )r   r   r   r   r   r   r   )   s    z%AnnouncementAdmin.get_content_displayZannouncement_filed_contentc             C   s    |j sdtdS |j jS d S )Nz{0}Zannounce_all_emp)Zreceiverr   _emp_code)r   r   r   r   r   r   1   s    z!AnnouncementAdmin.get_emp_displayZannouncement_filed_empc             C   sD   |j sd}d|S tjj|j dd}|r@d|d d S d S )Nz--z{0})idr   r   )senderr   r   objectsfiltervalues)r   r   valr   r   r   r   r   9   s    
z$AnnouncementAdmin.get_sender_displayZannouncement_filed_senderc             C   s$   |j sd}d|S d|j S d S )Nz--z{0})system_senderr   )r   r   r#   r   r   r   r   D   s    
z+AnnouncementAdmin.get_system_sender_displayZannouncement_field_systemSenderc       
         s  t t| |}|jjs|jj}|jj}| rtj	
t| dtddB  }|rhdd |D ng }tj	j
| d}|rdd |D ng }|
t| dtd	d
@ tdd
t|d@ td d@ B tdd
t|d@ td d@ B }| rtj	
t| dtddB  }|r0dd |D ng }tj	j
| d }|r^dd |D ng }tj	j
| d}	|
t|	dtd	d
@ tdd
t|d@ td d@ B tdd
t|d@ td d@ B }nNtj	j
|jjdjddd}|
t|dtd dtdd
@ B t|jjdB }|S )N)Zauth_dept__inT)is_superuserc             S   s   g | ]
}|j qS r   )username).0ur   r   r   
<listcomp>U   s    z2AnnouncementAdmin.get_queryset.<locals>.<listcomp>)Zdepartment__inc             S   s   g | ]
}|j qS r   )r   )r'   er   r   r   r)   W   s    )Zreceiver__department__in   )r      )Zsystem_sender__in)r   )Z
sender__in)r$   )Zauth_area__inc             S   s   g | ]
}|j qS r   )r&   )r'   r(   r   r   r   r)   ]   s    )Zarea__inc             S   s   g | ]
}|j qS r   )r   )r'   r*   r   r   r   r)   _   s    )Zreceiver__in)Z
company_idr   )Zflat)superr
   get_querysetuserr%   Zget_auth_deptZget_auth_areaexistsr	   r    r!   r   allZdistinctr   Zcurrent_companyZvalues_list)
r   r   ZqsZ	auth_deptZ	auth_areaZ	user_listZ	user_nameZempr   Zemp_list_by_area)	__class__r   r   r.   N   s2    
$H
$D"zAnnouncementAdmin.get_queryset)__name__
__module____qualname__Zlist_displayZquery_fieldsZlist_filterr   Zpush_public_noticeZpush_private_noticer   r   r   Zshort_descriptionr   r   r   r   r.   __classcell__r   r   )r2   r   r
      s"   


	

r
   N)Zdjango.db.modelsr   Zdjango.utils.translationr   r   mysiter   Zmysite.admin.kernelr   Zmysite.mobiler   Zmysite.mobile.modelsr   Zmysite.personnel.modelsr   Zmysite.accounts.modelsr	   registerr
   r   r   r   r   <module>   s   