3
reY                 @   s  d dl 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
mZ d dlmZ d dlmZmZmZmZmZ d dlmZ d d	lmZ d d
lmZmZmZmZmZ d dlZd dlZ d dl!m"Z"m#Z# d dl$m%Z% d dl&m'Z' dd Z(dd Z)dd Z*G dd dej+Z,dd Z-dd Z.dd Z/dd Z0dd Z1d d! Z2d"d# Z3G d$d% d%ej+Z4G d&d' d'ej+Z5G d(d) d)ej6Z7G d*d+ d+ej6Z8G d,d- d-ej6Z9G d.d/ d/ej:Z;G d0d1 d1ej<Z=G d2d3 d3ej<Z>G d4d5 d5ej<Z?d6d7 Z@d8d9 ZAd:d; ZBd<d= ZCd>d? ZDd@dA ZEdBdC ZFdDdE ZGdFdG ZHdHdI ZIdJdK ZJdLdM ZKdNdO ZLdPdQ ZMdRdS ZNdTdU ZOdVdW ZPdXdY ZQdZd[ ZRd\d] ZSd^d_ ZTd`da ZUdbdc ZVddde ZWdfdg ZXdhdi ZYdjdk ZZdldm Z[dndo Z\dpdq Z]drds Z^dtdu Z_dvdw Z`dxdy Zadzd{ Zbd|d} Zcd~d Zddd Zedd Zfdd Zgdd Zhdd Zidd Zjdd Zkdd Zldd Zmdd Zndd Zodd Zpdd Zqdd Zrdd Zsdd Ztdd Zudd Zvdd Zwdd Zxdd Zydd Zzdd Z{dd Z|dd Z}dd Z~dS )    N)Counter)JsonResponse)renderredirect)
AboutMeReqPublicationReqResearchReq)
CustomUser)	LoginFormRegistrationFormUserPasswordResetFormUserSetPasswordFormUserPasswordChangeForm)logout)views)StaffResearchPublicationAboutMeContact)CountQ)	Paginator)Rolec             C   sX   | j dkr>t| j}|j r4|j  td tdS td nt }d|i}t| d|S )NPOSTzAccount created successfully!z/accounts/login/zRegistration failed!formzaccounts/register.html)methodr   r   is_validsaveprintr   r   )requestr   context r"   0/var/www/html/StaffProfile/staffprofile/views.pyregister   s    


r$   c             C   sX   | j dkr>t| j}|j r4|j  td tdS td nt }d|i}t| d|S )Nr   zAccount created successfully!z/accounts/login/zRegistration failed!r   zpages/examples/register.html)r   r   r   r   r   r   r   r   )r    r   r!   r"   r"   r#   register_v1%   s    


r%   c             C   sX   | j dkr>t| j}|j r4|j  td tdS td nt }d|i}t| d|S )Nr   zAccount created successfully!z/accounts/login/zRegistration failed!r   zpages/examples/register-v2.html)r   r   r   r   r   r   r   r   )r    r   r!   r"   r"   r#   register_v24   s    


r&   c               @   s   e Zd ZdZeZdZdS )UserLoginViewzaccounts/login.html/N)__name__
__module____qualname__template_namer
   
form_classsuccess_urlr"   r"   r"   r#   r'   C   s   r'   c             C   s   t jjdjtddjd}t jjdjtddj }t jjdjtdj }|j }t jjdjtdj }ddd	g}t jj|d
jd}t|d}| j	j
d}	|j|	}
|
||||d}t| d|S )Nqualification)dcountrank)countschoolfield_of_studyz&Senior Academic and Research AssistantzAcademic and Research Assistantz%Chief Academic & Research Assistant I)rank__in	full_name
   page)staffr/   r1   college
departmentzstaff/index.html)r   objectsvaluesannotater   order_byr2   excluder   GETgetget_pager   )r    r/   r1   r:   Ztotr;   r@   staffs	paginatorpage_numberr9   r!   r"   r"   r#   	StaffListG   s     


