
    "gw
                     ~    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 d d	lmZ d
 ZddZy)    )User)ValidationError)validate_email)IntegrityError)HttpResponseServerError)load_workbook)send_staff_welcome_email)Profile)Administratorc                 j    | D ]	  }|dk(  s	 y 	 t        | d          y# t        $ r
}Y d }~yd }~ww xY w)N FT)r   r   )rowitemes      D/var/www/peopleoo.sandbox-dev.co.uk/apps/carers/lib/process_excel.pycheck_row_validr      sF     2:s2w   s    	22c           	      2   t        |       }|j                  }|d   D cg c]  }|j                   }}d}d}	|j                  dd      D ])  }
|dz  }t	        |
      }|st        t        ||
            }t        j                  j                         }	 t        j                  j                  |d   |d   |d   |d	   |d
      }|rAt        j                  j                  |      }|j                  j                  |       |	dz  }	t!        |d      rT|j"                  }|j$                  j                  |       |	dz  }	|st'        ||       d|_        |j+                          t-        d      c S  |	|fS c c}w # t        $ r}Y d}~Ed}~ww xY w)zZ
    Process the uploaded Excel file using openpyxl and add users to admins or staff.
    )filename   r      T)min_rowvalues_onlyzEmail addressz
First Namez	Last NameF)usernameemail
first_name	last_namepassword	is_activeN)userprofilezSomething went wrong.)r   activevalue	iter_rowsr   dictzipr   objectsmake_random_passwordcreate_userr   r   createadminsaddhasattrr!   staffr	   sent_welcome_emailsaver   )fileorganisationr+   send_emailswbsheetcellheaders
total_rowsnumber_addedr   row_is_validrow_datar   r    r   adminr!   s                     r   process_excel_filer=      s    
	%BIIE ',Ah/dtzz/G/JLqd; Ma
&s+C-.H||88:H||///9RZbcrZs7?7MYabmYn5= 0 P %--44$4?##''.! 4+"llG &&**73 A%L"0|D59225JLL?MF ##O 0  " s   E=1F	FFN)F)django.contrib.auth.modelsr   django.core.exceptionsr   django.core.validatorsr   	django.dbr   django.httpr   openpyxlr   apps.carers.lib.emailsr	   apps.carers.modelsr
   apps.orgs.modelsr   r   r=        r   <module>rI      s*    + 2 1 $ / " ; & *	/$rH   