rG   c             C   s   | j jd}tjj|d}tjj|d}tjj|d}tjj|d}tjj|d}tjj|d}|j	j
d}|d d |d  d }	||||||	d}
t| t| d	|
S )
Nid)ac_id r   .   z@astu.edu.et)r9   contactresearchpublicationaboutmeemailzstaff/staff_detail.html)r   rB   r   r<   filterr   r   r   r   r6   splitr   r   )r    	person_idrM   rN   rO   rP   r9   ZemailssZemailsrQ   r!   r"   r"   r#   staff_detailsa   s"    rU   c       
      C   s  dddg}ddddg}| j jd}tjj|d	jd
jtd
djd
}tjj|djdjtddj }tjjdjtdj }tjjdjtdjd}tjj	 }|||||d}	|dkrt
| d|	S |dkrt
| d|	S |dkrt
| d|	S |dkrt
| d|	S t
| dS d S )Nz&Senior Academic and Research AssistantzAcademic and Research Assistantz%Chief Academic & Research Assistant IzLevel IVz	Level IIIzLevel VZDiplomavalue)Zqualification__inr/   )r0   )r5   r1   )r2   r3   r4   )r9   r/   r1   r:   r;   Namezstaff/searchType/byName.htmlZ
Departmentz"staff/searchType/byDepartment.htmlRankzstaff/searchType/byRank.htmlZQualificationz%staff/searchType/byQualification.htmlzstaff/index.html)r   rB   r   r<   r@   r=   r>   r   r?   allr   )
r    r@   Zexclude_QualityrV   r/   r1   r:   r;   r9   r!   r"   r"   r#   search_viewu   s,    
&$

rZ   c             C   sf   | j jd}dddg}tjj|dj|djd}t|d}| jjd	}|j	|}d
|i}t
| d|S )Nr/   z&Senior Academic and Research AssistantzAcademic and Research Assistantz%Chief Academic & Research Assistant I)r5   )r/   r6   i r8   r9   zstaff/search_table.html)r   rB   r   r<   r@   rR   r?   r   rA   rC   r   )r    r/   r@   rD   rE   rF   r9   r!   r"   r"   r#   search_by_qualification   s    


r[   c             C   sT   | j jd}tjj|djd}t|d}| jjd}|j|}d|i}t	| d|S )Nr1   )r1   r6   i r8   r9   zstaff/search_table.html)
r   rB   r   r<   rR   r?   r   rA   rC   r   )r    r1   rD   rE   rF   r9   r!   r"   r"   r#   search_by_rank   s    

r\   c             C   sd   | j jd}dddg}tjj|djt|d}t|d}| jjd}|j	|}d	|i}t
| d
|S )Nnamez&Senior Academic and Research AssistantzAcademic and Research Assistantz%Chief Academic & Research Assistant I)r5   )Zfull_name__icontainsi r8   r9   zstaff/search_table.html)r   rB   r   r<   r@   rR   r   r   rA   rC   r   )r    r]   r@   rD   rE   rF   r9   r!   r"   r"   r#   search_by_name   s    


r^   c       
      C   s   | j jd}| j jd}| j jd}dddg}tjj|dj|dj|d	j|d
jd}t|d}| jjd}|j	|}d|i}	t
| d|	S )Ncrd_rankcrd_departmentcrd_collegez&Senior Academic and Research AssistantzAcademic and Research Assistantz%Chief Academic & Research Assistant I)r5   )r1   )r4   )r3   r6   i r8   r9   zstaff/search_table.html)r   rB   r   r<   r@   rR   r?   r   rA   rC   r   )
r    r_   r`   ra   r@   rD   rE   rF   r9   r!   r"   r"   r#   search_by_crd   s    
,

rb   c               @   s   e Zd ZdZeZdZdS )UserLoginViewV1zpages/examples/login.htmlr(   N)r)   r*   r+   r,   r
   r-   r.   r"   r"   r"   r#   rc      s   rc   c               @   s   e Zd ZdZeZdZdS )UserLoginViewV2zpages/examples/login-v2.htmlr(   N)r)   r*   r+   r,   r
   r-   r.   r"   r"   r"   r#   rd      s   rd   c               @   s   e Zd ZdZeZdS )UserPasswordResetViewzaccounts/forgot-password.htmlN)r)   r*   r+   r,   r   r-   r"   r"   r"   r#   re      s   re   c               @   s   e Zd ZdZeZdS )UserPasswordResetViewV1z#pages/examples/forgot-password.htmlN)r)   r*   r+   r,   r   r-   r"   r"   r"   r#   rf      s   rf   c               @   s   e Zd ZdZeZdS )UserPasswordResetViewV2z&pages/examples/forgot-password-v2.htmlN)r)   r*   r+   r,   r   r-   r"   r"   r"   r#   rg      s   rg   c               @   s   e Zd ZdZeZdS )UserPasswordResetConfirmViewzaccounts/recover-password.htmlN)r)   r*   r+   r,   r   r-   r"   r"   r"   r#   rh      s   rh   c               @   s   e Zd ZdZeZdS )UserPasswordChangeViewzaccounts/password_change.htmlN)r)   r*   r+   r,   r   r-   r"   r"   r"   r#   ri      s   ri   c               @   s   e Zd ZdZeZdS )UserPasswordChangeViewV1z$pages/examples/recover-password.htmlN)r)   r*   r+   r,   r   r-   r"   r"   r"   r#   rj      s   rj   c               @   s   e Zd ZdZeZdS )UserPasswordChangeViewV2z'pages/examples/recover-password-v2.htmlN)r)   r*   r+   r,   r   r-   r"   r"   r"   r#   rk      s   rk   c             C   s   t |  tdS )Nadministrator)r   r   )r    r"   r"   r#   user_logout_view   s    rm   c             C   s   ddd}t | d|S )N	dashboardZdashboardv1)parentsegmentzpages/index.html)r   )r    r!   r"   r"   r#   index   s    rq   c             C   s   ddd}t | d|S )Nrn   dashboardv2)ro   rp   zpages/index2.html)r   )r    r!   r"   r"   r#   index2   s    rs   c             C   s   ddd}t | d|S )Nrn   dashboardv3)ro   rp   zpages/index3.html)r   )r    r!   r"   r"   r#   index3   s    ru   c             C   s   ddd}t | d|S )N widgets)ro   rp   zpages/widgets.html)r   )r    r!   r"   r"   r#   rw     s    rw   c             C   s   ddd}t | d|S )Nrv   calendar)ro   rp   zpages/calendar.html)r   )r    r!   r"   r"   r#   examples_calendar  s    ry   c             C   s   ddd}t | d|S )Nrv   Zgallery)ro   rp   zpages/gallery.html)r   )r    r!   r"   r"   r#   examples_gallery  s    rz   c             C   s   ddd}t | d|S )Nrv   Zkanban_board)ro   rp   zpages/kanban.html)r   )r    r!   r"   r"   r#   examples_kanban  s    r{   c             C   s   ddd}t | d|S )NmailboxZinbox)ro   rp   zpages/mailbox/mailbox.html)r   )r    r!   r"   r"   r#   mailbox_inbox'  s    r}   c             C   s   ddd}t | d|S )Nr|   Zcompose)ro   rp   zpages/mailbox/compose.html)r   )r    r!   r"   r"   r#   mailbox_compose.  s    r~   c             C   s   ddd}t | d|S )Nr|   Z	read_mail)ro   rp   zpages/mailbox/read-mail.html)r   )r    r!   r"   r"   r#   mailbox_read_mail5  s    r   c             C   s   ddd}t | d|S )NpagesZinvoice)ro   rp   zpages/examples/invoice.html)r   )r    r!   r"   r"   r#   examples_invoice>  s    r   c             C   s   ddd}t | d|S )Nr   invoice_print)ro   rp   z!pages/examples/invoice-print.html)r   )r    r!   r"   r"   r#   r   E  s    r   c             C   s   ddd}t | d|S )Nr   profile)ro   rp   zpages/examples/profile.html)r   )r    r!   r"   r"   r#   examples_profileL  s    r   c             C   s   ddd}t | d|S )Nr   Z	ecommerce)ro   rp   zpages/examples/e-commerce.html)r   )r    r!   r"   r"   r#   examples_e_commerceS  s    r   c             C   s   ddd}t | d|S )Nr   Zprojects)ro   rp   zpages/examples/projects.html)r   )r    r!   r"   r"   r#   examples_projectsZ  s    r   c             C   s   ddd}t | d|S )Nr   Zproject_add)ro   rp   zpages/examples/project-add.html)r   )r    r!   r"   r"   r#   examples_project_adda  s    r   c             C   s   ddd}t | d|S )Nr   Zproject_edit)ro   rp   z pages/examples/project-edit.html)r   )r    r!   r"   r"   r#   examples_project_edith  s    r   c             C   s   ddd}t | d|S )Nr   Zproject_detail)ro   rp   z"pages/examples/project-detail.html)r   )r    r!   r"   r"   r#   examples_project_detailo  s    r   c             C   s   ddd}t | d|S )Nr   Zcontacts)ro   rp   zpages/examples/contacts.html)r   )r    r!   r"   r"   r#   examples_contactsv  s    r   c             C   s   ddd}t | d|S )Nr   Zfaq)ro   rp   zpages/examples/faq.html)r   )r    r!   r"   r"   r#   examples_faq}  s    r   c             C   s   ddd}t | d|S )Nr   Z
contact_us)ro   rp   zpages/examples/contact-us.html)r   )r    r!   r"   r"   r#   examples_contact_us  s    r   c             C   s   ddd}t | d|S )Nrv   )ro   rp   zpages/examples/lockscreen.html)r   )r    r!   r"   r"   r#   
lockscreen  s    r   c             C   s   ddd}t | d|S )NextraZlegacy_user)ro   rp   z$pages/examples/legacy-user-menu.html)r   )r    r!   r"   r"   r#   legacy_user_menu  s    r   c             C   s   ddd}t | d|S )Nr   Zlegacy_menu)ro   rp   z!pages/examples/language-menu.html)r   )r    r!   r"   r"   r#   language_menu  s    r   c             C   s   ddd}t | d|S )Nr   	error_404)ro   rp   zpages/examples/404.html)r   )r    r!   r"   r"   r#   r     s    r   c             C   s   ddd}t | d|S )Nr   	error_500)ro   rp   zpages/examples/500.html)r   )r    r!   r"   r"   r#   r     s    r   c             C   s   ddd}t | d|S )Nr   pace)ro   rp   zpages/examples/pace.html)r   )r    r!   r"   r"   r#   r     s    r   c             C   s   ddd}t | d|S )Nr   
blank_page)ro   rp   zpages/examples/blank.html)r   )r    r!   r"   r"   r#   r     s    r   c             C   s   ddd}t | d|S )Nr   starter_page)ro   rp   zpages/examples/starter.html)r   )r    r!   r"   r"   r#   r     s    r   c             C   s   ddd}t | d|S )Nsearchsearch_simple)ro   rp   zpages/search/simple.html)r   )r    r!   r"   r"   r#   r     s    r   c             C   s   ddd}t | d|S )Nr   search_enhanced)ro   rp   zpages/search/enhanced.html)r   )r    r!   r"   r"   r#   r     s    r   c             C   s   ddd}t | d|S )Nrv   )ro   rp   z pages/search/simple-results.html)r   )r    r!   r"   r"   r#   simple_results  s    r   c             C   s   ddd}t | d|S )Nrv   )ro   rp   z"pages/search/enhanced-results.html)r   )r    r!   r"   r"   r#   enhanced_results  s    r   c             C   s   ddd}t | d|S )Nrv   )ro   rp   zpages/search/iframe.html)r   )r    r!   r"   r"   r#   iframe  s    r   c             C   s   ddd}t | d|S )Nchartschartjs)ro   rp   zpages/charts/chartjs.html)r   )r    r!   r"   r"   r#   r     s    r   c             C   s   ddd}t | d|S )Nr   flot)ro   rp   zpages/charts/flot.html)r   )r    r!   r"   r"   r#   r     s    r   c             C   s   ddd}t | d|S )Nr   inline)ro   rp   zpages/charts/inline.html)r   )r    r!   r"   r"   r#   r     s    r   c             C   s   ddd}t | d|S )Nr   uplot)ro   rp   zpages/charts/uplot.html)r   )r    r!   r"   r"   r#   r     s    r   c             C   s.  | j j}tjj|d}dddg}tjj|dj|jdj	 }tjj|dj	 }tjj
 j	 }tjj
 j	 }tjjddj	 }tjjd	dj	 }	tjjd
jddj|jdj	 }
tjjd
jddj	 }tjjd
jddj|jdj	 }tjjd
jddj	 }tjjd
jddj|jdj	 }tjjd
jddj	 }||||||
||||	||d}| j jd	krtt| d|S | j jdkrt| d|S | j jdkrt| d|S | j jdkrt| d|S | j jdkrt| d|S | j jdkrt| d|S | j jdkrt| d|S | j jdkr*t| d|S d S )N)rH   z&Senior Academic and Research AssistantzAcademic and Research Assistantz%Chief Academic & Research Assistant I)r5   )r3   1)	is_active0rT   T)Zapproved_by_id__isnull)r9   hr_publicationhr_researchhr_abouthr_staffaboutrN   rO   active_usersinactive_usersusersroleszpages/examples/profile.html   z&superAdmin/pages/examples/profile.htmlrL   z!SoCEA/pages/examples/profile.html   z!SoHSS/pages/examples/profile.html   z!SoANS/pages/examples/profile.html   z!SoEEC/pages/examples/profile.html   z"SoMCME/pages/examples/profile.html   zhr/pages/examples/profile.html)useruser_roles_idr   r<   rB   r   r@   rR   descriptionr2   rY   r	   r   select_relatedr   r   r   )r    Zuser_role_idroler@   r9   r   r   r   r   r   r   r   rN   r   rO   r   r!   r"   r"   r#   r     sV    
"""r   c             C   s   ddd}t | d|S )Nlayouttop_navigation)ro   rp   zpages/layout/top-nav.html)r   )r    r!   r"   r"   r#   r   :  s    r   c             C   s   ddd}t | d|S )Nr   ztop navigation with sidebar)ro   rp   z!pages/layout/top-nav-sidebar.html)r   )r    r!   r"   r"   r#   top_nav_sidebarA  s    r   c             C   s   ddd}t | d|S )Nr   Zboxed_layout)ro   rp   zpages/layout/boxed.html)r   )r    r!   r"   r"   r#   boxedH  s    r   c             C   s   ddd}t | d|S )Nr   Zfixed_layout)ro   rp   zpages/layout/fixed-sidebar.html)r   )r    r!   r"   r"   r#   fixed_sidebarO  s    r   c             C   s   ddd}t | d|S )Nr   Zlayout_cuastom)ro   rp   z&pages/layout/fixed-sidebar-custom.html)r   )r    r!   r"   r"   r#   fixed_sidebar_customV  s    r   c             C   s   ddd}t | d|S )Nr   Zfixed_topNav)ro   rp   zpages/layout/fixed-topnav.html)r   )r    r!   r"   r"   r#   fixed_topnav]  s    r   c             C   s   ddd}t | d|S )Nr   fixed_footer)ro   rp   zpages/layout/fixed-footer.html)r   )r    r!   r"   r"   r#   r   d  s    r   c             C   s   ddd}t | d|S )Nr   collapsed_sidebar)ro   rp   z#pages/layout/collapsed-sidebar.html)r   )r    r!   r"   r"   r#   r   k  s    r   c             C   s   ddd}t | d|S )NuiZgeneral)ro   rp   zpages/UI/general.html)r   )r    r!   r"   r"   r#   
ui_generalt  s    r   c             C   s   ddd}t | d|S )Nr   Zicons)ro   rp   zpages/UI/icons.html)r   )r    r!   r"   r"   r#   ui_icons{  s    r   c             C   s   ddd}t | d|S )Nr   Zbuttons)ro   rp   zpages/UI/buttons.html)r   )r    r!   r"   r"   r#   
ui_buttons  s    r   c             C   s   ddd}t | d|S )Nr   Zsliders)ro   rp   zpages/UI/sliders.html)r   )r    r!   r"   r"   r#   
ui_sliders  s    r   c             C   s   ddd}t | d|S )Nr   Zmodals_alerts)ro   rp   zpages/UI/modals.html)r   )r    r!   r"   r"   r#   ui_modals_alerts  s    r   c             C   s   ddd}t | d|S )Nr   Znavbar_tabs)ro   rp   zpages/UI/navbar.html)r   )r    r!   r"   r"   r#   ui_navbar_tabs  s    r   c             C   s   ddd}t | d|S )Nr   Ztimeline)ro   rp   zpages/UI/timeline.html)r   )r    r!   r"   r"   r#   ui_timeline  s    r   c             C   s   ddd}t | d|S )Nr   Zribbons)ro   rp   zpages/UI/ribbons.html)r   )r    r!   r"   r"   r#   
ui_ribbons  s    r   c             C   s   ddd}t | d|S )Nformsform_general)ro   rp   zpages/forms/general.html)r   )r    r!   r"   r"   r#   r     s    r   c             C   s   ddd}t | d|S )Nr   Zadvanced_form)ro   rp   zpages/forms/advanced.html)r   )r    r!   r"   r"   r#   form_advanced  s    r   c             C   s   ddd}t | d|S )Nr   Ztext_editors)ro   rp   zpages/forms/editors.html)r   )r    r!   r"   r"   r#   form_editors  s    r   c             C   s   ddd}t | d|S )Nr   
validation)ro   rp   zpages/forms/validation.html)r   )r    r!   r"   r"   r#   form_validation  s    r   c             C   s   ddd}t | d|S )NtablesZsimple_table)ro   rp   zpages/tables/simple.html)r   )r    r!   r"   r"   r#   table_simple  s    r   c             C   s   ddd}t | d|S )Nr   Z
data_table)ro   rp   zpages/tables/data.html)r   )r    r!   r"   r"   r#   
table_data  s    r   c             C   s   ddd}t | d|S )Nr   ZjsGrid)ro   rp   zpages/tables/jsgrid.html)r   )r    r!   r"   r"   r#   table_jsgrid  s    r   )arraycollectionsr   django.httpr   Zdjango.shortcutsr   r   Z	HR.modelsr   r   r   Z
app.modelsr	   Zstaffprofile.formsr
   r   r   r   r   django.contrib.authr   r   
auth_viewsZstaff.modelsr   r   r   r   r   jsonZurllib.requesturllibdjango.db.modelsr   r   django.core.paginatorr   superAdmin.modelsr   r$   r%   r&   	LoginViewr'   rG   rU   rZ   r[   r\   r^   rb   rc   rd   ZPasswordResetViewre   rf   rg   ZPasswordResetConfirmViewrh   PasswordChangeViewri   rj   rk   rm   rq   rs   ru   rw   ry   rz   r{   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r"   r"   r#   <module>   s   						2			