
\                @   s  d  d l  m Z m Z d  d l m Z m Z m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m  Z  m! Z! m" Z" m# Z# m$ Z$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* d  d l+ m, Z, d  d l- m. Z. d  d l/ m0 Z0 d  d l1 m2 Z2 d  d l- m3 Z3 m4 Z4 d  d l5 m6 Z6 m7 Z7 m8 Z8 d  d	 l9 m: Z: d
 d l; m< Z< d  d l= m> Z> d  d l? m? Z? m@ Z@ d  d lA ZA d  d lB mC ZC d  d lD mE ZE d  d lF ZF d  d lG ZG d  d lH mI ZI d  d l= m> Z> d
 d lJ mK ZK d  d lL ZL d  d lM ZM d  d lN mO ZO d  d lP ZP d
 d lQ mR ZR d  d lS mT ZT d  d lU ZU d  d lV ZW d  d lX mY ZY d  d lZ m[ Z[ d  d l\ Z\ d  d l] Z] eC d d    Z^ e. d g  e3 e2 f  eC d d      Z_ e. d g  e3 f   eC d d      Z` e. d g  e3 f   eC d d       Za e. d g  e3 e2 f  eC d! d"      Zb e. d g  e3 e2 f  eC d# d$      Zc e. d g  e3 e2 f  eC d% d&      Zd e. d g  e3 e2 f  eC d' d(      Ze e. d g  e3 e2 f  eC d) d*      Zf e. d g  e3 e2 f  eC d+ d,      Zg e. d g  e3 e2 f  eC d- d.      Zh e. d g  e3 e2 f  eC d/ d0      Zi e. d g  e3 e2 f  eC d1 d2      Zj e. d g  e3 e2 f  eC d3 d4      Zk e. d g  e3 e2 f  eC d5 d6      Zl e. d g  e3 e2 f  eC d7 d8      Zm e. d g  e3 e2 f  eC d9 d:      Zn e. d g  e3 e2 f  eC d; d<      Zo e. d g  e3 e2 f  eC d= d>      Zp e. d g  e3 e2 f  eC d? d@      Zq e. d g  e3 e2 f  eC dA dB      Zr e. d g  e3 e2 f  eC dC dD      Zs e. d g  e3 e2 f  eC dE dF      Zt e. d g  e3 e2 f  eC dG dH      Zu e. d g  e3 e2 f  eC dI dJ      Zv e. d g  e3 e2 f  eC dK dL      Zw e. d g  e3 e2 f  eC dM dN      Zx e. d g  e3 e2 f  eC dO dP      Zy e. d g  e3 e2 f  eC dQ dR      Zz e. d g  e3 e2 f  eC dS dT      Z{ e. d g  e3 f   eC dU dV      Z| e. d g  e3 e2 f  eC dW dX      Z} e. d g  e3 e2 f  eC dY dZ      Z~ e. d g  e3 e2 f  eC d[ d\      Z e. d g  e3 e2 f  eC d] d^      Z e. d g  e3 e2 f  eC d_ d`      Z e. d g  e3 e2 f  eC da db      Z e. d g  e3 e2 f  eC dc dd      Z e. d g  e3 e2 f  eC de df      Z e. d g  e3 e2 f  eC dg dh      Z e. d g  e3 e2 f  eC di dj      Z e. d g  e3 e2 f  eC dk dl      Z e. d g  e3 e2 f  eC dm dn      Z e. d g  e3 e2 f  eC do dp      Z e. d g  e3 e2 f  eC dq dr      Z e. d g  e3 e2 f  eC ds dt      Z e. d g  e3 e2 f  eC du dv      Z e. d g  e3 e2 f  eC dw dx      Z e. d g  e3 e2 f  eC dy dz      Z e. d g  e3 e2 f  eC d{ d|      Z e. d g  e3 e2 f  eC d} d~      Z e. d g  e3 e2 f  eC d d      Z e4 e6 e7 e8 f  eC d d     Z e. d g  e3 e2 f  eC d d      Z d S)    )HttpResponseJsonResponse)'UserAssignVesselSurveyReport	TestTableFenderingImagesBulwarksImageBulwarksDeckCargoRailsImage
CargoRailsDeckFittingsImageDeckFittingsGroundTackleImageHullCompImageHullCompTankHullCompCapacityHullCompBulletDeckHouseImagePilotHouseImageSuperStructureImageMachinaryImageSafetyEquipmentImageBerthingCompartmentsGalley	MessDecksLaundryHospitalRecreationRoomTheaterRoomHeloReceptionRoomPublicSanitaryFacilitiesOtherDeckHouseCategoryPilothouseEquipmentsAuxiliaryMachineryRecommendationsSurveyReportBargeBowCompartmentStarboardSideSternCompartmentPortSide)authenticate)api_view)Token)IsAuthenticated)permission_classesparser_classes)FileUploadParserMultiPartParser
FormParser)FileSystemStorage   )account_activation_token)settings)datetime	timedeltaN)csrf_exempt)timezone)serializers)TestForm)
S3Transfer)text_to_speech)GlobalConfiguration)MIMEMultipart)MIMETextc          	   C   s   |  j  j d  } |  j  j d  } t d | d |  } | s[ t d d d d d d i  S| j s t d d	 d d
 d d i  St j j d |  \ } } t d d d | j d d d | j	 i  S)NemailpasswordmessagezEmail or password is invalid.code500token z0User not activated. Please contact administratorZ404user200user_id)
POSTgetr+   r   	is_activer-   objectsget_or_createkeyid)requestrC   rD   rJ   rH   _ rV   :/var/www/html/dls.localhost.com/myproject/dls_api/views.py
user_loginT   s    	rX   rM   c             C   s   g  } t  j j d |  j j  } t j t | j  } t	 | d   } t
 j | j    } Wd  QRX| j d | j d | j d | j d t | d  d | j d	 | j d
 | j d | j i  t d d d | i  S)NpkrbrS   
first_name	last_nameavatorzutf-8address	mobile_nocitystaterF   rK   user_details)r   rP   rN   rJ   rS   r7   
MEDIA_ROOTstrr]   openbase64	b64encodereadappendr[   r\   r^   r_   r`   ra   r   )rT   Zuser_arrrb   filenameZ	imageFileZstr_1rV   rV   rW   user_profilec   s     							rk   c       	      C   s   |  j  j d  } t j j d |  } d } d } | r | d } d d   } |   } | | _ | j   d } d t |  d } t j	 d	 | d
 | |  n d } d } t
 d | d | i  S)NrC   rK   rI   r   c               S   s   t  j d d  S)Ni  i'  )randomrandintrV   rV   rV   rW   <lambda>   s    z!forget_password.<locals>.<lambda>z<html>
                        <head></head>
                        <body>
                        <h1>Use this otp to change your password.</h1>
                        <p>Seems like you forgot your password for DLS account.
This is your OTP : zY</p>
                        </body>
                        </html>
                    zDufour Laskay & StrousezOTP for forgot password300zInvalid Email AddressrF   rE   )rM   rN   r   rP   filterotpsaverd   r@   
send_emailr   )	rT   rC   rJ   rF   statusrrq   Z	body_textZ	body_htmlrV   rV   rW   forget_passwordz   s"    
		
rv   c             C   s   |  j  j d  } |  j  j d  } |  j  j d  } t j j d |  } d } d } | r | d } t | j  t |  k r | j |  | j   q d } d } n d } d	 } t	 d
 | d | i  S)NrC   rD   rq   rK   rI   r   ro   zInvalid OTPzInvalid Email AddressrF   rE   )
rM   rN   r   rP   rp   rd   rq   set_passwordrr   r   )rT   rC   rD   rq   rJ   rF   rt   rV   rV   rW   update_password   s     
	rx   c       	   
   C   s  g  } g  } g  } t  j   j   } t j j d |  j j  j d |  j d d  } x? | D]7 } | j d | j	 d | j d | j
 d | j i  q^ Wt j j d |  j j  j d	 |  j d d  } x? | D]7 } | j d | j	 d | j d | j
 d | j i  q Wt j j d |  j j  j d
 |  j d d  j d d  } x? | D]7 } | j d | j	 d | j d | j
 d | j i  qTWt d d d | d | d | i  S)NrL   Zassignment__start_dateZstage_completed_id__lte   vessel_nameassign_vessel_idvessel_type_idZvessel_stage_idZassignment__start_date__gtZassignment__start_date__ltrt   r5   rF   rK   assignment_detailsassignment_arr_futureassignment_arr_prev)r8   nowdater   rP   rp   rJ   rS   ri   rz   r|   stage_completed_idr   )	rT   Zassignment_arrr~   r   todayr}   ZasgZassignment_details_futureZassignment_details_prevrV   rV   rW   user_assignment   s:    3			3			?				r   c             C   s   g  } t  j j d |  j j  j d |  j j d   j d |  j j d   } x | D]y } | j d | j d | j	 d | j
 d | j d | j d	 | j d
 | j d | j j d | j d | j d | j i  qX Wt d d d | i  S)NrL   rS   r{   r|   ra   r`   
account_ofoperatorownerrz   vessel_type_namerequested_by	form_typerF   rK   vessel_details_arr)r   rP   rp   rJ   rS   rM   rN   ri   street_addressr`   ra   r   r   r   rz   vessel_type	type_namer   r   r   )rT   r   Zvessel_detailsZvdrV   rV   rW   user_vessel_details   s"    K										r   c             C   s  t  j j d t |  j j d    } |  j j d d  | _ |  j j d d  | _ |  j j d d  | _ |  j j d d  | _ |  j j d d  | _	 |  j j d	 d  | _
 |  j j d
 d  | _ | j d k r d | _ t j   | _ | j   |  j j d  d k rt j j d t |  j j d    } | ro|  j j d d  | d _ | d j   | r| d j n d } n@ t j j d t |  j j d    } | r| d j n d } t d d d d d | i  S)NrY   rS   r   rI   r   r   r   rz   r   r      ry   r   0assigned_vessel_idr   rF   rK   msgz Information updated successfullysurvey_report_id)r   rP   rN   intrM   r   r   r   r   rz   r   r   r   r8   r   vessel_deployedrr   r   rp   survey_locationrS   r&   r   )rT   objsurvey_reportr   rV   rV   rW   update_user_vessel_details   s.    '	
''	r   c       N      C   sD
  g  } g  } g  } g  } g  } g  } g  } g  } g  }	 g  }
 g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  }  g  }! g  }" g  }# g  }$ g  }% g  }& g  }' g  }( g  }) g  }* g  }+ g  }, g  }- g  }. g  }/ g  }0 g  }1 g  }2 g  }3 g  }4 g  }5 g  }6 g  }7 g  }8 g  }9 g  }: g  }; g  }< g  }= g  }> g  }? t  j j d t |  j d   }@ x1 |@ d j j   D] }A | j t |A j   qWx1 |@ d j	 j   D] }B | j t |B j	   qWx1 |@ d j
 j   D] }C | j t |C j
   qWx1 |@ d j j   D] }D | j t |D j   qLWx1 |@ d j j   D] }E | j t |E j   qWx1 |@ d j j   D] }E | j t |E j   qWx1 |@ d j j   D] }F | j t |F j   qWx1 |@ d j j   D] }F | j t |F j   qWx1 |@ d j j   D] }F |	 j t |F j   qPWx1 |@ d j j   D] }F |
 j t |F j   qWx1 |@ d j j   D] }F | j t |F j   qWt j d |@  }G |@ d }@ x |@ j j   D] }H | j |H j  | j |H j  | j |H j  | j |H j  | j |H j  | j |H j  | j |H j  | j |H j  | j |H j  | j |H j  qWx |@ j  j   D] }I | j |I j!  | j |I j"  | j |I j#  |  j |I j$  |! j |I j%  |" j |I j&  |# j |I j'  |$ j |I j(  |% j |I j)  qWx |@ j* j   D]v }J | j |J j+  | j |J j,  | j |J j-  | j |J j.  | j |J j/  | j |J j0  | j |J j1  qhWxG |@ j2 j   D]6 }K |& j |K j3  |' j |K j4  |( j |K j5  qWxG |@ j6 j   D]6 }L |) j |L j7  |* j |L j8  |+ j |L j9  q<Wx7 |@ j: j   D]& }M |, j |M j;  |- j |M j<  qWx7 |@ j= j   D]& }M |. j |M j>  |/ j |M j?  qWx7 |@ j@ j   D]& }M |0 j |M jA  |1 j |M jB  qWx7 |@ jC j   D]& }M |2 j |M jD  |3 j |M jE  q4Wx7 |@ jF j   D]& }M |4 j |M jG  |5 j |M jH  qnWx7 |@ jI j   D]& }M |6 j |M jJ  |7 j |M jK  qWx7 |@ jL j   D]& }M |8 j |M jM  |9 j |M jN  qWx' |@ jO j   D] }M |: j |M jP  qWxG |@ jQ j   D]6 }M |; j |M jR  |< j |M jS  |= j |M jT  qFWx7 |@ jU j   D]& }M |> j |M jV  |? j |M jW  qWtX d |G d |& d |' d |( d	 |) d
 |* d |+ d | d | d | d | d | d | d | d | d | d | d | d | d | d | d | d | d | d | d | d | d  |  d! |! d" |" d# |# d$ |$ d% |% d& | d' | d( | d) | d* | d+ | d, | d- | d. |	 d/ |
 d0 | d1 |, d2 |- d3 |. d4 |/ d5 |0 d6 |1 d7 |2 d8 |3 d9 |4 d: |5 d; |6 d< |7 d= |8 d> |9 d? |: d@ |; dA |< dB |= dC |> dD |? i@  S)ENrS   r   r   jsonr   tanktypetanktypefillingstanktypeventscapacitytypecapacitytypefillingscapacitytypeventsbulwarks_deck_namebulwarks_deck_heightbulwarks_deck_typebulwarks_deck_materialbulwarks_deck_capbulwarks_deck_cap_dimenbulwarks_deck_stiffenersbulwarks_deck_cap_dimen_otherbulwarks_deck_name_otherbulwarks_deck_stiffeners_otherdf_deck_namedf_fittings	df_numberdf_sizedf_locationdf_deck_name_otherdf_fittings_othercargorails_deck_namecargorails_deck_heightcargorails_deck_constructioncargorails_deck_capcargorails_deck_cap_dimencargorails_deck_stiffenerscargorails_deck_cap_dimen_othercargorails_deck_name_othercargorails_deck_materialfendering_images_arrcargo_rails_images_arrdeck_fitting_images_arrground_tackle_images_arrhull_comp_images_arrbulwarks_image_arrdeck_house_image_arrpilot_house_image_arrsuper_structure_image_arrmachinary_image_arrsafety_equipment_image_arrdh_bc_outer_bulletdh_bc_inner_bulletdh_g_outer_bulletdh_g_inner_bulletdh_md_outer_bulletdh_md_inner_bulletdh_l_outer_bulletdh_l_inner_bulletdh_h_outer_bulletdh_h_inner_bulletdh_rr_outer_bulletdh_rr_inner_bulletdh_tr_outer_bulletdh_tr_inner_bulletpe_outer_bulletm_am_outer_bulletm_am_inner_bulletm_am_ratingrecom_outer_bulletrecom_inner_bullet)Yr   rP   rp   r   rM   fendering_imagesallri   rd   bulwarks_imagecargo_rails_imagesdeck_fitting_imagesground_tackle_imageshull_comp_imagesdeck_house_imagepilot_house_imagesuper_structure_imagemachinary_imagesafety_equipment_imager<   	serializebulwarks_deckr   r   r   r   r   r   r   r   r   r   cargo_railsr   r   r   r   r   r   r   r   r   deck_fittingsr   r   r   r   r   r   r   hull_comp_tankhc_tank_typehc_filling_lineshc_ventshull_comp_capacityhc_capacity_typehc_capacity_volhc_capacity_unitsberthing_compartmentsr   r   galleyr   r   
mess_decksr   r   laundryr   r   hospitalr   r   recreation_roomr   r   theater_roomr   r   pilothouse_equipmentsr   auxiliary_machineryr   r   r   recommendationsr   r   r   )NrT   r   r   r   r   r   r   r   r   r   r   r   df_deck_name_arrdf_fittings_arrdf_number_arrdf_size_arrdf_location_arrdf_deck_name_other_arrdf_fittings_other_arrr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   hc_tanktypehc_tanktypefillingshc_tanktypeventshc_capacitytypehc_capacitytypefillingshc_capacitytypeventsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   imgbimgcimgdimggimgZdhimgdatabdcrdfhchccZbthrV   rV   rW   survey_report_details  s   "
r  c             C   sx  d  } |  j  d d k r t j j d t |  j  d   } | r^ |  j  d | _ | j   qYt j j d t j j d t |  j  d   j	 d t j j d t |  j  d   d |  j  d d |  j  d d	 t
 j    } n| t j j d t j j d t |  j  d   j	 d t j j d t |  j  d   d |  j  d d |  j  d d	 t
 j    } t d
 d d t | j  i  S)Nr   r   rY   vessel_description
assignmentr{   assigned_vesselgd_extra_note
created_onrF   rK   )rM   r   rP   rN   r   r  rr   creater   r  r;   r   r   rd   rS   )rT   r   rV   rV   rW   survey_report_step1)  s&    "%"%"r  c             C   s]  d  } t  j   t d d  } d } |  j d rt j j d t |  j d   } d } |  j d d k r t  j |  j d d	  } t t	 j
 | j     } t	 j
 | j r | j j   n	 | j    | k rL| j } t d
 d d | j rt | j  j d d  d  d  n t |  j d d  d  d  d | d | j i  S|  j d | _ |  j d | _ t  j |  j d d	  | _ | j   t d
 d i  Sn t j j d t j j d t |  j d   j d t j j d t |  j d   d |  j d d |  j d d t j   d t  j |  j d d	   } t d
 d d t | j  i  Sd  S)Nhoursr5   rI   r   rY   r   
updated_onr   z%Y-%m-%d %H:%M:%SrF   rK   T    r  r  ro   r  r{   r  r  )r8   r   r9   rM   r   rP   rN   r   strptimetimemktime	timetupler  r  r   rd   replacer  rr   r  r   r  r;   rS   )rT   r   r   r  request_timedtrV   rV   rW   survey_report_step1_detailsF  s@    "3	P
%"r)  c             C   s   t  j j d t |  j d   } |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _	 |  j d | _
 |  j d	 | _ |  j d
 | _ |  j d | _ | j   t d d d t | j  i  S)NrY   r   port_bow_length_feetport_bow_length_inchport_stern_length_feetport_stern_length_inchstarboard_bow_length_feetstarboard_bow_length_inchstarboard_stern_length_feetstarboard_stern_length_inchr  rF   rK   )r   rP   rN   r   rM   r*  r+  r,  r-  r.  r/  r0  r1  r  rr   r   rd   rS   )rT   r   rV   rV   rW   survey_report_step2t  s    "
r2  c             C   s  d  } t  j   t d d  } d } d } d } d } d } d } d }	 d }
 |  j d rt j j d t |  j d   } | j } | j	 } | j
 } | j } | j } | j } | j }	 | j }
 d } |  j d d k rt  j |  j d d	  } t t j | j     } t j | j r1| j j   n	 | j    | k rd
 | d | d | d | d | d | d |	 d |
 d | j i	 } t d d d | j rt | j  j d d  d  d  n t |  j d d  d  d  d | i  St  j |  j d d	  | _ |  j d
 | _ |  j d | _	 |  j d | _
 |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ | j   t d d i  Sd  S)Nr  r5   rI   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Sr*  r+  r,  r-  r.  r/  r0  r1  r  rF   rK   r  r   r!  r  ro   )r8   r   r9   rM   r   rP   rN   r   r*  r+  r,  r-  r.  r/  r0  r1  r"  r#  r$  r%  r  r  r   rd   r&  rr   )rT   r   r   r*  r+  r,  r-  r.  r/  r0  r1  r'  r(  r  rV   rV   rW   survey_report_step2_details  sf    "								3P
r3  c             C   s  t  j j d t |  j d   } |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _	 |  j d | _
 |  j d	 | _ |  j d
 | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ | j   t d d d t  | j!  i  S)NrY   r   built_nobuilt_detailsofficial_noimo_noprevious_nameflagdimentions_lengthdimentions_widthdimentions_heightoverall_lengthgrtnrtgitnit
classed_asdeck_length
deck_widthclear_deck_lengthclear_deck_widthdeck_cargo_ratingengine_descriptionhorsepower_minhorsepower_maxdriver  rF   rK   )"r   rP   rN   r   rM   r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  r  rr   r   rd   rS   )rT   r   rV   rV   rW   survey_report_step3  s8    "
rL  c          2   C   s  d  } t  j   t d d  } d } d } d } d } d } d } d }	 d }
 d } d } d } d } d } d } d } d } d } d } d } d } d } d } d } d } |  j d rt j j d t |  j d   } | j } | j	 } | j
 } | j } | j } | j } | j }	 | j }
 | j } | j } | j } | j } | j } | j } | j } | j } | j } | j } | j } | j } | j } | j } | j } | j } d } |  j d d k rt  j  |  j d d	  } t t! j" | j#     } t! j" | j$ r!| j$ j#   n	 | j#    | k r;d
 | d | d | d | d | d | d |	 d |
 d | d | d | d | d | d | d | d | d | d | d | d | d | d | d  | d! | d" | j% i } t& d# d$ d | j$ rt' | j$  j( d% d&  d  d'  n t' |  j( d% d&  d  d'  d( | i  St  j  |  j d d	  | _$ |  j d
 | _ |  j d | _	 |  j d | _
 |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d  | _ |  j d! | _ |  j d" | _% | j)   t& d# d) i  Sd  S)*Nr  r5   rI   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Sr4  r5  r6  r8  r7  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  r  rF   rK   r  r   r!  r  ro   )*r8   r   r9   rM   r   rP   rN   r   r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  r"  r#  r$  r%  r  r  r   rd   r&  rr   )rT   r   r   r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  r'  r(  r  rV   rV   rW   survey_report_step3_details  s    "																								3P
rM  c             C   s7  d } x( |  j  j d  D] } | | d 7} q Wd } x( |  j  j d  D] } | | d 7} qJ Wd } x( |  j  j d  D] } | | d 7} q{ Wt j j d t |  j  d   } |  j  d | _ |  j  d	 | _ |  j  d
 | _ |  j  d | _	 | d  d  | _
 |  j  j d d  | _ |  j  d | _ |  j  d | _ |  j  d | _ |  j  d | _ |  j  d | _ |  j  d | _ | d  d  | _ |  j  j d d  | _ |  j  d | _ |  j  d | _ |  j  d | _ | d  d  | _ |  j  d | _ |  j  d | _ | j   t d d d t | j  i  S)NrI   fhf_location1,rf_location2tf_location3rY   r   fhf_courses
fhf_length	fhf_widthfhf_construction1r5   fhf_construction1_other
rf_courses	rf_length
rf_number1rf_construction2fendering_condition_ratingfendering_conditionrf_construction2_other
tf_coursestf_size1tf_mounting1fendering_additional_commentaryr  rF   rK   rb  rb  )rM   getlistr   rP   rN   r   rR  rS  rT  rU  rN  rV  rW  rX  rY  rZ  r[  r\  rP  r]  r^  r_  r`  rQ  ra  r  rr   r   rd   rS   )rT   fhf_locationsfhf_locationrf_locationsrf_locationtf_locationstf_locationr   rV   rV   rW   survey_report_step4k  s@    "
rj  c       &   (   C   s  d  } t  j   t d d  } d } d } d } d } d } d } d }	 d }
 d } d } d } d } d } d } d } d } d } d } d } g  } |  j d rt j j d t |  j d   } | j } | j	 } | j
 } | j } | j j d  } | j } | j }	 | j }
 | j } | j } | j } | j } | j j d  } | j } | j } | j } | j } | j j d  } | j } xF | j j   D]5 } | j t t  j! t | j    d d-   qWd } |  j d	 d
 k r"t  j" |  j d	 d  } t t# j$ | j%     } t# j$ | j& r@| j& j%   n	 | j%    | k rBd | d | d | d | d | d | d |	 d |
 d | d | d | d | d | d | d | d | d | d | d | d | j' i } t( d  d! d	 | j& rt | j&  j) d" d#  d  d$  n t |  j) d" d#  d  d$  d% | d& | i  St  j" |  j d	 d  | _& d } x( |  j j* d  D] } | | d 7} qwWd } x( |  j j* d  D] } | | d 7} qWd } x( |  j j* d  D] }  | |  d 7} qWt j j d t |  j d   } |  j d | _ |  j d | _	 |  j d | _
 |  j d | _ | d  d.  | _ |  j j d d  | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ | d  d/  | _ |  j j d d  | _ |  j d | _ |  j d | _ |  j d | _ | d  d0  | _ |  j d | _ |  j d | _' |  j j d'  j) d( d  j) d) d  }! |! j d  }" | j j   j+   xE |" D]= }# t  j, d* |#  }$ t- j j. d+ |$  }% | j j/ |%  qW| j0   t( d  d, i  Sd  S)1Nr  r5   rI   r   rY   rO     r   r  r   z%Y-%m-%d %H:%M:%SrR  rS  rT  rU  rN  rV  rW  rX  rY  rZ  r[  r\  rP  r]  r^  r_  r`  rQ  ra  r  rF   rK   r  r   r!  r  r   img_data[]zfendering_images/r   ro   rb  rb  rb  rb  )1r8   r   r9   rM   r   rP   rN   r   rR  rS  rT  rU  rN  splitrV  rW  rX  rY  rZ  r[  r\  rP  r]  r^  r_  r`  rQ  ra  r   r   ri   rd   r@   get_as_base64r"  r#  r$  r%  r  r  r   r&  rc  deleteapi_b64_aws_s3_image_postr   r  addrr   )&rT   r   r   rR  rS  rT  rU  rN  rV  rW  rX  rY  rZ  r[  r\  rP  r]  r^  r_  r`  rQ  ra  r   r
  r'  r(  r  rd  re  rf  rg  rh  ri  rl  img_data_arr
image_dataurl
fnd_imagesrV   rV   rW   survey_report_step4_details  s    "																33P"*	
rx  c          	   C   s  d t  t j    d } |  j j d  } | j d d  } t j j d t	 j
 d t	 j  } | j d  } | j d	  j d
 | d t j |  d d d d  t	 j | } t j j d t |  j d   } t j j d t  |   } | j j |  t d | i  S)Nzfendering_images/z.jpgru  r   +aws_access_key_idaws_secret_access_keys3dls2018KeyBodyContentTypez
image/jpegACLzpublic-readrY   r   r   rF   )rd   uuiduuid4rM   rN   r&  boto3sessionSessionr7   AWS_ACCESS_KEYAWS_SECRET_KEYresourceBucket
put_objectrf   	b64decode
AWS_S3_URLr   rP   r   r   r  r   rs  r   )rT   	file_nameru  r  r|  rv  r   rw  rV   rV   rW   survey_report_step4_image  s    !4"r  c          	   C   s  d t  t j    d } |  j j d  } | j d d  } t j j d t	 j
 d t	 j  } | j d  } | j d	  j d
 | d t j |  d d d d  t	 j | } t j j d t |  j d   } t j j d t  |   } | j j |  t d t  |  i  S)Nzbulwarks_images/z.jpgru  r   ry  rz  r{  r|  r}  r~  r  r  z
image/jpegr  zpublic-readrY   r   r   rF   )rd   r  r  rM   rN   r&  r  r  r  r7   r  r  r  r  r  rf   r  r  r   rP   r   r	   r  r   rs  r   )rT   r  ru  r  r|  rv  r   rw  rV   rV   rW   survey_report_step5_image/  s    !4"r  c             C   s  t  j j d t |  j d   } | j j   j   |  j j d  j d  } |  j j d  r} |  j j d  j d  n d } |  j j d  j d  } |  j j d  j d  } |  j j d	  j d  } |  j j d
  j d  } |  j j d  j d  } |  j j d  r7|  j j d  j d  n d }	 |  j j d  j d  }
 |  j j d  r|  j j d  j d  n d } x t	 |  D] \ } } t
 j j d | | d | r| | n d d | | d | | d	 | | d
 | | d | | d |	 r|	 | n d d |
 | d | r2| | n d  
} | j j |  qW|  j d | _ |  j d | _ |  j d | _ |  j d | _ | j   t d d d t | j  i  S)NrY   r   r   rO  r   rI   r   r   r   r   r   r   r   r   bulwarks_descriptionbulwarks_condition_ratingbulwarks_conditionr  rF   rK   )r   rP   rN   r   rM   r   r   rq  ro  	enumerater
   r  rs  r  r  r  r  rr   r   rd   rS   )rT   r   bulwarks_deck_namesbulwarks_deck_name_othersbulwarks_deck_heightsbulwarks_deck_typesbulwarks_deck_materialsbulwarks_deck_capsbulwarks_deck_cap_dimensbulwarks_deck_cap_dimen_othersbulwarks_deck_stiffenerssbulwarks_deck_stiffeners_othersindexbulwarksr   rV   rV   rW   survey_report_step5G  s>    "333







r  c       '   #   C   s  d  } t  j   t d d  } d } d } d } g  } g  } g  } g  }	 g  }
 g  } g  } g  } g  } g  } g  } |  j d rt j j d t |  j d   } d } |  j d d k r t  j |  j d d	  } t t	 j
 | j     } t	 j
 | j r| j j   n	 | j    | k r| j } | j } | j } xF | j j   D]5 } | j t t j t | j    d
 d&   qMWx | j j   D] } | j | j  | j | j  |	 j | j  |
 j | j  | j | j  | j | j  | j | j  | j | j  | j | j  | j | j   qWt! d d d | j rzt | j  j" d d  d  d  n t |  j" d d  d  d  d | d | d | d | d | d | d |	 d |
 d | d | d | d | d | d | d | j# i  S| j j   j$   |  j j d  j% d  } |  j j d  rX|  j j d  j% d  n d } |  j j d  j% d  } |  j j d  j% d  } |  j j d  j% d  } |  j j d  j% d  } |  j j d  j% d  } |  j j d  r|  j j d  j% d  n d } |  j j d  j% d  } |  j j d  r`|  j j d  j% d  n d } x t& |  D] \ } }  t' j j( d | | d | r| | n d d | | d | | d | | d | | d | | d | r| | n d d | | d | r| | n d  
}! | j j) |!  qsW|  j d | _ |  j d | _ |  j d | _ |  j d | _# |  j j d   j" d! d  j" d" d  }" |" j% d  }# | j j   j$   xE |# D]= }$ t j* d# |$  }% t+ j j( d$ |%  }& | j j) |&  qW| j,   t! d d% i  Sd  S)'Nr  r5   rI   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Srk  rF   rK   r  r   r!  r  r  r  r   r   r   r   r   r   r   r   r   r   r   r  rO  rl  rm  rn  zbulwarks_images/r   ro   rb  )-r8   r   r9   rM   r   rP   rN   r   r"  r#  r$  r%  r  r  r  r  r   r   ri   rd   r@   rp  r   r   r   r   r   r   r   r   r   r   r   r   r&  r  rq  ro  r  r
   r  rs  rr  r	   rr   )'rT   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   rl  rt  ru  rv  rw  rV   rV   rW   survey_report_step5_detailsu  s    "3			3P333






*	
r  c          	   C   s  d t  t j    d } |  j j d  } | j d d  } t j j d t	 j
 d t	 j  } | j d  } | j d	  j d
 | d t j |  d d d d  t	 j | } t j j d t |  j d   } t j j d t  |   } | j j |  t d t  |  i  S)Nzcargo_rails_image/z.jpgru  r   ry  rz  r{  r|  r}  r~  r  r  z
image/jpegr  zpublic-readrY   r   r   rF   )rd   r  r  rM   rN   r&  r  r  r  r7   r  r  r  r  r  rf   r  r  r   rP   r   r   r  r   rs  r   )rT   r  ru  r  r|  rv  r   rw  rV   rV   rW   survey_report_step6_image  s    !4"r  c             C   so  t  j j d t |  j d   } | j j   j   |  j j d  j d  } |  j j d  r} |  j j d  j d  n d } |  j j d  j d  } |  j j d  j d  } |  j j d	  j d  } |  j j d
  j d  } |  j j d  j d  } |  j j d  r7|  j j d  j d  n d }	 |  j j d  j d  }
 x t	 |  D] \ } } t
 j j d | | d | r| | n d d | | d | | d	 | | d
 | | d | | d |	 r|	 | n d d |
 |  	} | j j |  qeW|  j d | _ |  j d | _ |  j d | _ |  j d | _ | j   t d d d t | j  i  S)NrY   r   r   rO  r   rI   r   r   r   r   r   r   r   cargorails_descriptioncargorails_condition_ratingcargorails_conditionr  rF   rK   )r   rP   rN   r   rM   r   r   rq  ro  r  r   r  rs  r  r  r  r  rr   r   rd   rS   )rT   r   cargorails_deck_namescargorails_deck_name_otherscargorails_deck_heightscargorails_deck_materialscargorails_deck_constructionscargorails_deck_capscargorails_deck_cap_dimens cargorails_deck_cap_dimen_otherscargorails_deck_stiffenerssr  
cargorailsr   rV   rV   rW   survey_report_step6  s:    "33






r  c       %   !   C   s  d  } t  j   t d d  } d } d } d } g  } g  } g  } g  }	 g  }
 g  } g  } g  } g  } g  } |  j d rt j j d t |  j d   } d } |  j d d k r t  j |  j d d	  } t t	 j
 | j     } t	 j
 | j r| j j   n	 | j    | k r| j } | j } | j } xF | j j   D]5 } | j t t j t | j    d
 d%   qGWx | j j   D] } | j | j  | j | j  |	 j | j  |
 j | j  | j | j  | j | j  | j | j  | j | j  | j | j  qWt  d d d | j rdt | j  j! d d  d  d  n t |  j! d d  d  d  d | d | d | d | d | d | d |	 d |
 d | d | d | d | d | d | j" i  S| j j   j#   |  j j d  j$ d  } |  j j d  r<|  j j d  j$ d  n d } |  j j d  j$ d  } |  j j d  j$ d  } |  j j d  j$ d  } |  j j d  j$ d  } |  j j d  j$ d  } |  j j d  r|  j j d  j$ d  n d } |  j j d  j$ d  } x t% |  D] \ } } t& j j' d | | d | rV| | n d d | | d | | d | | d | | d | | d | r| | n d d | |  	} | j j( |  q$W|  j d | _ |  j d | _ |  j d | _ |  j d | _" |  j j d  j! d  d  j! d! d  }  |  j$ d  }! | j j   j#   xE |! D]= }" t j) d" |"  }# t* j j' d# |#  }$ | j j( |$  qXW| j+   t  d d$ i  Sd  S)&Nr  r5   rI   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Srk  rF   rK   r  r   r!  r  r  r  r   r   r   r   r   r   r   r   r   r   r  rO  rl  rm  rn  zcargo_rails_image/r   ro   rb  ),r8   r   r9   rM   r   rP   rN   r   r"  r#  r$  r%  r  r  r  r  r   r   ri   rd   r@   rp  r   r   r   r   r   r   r   r   r   r   r   r&  r  rq  ro  r  r   r  rs  rr  r   rr   )%rT   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   rl  rt  ru  rv  rw  rV   rV   rW   survey_report_step6_details.  s    "3			3P33





*	
r  c          	   C   s  d t  t j    d } |  j j d  } | j d d  } t j j d t	 j
 d t	 j  } | j d  } | j d	  j d
 | d t j |  d d d d  t	 j | } t j j d t |  j d   } t j j d t  |   } | j j |  t d t  |  i  S)Nzdeck_fitting_images/z.jpgru  r   ry  rz  r{  r|  r}  r~  r  r  z
image/jpegr  zpublic-readrY   r   r   rF   )rd   r  r  rM   rN   r&  r  r  r  r7   r  r  r  r  r  rf   r  r  r   rP   r   r   r  r   rs  r   )rT   r  ru  r  r|  rv  r   rw  rV   rV   rW   survey_report_step7_image  s    !4"r  c             C   s  t  j j d t |  j d   } | j j   j   |  j j d  rb |  j j d  j d  n d } |  j j d  r |  j j d  j d  n d } |  j j d  r |  j j d  j d  n d } |  j j d  r |  j j d  j d  n d } |  j j d	  r.|  j j d	  j d  n d } |  j j d
  ra|  j j d
  j d  n d } |  j j d  r|  j j d  j d  n d } x t	 |  D] \ }	 }
 t
 j j d | r| |	 n d d | r| |	 n d d | r| |	 n d d | r| |	 n d d	 | r'| |	 n d d
 | r=| |	 n d d | rS| |	 n d  } | j j |  qW|  j d | _ |  j d | _ |  j d | _ |  j d | _ | j   t d d d t | j  i  S)NrY   r   r   rO  rI   r   r   r   r   r   r   deck_fittings_descriptiondeck_fittings_condition_ratingdeck_fittings_conditionr  rF   rK   )r   rP   rN   r   rM   r   r   rq  ro  r  r   r  rs  r  r  r  r  rr   r   rd   rS   )rT   r   df_deck_namesdf_deck_name_othersdf_fittingssdf_fittings_others
df_numbersdf_sizesdf_locationsr  r  r   rV   rV   rW   survey_report_step7  s2    "3333333
r  c              C   s  d  } t  j   t d d  } d } d } d } g  } g  } g  } g  }	 g  }
 g  } g  } g  } |  j d rt j j d t |  j d   } d } |  j d d k r t  j |  j d d	  } t t	 j
 | j     } t	 j
 | j r | j j   n	 | j    | k r| j } | j } | j } xF | j j   D]5 } | j t t j t | j    d
 d*   q;Wx | j j   D]v } | j | j  | j | j  |	 j | j  |
 j | j  | j | j  | j | j  | j | j  qWt d d d | j r8t | j  j d d  d  d  n t |  j d d  d  d  d | d | d | d | d | d | d |	 d |
 d | d | d | d | j  i  S| j j   j!   |  j j d  r|  j j d  j" d  n d } |  j j d  r|  j j d  j" d  n d } |  j j d  rO|  j j d  j" d  n d } |  j j d   r|  j j d   j" d  n d } |  j j d!  r|  j j d!  j" d  n d } |  j j d"  r|  j j d"  j" d  n d } |  j j d#  r|  j j d#  j" d  n d } x t# |  D] \ } } t$ j j% d | rV| | n d d | rl| | n d d | r| | n d d  | r| | n d d! | r| | n d d" | r| | n d d# | r| | n d  } | j j& |  q.W|  j d | _ |  j d | _ |  j d | _ |  j d | _  |  j j d$  j d% d  j d& d  } | j" d  } | j j   j!   xE | D]= } t j' d' |  } t( j j% d( |  } | j j& |  qW| j)   t d d) i  Sd  S)+Nr  r5   rI   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Srk  rF   rK   r  r   r!  r  r  r  r   r   r   r   r   r  r  r  r  r   rO  r   r   r   r   r   r   rl  rm  rn  zdeck_fitting_images/r   ro   rb  )*r8   r   r9   rM   r   rP   rN   r   r"  r#  r$  r%  r  r  r  r  r   r   ri   rd   r@   rp  r   r   r   r   r   r   r   r   r   r&  r  rq  ro  r  r   r  rs  rr  r   rr   ) rT   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   rl  rt  ru  rv  rw  rV   rV   rW   survey_report_step7_details  s    "3			3P3333333*	
r  c          	   C   s  d t  t j    d } |  j j d  } | j d d  } t j j d t	 j
 d t	 j  } | j d  } | j d	  j d
 | d t j |  d d d d  t	 j | } t j j d t |  j d   } t j j d t  |   } | j j |  t d t  |  i  S)Nzground_tackle_images/z.jpgru  r   ry  rz  r{  r|  r}  r~  r  r  z
image/jpegr  zpublic-readrY   r   r   rF   )rd   r  r  rM   rN   r&  r  r  r  r7   r  r  r  r  r  rf   r  r  r   rP   r   r   r  r   rs  r   )rT   r  ru  r  r|  rv  r   rw  rV   rV   rW   survey_report_step8_imageH  s    !4"r  c             C   s   t  j j d t |  j d   } |  j d | _ |  j d | _ |  j d | _ |  j d | _ | j	   t
 d d d t | j  i  S)	NrY   r   ground_tackle_descriptionground_tackle_condition_ratingground_tackle_conditionr  rF   rK   )r   rP   rN   r   rM   r  r  r  r  rr   r   rd   rS   )rT   r   rV   rV   rW   survey_report_step8_  s    "
r  c             C   sm  d  } t  j   t d d  } d } d } d } g  } |  j d rit j j d t |  j d   } d } |  j d d k r t  j |  j d d	  } t t	 j
 | j     } t	 j
 | j r | j j   n	 | j    | k r{| j } | j } | j } xF | j j   D]5 }	 | j t t j t |	 j    d
 d   qWt d d d | d | d | d | d | j i  S|  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j j d  j d d  j d d  }
 |
 j d  } | j j   j   xE | D]= } t j d |  } t j j d |  } | j j |  qW| j   t d d i  Sd  S)Nr  r5   rI   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Srk  rF   rK   r  r  r  r   r  rl  rm  rn  rO  zground_tackle_images/r   ro   rb  ) r8   r   r9   rM   r   rP   rN   r   r"  r#  r$  r%  r  r  r  r  r   r   ri   rd   r@   rp  r   r  r&  ro  rq  rr  r   r  rs  rr   )rT   r   r   r  r  r  r   r'  r(  r  rl  rt  ru  rv  rw  rV   rV   rW   survey_report_step8_detailsn  sP    "3			3*	
r  c          	   C   s  d t  t j    d } |  j j d  } | j d d  } t j j d t	 j
 d t	 j  } | j d  } | j d	  j d
 | d t j |  d d d d  t	 j | } t j j d t |  j d   } t j j d t  |   } | j j |  t d t  |  i  S)Nzhull_comp_images/z.jpgru  r   ry  rz  r{  r|  r}  r~  r  r  z
image/jpegr  zpublic-readrY   r   r   rF   )rd   r  r  rM   rN   r&  r  r  r  r7   r  r  r  r  r  rf   r  r  r   rP   r   r   r  r   rs  r   )rT   r  ru  r  r|  rv  r   rw  rV   rV   rW   survey_report_step9_image  s    !4"r  c             C   sr   |  j  j d  j d d  j d d  } | j d  } x  | D] } t j d |  } q@ Wt d t |  i  S)Nrl  rm  rI   rn  rO  zfendering_images/count)rM   rN   r&  ro  r@   rr  r   len)rT   rl  rt  irv  rV   rV   rW   	test_json  s
    *r  c             C   s  t  j j d t |  j d   } |  j j d d  | _ |  j d | _ y | j j   j	   |  j j d  d d  } t
 j | j d d   } |  j j d	  d d  } t
 j | j d d   } xf t |  D]X \ } } xI t |  D]; \ } } t j j d | | d	 |  } | j j |  q Wq WWn Yn X| j j   j	   |  j j d
  r|  j j d
  j d  n d } |  j j d  r|  j j d  j d  n d }	 |  j j d  r|  j j d  j d  n d }
 |  j j d  r|  j j d  j d  n d } x t |  D] \ } } t j j d | rW| | n d d |	 rm|	 | n d d |
 r|
 | n d d | r| | n d  } | j j |  q/W| j j   j	   |  j j d  r|  j j d  j d  n d } |  j j d  r)|  j j d  j d  n d } |  j j d  r\|  j j d  j d  n d } x{ t |  D]m \ } } t j j d | r| | n d d | r| | n d d | r| | n d  } | j j |  qoWt j   | _ | j   t d d d t | j  i  S)NrY   r   additional_commentsrI   r  outer_bulletr5   \inner_bulletr   rO  hc_tank_type_otherr   r   r   r   r   r   r   r   r   r   r   rF   rK   rb  rb  )r   rP   rN   r   rM   hc_additional_commentaryr  hull_comp_descriptionr   rq  astliteral_evalr&  r  r   r  rs  r   ro  r   r   r   r;   r   completed_onrr   r   rd   rS   )rT   r   r  r  jkvalr  hc_tank_typeshc_tank_type_othersr   r   r  r  r   hc_capacity_typeshc_capacity_volshc_capacity_unitssr   rV   rV   rW   survey_report_step9  sT    "
	3333333
r  c       *      C   s  d  } t  j   t d d  } d } g  } g  } g  } g  } g  } g  }	 g  }
 g  } g  } |  j d rt j j d t |  j d   } d } |  j d d k r t  j |  j d d	  } t t	 j
 | j     } t	 j
 | j r | j j   n	 | j    | k r*| j } xv | j j d
 d d j   D]V } | j |  g  } x- | j j d |  D] } | j | j  qaW| j |  q2WxW | j j   D]F } | j | j  | j | j  |	 j | j  | j | j  qWxG | j j   D]6 } |
 j | j  | j | j  | j | j  qWg  } xF | j j   D]5 } | j t t  j! t | j    d d4   qFWt" d d d | j rt | j  j# d d  d  d  n t |  j# d d  d  d  d | d
 | d | d | d | d | d |	 d |
 d | d | d | d | j$ i  S|  j j d d  | _ |  j d | _$ y | j j   j%   |  j j d
  d d5  } t& j' | j# d  d   } |  j j d  d d6  } t& j' | j# d  d   } xf t( |  D]X \ } } xI t( |  D]; \ } } t) j j* d
 | | d |  } | j j+ |  qWqWWn Yn X| j j   j%   |  j j d!  r|  j j d!  j, d"  n d } |  j j d  r|  j j d  j, d"  n d } |  j j d#  r|  j j d#  j, d"  n d } |  j j d$  r$|  j j d$  j, d"  n d } x t( |  D] \ } } t- j j* d% | r_| | n d d | ru| | n d d& | r| | n d d' | r| | n d  }  | j j+ |   q7W| j j   j%   |  j j d(  r|  j j d(  j, d"  n d }! |  j j d)  r1|  j j d)  j, d"  n d }" |  j j d*  rd|  j j d*  j, d"  n d }# x{ t( |!  D]m \ } } t. j j* d+ |! r|! | n d d, |" r|" | n d d- |# r|# | n d  }$ | j j+ |$  qwW|  j j d.  j# d/ d  j# d0 d  }% |% j, d"  }& | j j   j%   xE |& D]= }' t  j/ d1 |'  }( t0 j j* d2 |(  }) | j j+ |)  q;Wt  j |  j d d	  | _ | j1   t" d d3 i  Sd  S)7Nr  r5   rI   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Sr  flatTZouter_bullet__exactrk  rF   rK   r  r   r!  r  r  r  r  r  r  r  r  r	  r   r  r  r  r   rO  r   r   r   r   r   r   r   r   r   r   r   rl  rm  rn  zhull_comp_images/r   ro   rb  rb  rb  )2r8   r   r9   rM   r   rP   rN   r   r"  r#  r$  r%  r  r  r  values_listdistinctri   rp   r  r   r   r   r   r   r  r   r   r   r   r   rd   r@   rp  r   r&  r  rq  r  r  r  r   r  rs  ro  r   r   rr  r   rr   )*rT   r   r   r  r  r  r  r  r  r  r  r  r	  r'  r(  brinner_bullet_ininnerr  r  r   r  r  r  r  r  r  r  r   r   r  r  r   r  r  r  r   rl  rt  ru  rv  rw  rV   rV   rW   survey_report_step9_details  s    "3	%3P
	3333333*	
r  c       #      C   s	  t  j j d t |  j d   } |  j d | _ |  j d | _ |  j d | _ |  j d | _ | j	 j
   j   |  j j d  d d   } t j | j d	 d
   } |  j j d  d d!  } t j | j d	 d
   } xf t |  D]X \ } } xI t |  D]; \ } } t j j d | | d |  } | j	 j |  q	Wq W| j j
   j   |  j j d  d d"  } t j | j d	 d
   } |  j j d  d d#  }	 t j |	 j d	 d
   }	 xf t |	  D]X \ } }	 xI t |	  D]; \ } } t j j d | | d |  }
 | j j |
  qWqW| j j
   j   |  j j d  d d$  } t j | j d	 d
   } |  j j d  d d%  } t j | j d	 d
   } xf t |  D]X \ } } xI t |  D]; \ } } t j j d | | d |  } | j j |  qWqW| j j
   j   |  j j d  d d&  } t j | j d	 d
   } |  j j d  d d'  } t j | j d	 d
   } xf t |  D]X \ } } xI t |  D]; \ } } t j j d | | d |  } | j j |  qWqW| j j
   j   |  j j d  d d(  } t j | j d	 d
   } |  j j d  d d)  } t j | j d	 d
   } xf t |  D]X \ } } xI t |  D]; \ } } t j j d | | d |  } | j j |  qWqW| j j
   j   |  j j d  d d*  } t j | j d	 d
   } |  j j d  d d+  } t j | j d	 d
   } xf t |  D]X \ } } xI t |  D]; \ } } t j j d | | d |  } | j j |  qWqW| j j
   j   |  j j d  d d,  } t j | j d	 d
   } |  j j d  d d-  } t j | j d	 d
   } xf t |  D]X \ } } xI t |  D]; \ } } t j j d | | d |  } | j j |  qWqlW| j j
   j   |  j j d  d d.  } t j | j d	 d
   } |  j j d  d d/  } t j | j d	 d
   } xf t |  D]X \ } } xI t |  D]; \ } } t  j j d | | d |  } | j j |  qoWqVW| j! j
   j   |  j j d  d d0  } t j | j d	 d
   } |  j j d  d d1  } t j | j d	 d
   } xf t |  D]X \ } } xI t |  D]; \ } } t" j j d | | d |  } | j! j |  qYWq@W| j# j
   j   |  j j d  d d2  }  t j |  j d	 d
   }  |  j j d  d d3  }! t j |! j d	 d
   }! xf t |!  D]X \ } }! xI t |!  D]; \ } } t$ j j d |  | d |  }" | j# j |"  qC	Wq*	W| j%   t& d d d t' | j(  i  S)4NrY   r   dh_descriptiondha_condition_ratingdha_conditionr  r   r5   r  rI   r   r   r   r   r   r   r   r   r   r   r   r   r   dh_hrr_outer_bulletdh_hrr_inner_bulletdh_psf_outer_bulletdh_psf_inner_bulletdh_odhc_outer_bulletdh_odhc_inner_bulletrF   rK   rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  ))r   rP   rN   r   rM   r  r  r  r  r   r   rq  r  r  r&  r  r   r  rs  r   r   r   r   r   r   r   r   r   r   r   r   helo_reception_roomr    public_sanitary_facilitiesr!   other_deck_house_categoryr"   rr   r   rd   rS   )#rT   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  rV   rV   rW   survey_report_step10  s    "
	
	
	
	
	
	
	
	
	
	
r  c       3   7   C   s  d  } t  j   t d d  } d } d } d } g  } g  } g  } g  }	 g  }
 g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } g  } |  j d rt j j d t |  j d   } d } |  j d d k r%t  j |  j d d	  } t t	 j
 | j     } t	 j
 | j rC| j j   n	 | j    | k ru| j } | j } | j } xv | j j d
 d d j   D]V } | j |  g  } x- | j j d |  D] } | j | j  qW| j |  qWxv | j j d d d j   D]V } | j |  g  } x- | j j d |  D] } | j | j  q:W|	 j |  qWxv | j j d d d j   D]V } |
 j |  g  } x- | j j d |  D] } | j | j  qW| j |  qWxv | j j d d d j   D]V } | j |  g  } x- | j j d |  D] } | j | j  q,W| j |  qWxv | j j d d d j   D]V } | j |  g  } x- | j j d |  D] } | j | j  qW| j |  qvWxv | j j d d d j   D]V } | j |  g  } x- | j j d |  D] } | j | j  qW| j |  qWxv | j  j d d d j   D]V } | j |  g  } x- | j  j d |  D] } | j | j!  qW| j |  qhWxv | j" j d d d j   D]V } | j |  g  } x- | j" j d |  D] } | j | j#  qW| j |  qWxv | j$ j d d d j   D]V } | j |  g  } x- | j$ j d |  D] } | j | j%  qW| j |  qZWxv | j& j d d d j   D]V } | j |  g  } x- | j& j d |  D] } | j | j'  qW| j |  qWg  } xF | j( j)   D]5 }  | j t* t+ j, t* |  j(    d  d=   qCWt- d! d" d | j rt* | j  j. d# d$  d  d%  n t* |  j. d# d$  d  d%  d& | d' | d( | d
 | d) | d | d* |	 d |
 d+ | d | d, | d | d- | d | d. | d | d/ | d | d0 | d | d1 | d | d2 | d3 | d4 | j/ i  S|  j d& | _ |  j d' | _ |  j d( | _ |  j d4 | _/ | j j)   j0   |  j j d
  d d>  } t1 j2 | j. d5 d   } |  j j d)  d d?  } t1 j2 | j. d5 d   } xf t3 |  D]X \ }! } xI t3 |  D]; \ }" }# t4 j j5 d
 | |! d) |#  }$ | j j6 |$  q\WqCW| j j)   j0   |  j j d  d d@  } t1 j2 | j. d5 d   } |  j j d*  d dA  }	 t1 j2 |	 j. d5 d   }	 xf t3 |	  D]X \ }! }	 xI t3 |	  D]; \ }" }# t7 j j5 d | |! d* |#  }% | j j6 |%  qF	Wq-	W| j j)   j0   |  j j d  d dB  }
 t1 j2 |
 j. d5 d   }
 |  j j d+  d dC  } t1 j2 | j. d5 d   } xf t3 |  D]X \ }! } xI t3 |  D]; \ }" }# t8 j j5 d |
 |! d+ |#  }& | j j6 |&  q0
Wq
W| j j)   j0   |  j j d  d dD  } t1 j2 | j. d5 d   } |  j j d,  d dE  } t1 j2 | j. d5 d   } xf t3 |  D]X \ }! } xI t3 |  D]; \ }" }# t9 j j5 d | |! d, |#  }' | j j6 |'  qWqW| j j)   j0   |  j j d  d dF  } t1 j2 | j. d5 d   } |  j j d-  d dG  } t1 j2 | j. d5 d   } xf t3 |  D]X \ }! } xI t3 |  D]; \ }" }# t: j j5 d | |! d- |#  }( | j j6 |(  qWqW| j j)   j0   |  j j d  d dH  } t1 j2 | j. d5 d   } |  j j d.  d dI  } t1 j2 | j. d5 d   } xf t3 |  D]X \ }! } xI t3 |  D]; \ }" }# t; j j5 d | |! d. |#  }) | j j6 |)  qWqW| j  j)   j0   |  j j d  d dJ  } t1 j2 | j. d5 d   } |  j j d/  d dK  } t1 j2 | j. d5 d   } xf t3 |  D]X \ }! } xI t3 |  D]; \ }" }# t< j j5 d | |! d/ |#  }* | j  j6 |*  qWqW| j" j)   j0   |  j j d  d dL  } t1 j2 | j. d5 d   } |  j j d0  d dM  } t1 j2 | j. d5 d   } xf t3 |  D]X \ }! } xI t3 |  D]; \ }" }# t= j j5 d | |! d0 |#  }+ | j" j6 |+  qWqW| j$ j)   j0   |  j j d  d dN  } t1 j2 | j. d5 d   } |  j j d1  d dO  } t1 j2 | j. d5 d   } xf t3 |  D]X \ }! } xI t3 |  D]; \ }" }# t> j j5 d | |! d1 |#  }, | j$ j6 |,  qWqW| j& j)   j0   |  j j d  d dP  } t1 j2 | j. d5 d   } |  j j d2  d dQ  } t1 j2 | j. d5 d   } xf t3 |  D]X \ }! } xI t3 |  D]; \ }" }# t? j j5 d | |! d2 |#  }- | j& j6 |-  qWq}W|  j j d6  j. d7 d  j. d8 d  }. |. j@ d9  }/ | j( j)   j0   xE |/ D]= }0 t+ jA d: |0  }1 tB j j5 d; |1  }2 | j( j6 |2  q,Wt  j |  j d d	  | _ | jC   t- d! d< i  Sd  S)RNr  r5   rI   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Sr   r  TZdh_bc_outer_bullet__exactr   Zdh_g_outer_bullet__exactr   Zdh_md_outer_bullet__exactr   Zdh_l_outer_bullet__exactr   Zdh_h_outer_bullet__exactr   Zdh_rr_outer_bullet__exactr   Zdh_tr_outer_bullet__exactr  Zdh_hrr_outer_bullet__exactr  Zdh_psf_outer_bullet__exactr  Zdh_odhc_outer_bullet__exactrk  rF   rK   r  r   r!  r  r  r  r   r   r   r   r   r   r   r  r  r  r   r  r  rl  rm  rn  rO  zdeck_house_images/r   ro   rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  rb  )Dr8   r   r9   rM   r   rP   rN   r   r"  r#  r$  r%  r  r  r  r  r   r  r  ri   rp   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r   r   rd   r@   rp  r   r&  r  rq  r  r  r  r   r  rs  r   r   r   r   r   r   r    r!   r"   ro  rr  r   rr   )3rT   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  rl  rt  ru  rv  rw  rV   rV   rW   survey_report_step10_details)  s   "3			%%%%%%%%%%3P
	
	
	
	
	
	
	
	
	
	*	
r  c          	   C   s  d t  t j    d } |  j j d  } | j d d  } t j j d t	 j
 d t	 j  } | j d  } | j d	  j d
 | d t j |  d d d d  t	 j | } t j j d t |  j d   } t j j d t  |  d d  } | j j |  t d t  |  i  S)Nzdeck_house_images/z.jpgru  r   ry  rz  r{  r|  r}  r~  r  r  z
image/jpegr  zpublic-readrY   r   r   deck_house_image_captionrI   rF   )rd   r  r  rM   rN   r&  r  r  r  r7   r  r  r  r  r  rf   r  r  r   rP   r   r   r  r   rs  r   )rT   r  ru  r  r|  rv  r   rw  rV   rV   rW   survey_report_step10_imagej	  s    !4"	r  c             C   s8  t  j j d t |  j d   } |  j d | _ |  j d | _ |  j d | _ |  j d | _ | j	 j
   j   |  j j d  r t j |  j j d   j d  n d	 } x[ t |  D]M \ } } | d	 k r t j j d | r | | n d	  } | j	 j |  q W| j   t d
 d d t | j  i  S)NrY   r   ph_descriptionpe_condition_ratingpe_conditionr  r   rO  rI   rF   rK   )r   rP   rN   r   rM   r  r  r  r  r   r   rq  r@   str_replacero  r  r#   r  rs  rr   r   rd   rS   )rT   r   r   r  xr   rV   rV   rW   survey_report_step11	  s    "<
r  c             C   s  d  } t  j   t d d  } d } d } d } g  } |  j d rt j j d t |  j d   } d } |  j d d k r t  j |  j d d	  } t t	 j
 | j     } t	 j
 | j r | j j   n	 | j    | k r| j } | j } | j } x' | j j   D] }	 | j |	 j  qWg  }
 xF | j j   D]5 } |
 j t t j t | j    d
 d   qAWt d d d | j rt | j  j d d  d  d  n t |  j d d  d  d  d | d | d | d | d |
 d | j i  S|  j d | _ |  j d | _ |  j d | _ |  j d | _ | j j   j   |  j j d  rt j |  j j d   j d  n d } x[ t |  D]M \ } } | d k rt j j  d | r| | n d  } | j j! |  qW|  j j d  j d d  j d d  } | j d  } | j j   j   xE | D]= } t j" d |  } t# j j  d |  } | j j! |  qAWt  j |  j d d	  | _ | j$   t d d i  Sd  S)Nr  r5   rI   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Srk  rF   rK   r  r   r!  r  r  r  r   r   r  rO  rl  rm  rn  zpilot_house_images/r   ro   rb  )%r8   r   r9   rM   r   rP   rN   r   r"  r#  r$  r%  r  r  r  r  r   r   ri   r   r   rd   r@   rp  r   r&  r  rq  r  ro  r  r#   r  rs  rr  r   rr   )rT   r   r   r  r  r  r   r'  r(  r  r   r  r  r  r   rl  rt  ru  rv  rw  rV   rV   rW   survey_report_step11_details	  sj    "3			3P<*	
r  c          	   C   s  d t  t j    d } |  j j d  } | j d d  } t j j d t	 j
 d t	 j  } | j d  } | j d	  j d
 | d t j |  d d d d  t	 j | } t j j d t |  j d   } t j j d t  |  d d  } | j j |  t d t  |  i  S)Nzpilot_house_images/z.jpgru  r   ry  rz  r{  r|  r}  r~  r  r  z
image/jpegr  zpublic-readrY   r   r   pilot_house_image_captionrI   rF   )rd   r  r  rM   rN   r&  r  r  r  r7   r  r  r  r  r  rf   r  r  r   rP   r   r   r  r   rs  r   )rT   r  ru  r  r|  rv  r   rw  rV   rV   rW   survey_report_step11_image	  s    !4"	r  c             C   s   t  j j d t |  j d   } |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _	 |  j d | _
 |  j d	 | _ |  j d
 | _ |  j d | _ | j   t t j d t | j  i   S)NrY   r   ssc_conditionptc_conditionpdc_conditionfdc_conditionmdc_conditionosec_conditionseo_condition_ratingseo_conditionr  )r   rP   rN   r   rM   r  r  r   r  r  r  r  r  r  rr   r   r   dumpsrd   rS   )rT   r   rV   rV   rW   survey_report_step12	  s    "
r  c             C   sn  d  } t  j   t d d  } |  j d rjt j j d t |  j d   } d } |  j d d k r t  j |  j d d  } t t	 j
 | j     } t	 j
 | j r | j j   n	 | j    | k r| j } | j } | j } | j } | j }	 | j }
 | j } | j } d	 | d
 | d | d | d |	 d |
 d | d | d | j i	 } g  } xF | j j   D]5 } | j t t j t | j    d d"   qkWt d d d | j rt | j  j d d  d  d  n t |  j d d  d  d  d | d | i  S|  j d	 | _ |  j d
 | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j j d  j d d  j d d  } | j d  } | j j   j   xE | D]= } t j  d |  } t! j j" d  |  } | j j# |  qWt  j |  j d d  | _ | j$   t d d! i  Sd  S)#Nr  r5   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Sr  r  r   r  r  r  r  r  r  rk  rF   rK   r  r   r!  r  r   rl  rm  rI   rn  rO  zsuper_structure_images/r   ro   rb  )%r8   r   r9   rM   r   rP   rN   r   r"  r#  r$  r%  r  r  r  r   r  r  r  r  r  r  r   r   ri   rd   r@   rp  r   r&  ro  rq  rr  r   r  rs  rr   )rT   r   r   r'  r(  r  r  r   r  r  r  r  r  r  r   r  rl  rt  ru  rv  rw  rV   rV   rW   survey_report_step12_details
  sn    "3								3P*	
r  c          	   C   s  d t  t j    d } |  j j d  } | j d d  } t j j d t	 j
 d t	 j  } | j d  } | j d	  j d
 | d t j |  d d d d  t	 j | } t j j d t |  j d   } t j j d t  |  d d  } | j j |  t d t  |  i  S)Nzsuper_structure_images/z.jpgru  r   ry  rz  r{  r|  r}  r~  r  r  z
image/jpegr  zpublic-readrY   r   r   super_structure_image_captionrI   rF   )rd   r  r  rM   rN   r&  r  r  r  r7   r  r  r  r  r  rf   r  r  r   rP   r   r   r  r   rs  r   )rT   r  ru  r  r|  rv  r   rw  rV   rV   rW   survey_report_step12_image^
  s    !4"	r
  c       	   
   C   s  t  j j d t |  j d   } |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _	 |  j d | _
 |  j d	 | _ |  j d
 | _ | j j   j   |  j j d  d d  } t j | j d d   } |  j j d  d d  } t j | j d d   } |  j j d  d d  } t j | j d d   } xt t |  D]f \ } } xW t |  D]I \ } } t j j d | | d | d | | |  } | j j |  qWqgW| j   t t j d t | j  i   S)NrY   r   m_mpm_descriptionm_mpm_condition_ratingm_mpm_conditionm_eo_descriptionm_eo_condition_ratingm_se_descriptionm_se_condition_ratingr  r   r5   r  rI   r   r   rb  rb  rb  )r   rP   rN   r   rM   r  r  r  r  r  r  r  r  r   r   rq  r  r  r&  r  r$   r  rs  rr   r   r   r  rd   rS   )	rT   r   r   r   r   r  r  r  r   rV   rV   rW   survey_report_step13u
  s2    "

r  c             C   s\  d  } t  j   t d d  } d } d } d } d } d } d } d }	 g  }
 g  } g  } |  j d rXt j j d t |  j d   } d } |  j d d k r t  j |  j d d	  } t t	 j
 | j     } t	 j
 | j r | j j   n	 | j    | k r| j } | j } | j } | j } | j } | j } | j }	 x | j j d
 d d j   D]y } |
 j |  g  } g  } x= | j j d |  D]& } | j | j  | j | j  qW| j |  | j |  qhWg  } xF | j j   D]5 } | j t t j t | j    d d&   qWt  d d d | j rnt | j  j! d d  d  d  n t |  j! d d  d  d  d | d | d | d | d | d | d |	 d
 |
 d | d | d t d | j" i  S|  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _" | j j   j#   |  j j d
  d d'  }
 t$ j% |
 j! d d   }
 |  j j d  d d(  } t$ j% | j! d d   } |  j j d  d d)  } t$ j% | j! d d   } xt t& |  D]f \ } } xW t& |  D]I \ } } t' j j( d
 |
 | d | d | | |  } | j j) |  q=Wq$W|  j j d   j! d! d  j! d" d  } | j* d#  } | j j   j#   xE | D]= } t j+ d$ |  } t, j j( d |  } | j j) |  qWt  j |  j d d	  | _ | j-   t  d d% i  Sd  S)*Nr  r5   rI   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Sr   r  TZm_am_outer_bullet__exactrk  rF   rK   r  r   r!  r  r  r  r  r  r  r  r   r   r   r  r  rl  rm  rn  rO  zmachinary_images/ro   rb  rb  rb  rb  ).r8   r   r9   rM   r   rP   rN   r   r"  r#  r$  r%  r  r  r  r  r  r  r  r  r   r  r  ri   rp   r   r   r   r   rd   r@   rp  r   r&  r  rq  r  r  r  r$   r  rs  ro  rr  r   rr   )rT   r   r   r  r  r  r  r  r  r  r   r   r   r'  r(  r  r  Zinner_bullet_in_ratingr  r   r  r  r  r  r   rl  rt  ru  rv  rw  rV   rV   rW   survey_report_step13_details
  s    "3							%3P
*	
r  c          	   C   s  d t  t j    d } |  j j d  } | j d d  } t j j d t	 j
 d t	 j  } | j d  } | j d	  j d
 | d t j |  d d d d  t	 j | } t j j d t |  j d   } t j j d t  |  d d  } | j j |  t d t  |  i  S)Nzmachinary_images/z.jpgru  r   ry  rz  r{  r|  r}  r~  r  r  z
image/jpegr  zpublic-readrY   r   r   machinary_image_captionrI   rF   )rd   r  r  rM   rN   r&  r  r  r  r7   r  r  r  r  r  rf   r  r  r   rP   r   r   r  r   rs  r   )rT   r  ru  r  r|  rv  r   rw  rV   rV   rW   survey_report_step13_image  s    !4"	r  c       	      C   s  t  j j d t |  j d   } |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _	 |  j d | _
 |  j d	 | _ | j j   j   |  j j d
  d d  } t j | j d d   } |  j j d  d d  } t j | j d d   } xf t |  D]X \ } } xI t |  D]; \ } } t j j d
 | | d |  } | j j |  q9Wq Wt j j d t | j   } t j   | _ | j d k rd | _ | j   | j   t t j d t  | j!  i   S)NrY   r   sed_descriptioncod_descriptionservice_descriptionhull_condition_ratingloc_dat_surveyhull_conditionr  r   r5   r  rI   r   ry      rb  rb  )"r   rP   rN   r   rM   r  r  r  r  r  r  r  r   r   rq  r  r  r&  r  r%   r  rs  r   r   r8   r   survey_complater   rr   r   r   r  rd   rS   )	rT   r   r   r   r  r  r  r   assign_vessel_detailsrV   rV   rW   survey_report_step14  s4    "
		

r  c             C   s  d  } t  j   t d d  } d } d } d } d } d } d } g  }	 g  }
 |  j d rt j j d t |  j d   } d } |  j d d k r t  j |  j d d	  } t t	 j
 | j     } t	 j
 | j r | j j   n	 | j    | k r| j } | j } | j } | j } | j } | j } xv | j j d
 d d j   D]V } |	 j |  g  } x- | j j d |  D] } | j | j  qW|
 j |  qSWg  } xF | j j   D]5 } | j t t j t | j    d d$   qWt d d d | j r6t | j  j d d  d  d  n t |  j d d  d  d  d | d | d | d | d | d | d
 |	 d |
 d t d | j  i  S|  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _  | j j   j!   |  j j d
  d d%  }	 t" j# |	 j d d   }	 |  j j d  d d&  }
 t" j# |
 j d d   }
 xf t$ |
  D]X \ } }
 xI t$ |
  D]; \ } } t% j j& d
 |	 | d |  } | j j' |  qWqW|  j j d  j d d  j d  d  } | j( d!  } | j j   j!   xE | D]= } t j) d" |  } t* j j& d |  } | j j' |  qHWt  j |  j d d	  | _ | j+   t d d# i  Sd  S)'Nr  r5   rI   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Sr   r  TZrecom_outer_bullet__exactrk  rF   rK   r  r   r!  r  r  r  r  r  r  r   r   r  r  rl  rm  rn  rO  zsafety_equipment_images/ro   rb  rb  rb  ),r8   r   r9   rM   r   rP   rN   r   r"  r#  r$  r%  r  r  r  r  r  r  r  r   r  r  ri   rp   r   r   r   rd   r@   rp  r   r&  r  rq  r  r  r  r%   r  rs  ro  rr  r   rr   )rT   r   r   r  r  r  r  r  r  r   r   r'  r(  r  r  r  r   r  r  r  r  r   rl  rt  ru  rv  rw  rV   rV   rW   survey_report_step14_detailsH  s    "3						%3P
	*	
r   c          	   C   s  d t  t j    d } |  j j d  } | j d d  } t j j d t	 j
 d t	 j  } | j d  } | j d	  j d
 | d t j |  d d d d  t	 j | } t j j d t |  j d   } t j j d t  |  d d  } | j j |  t d t  |  i  S)Nzsafety_equipment_images/z.jpgru  r   ry  rz  r{  r|  r}  r~  r  r  z
image/jpegr  zpublic-readrY   r   r   safety_equipment_image_captionrI   rF   )rd   r  r  rM   rN   r&  r  r  r  r7   r  r  r  r  r  rf   r  r  r   rP   r   r   r  r   rs  r   )rT   r  ru  r  r|  rv  r   rw  rV   rV   rW   survey_report_step14_image  s    !4"	r"  c          &   C   sv  d  } |  j  d d k r8t j j d t |  j  d   } |  j  d | _ |  j  d | _ |  j  d | _ |  j  d | _ |  j  d | _	 |  j  d	 | _
 |  j  d
 | _ |  j  d | _ |  j  d | _ |  j  d | _ |  j  d | _ |  j  d | _ |  j  d | _ |  j  d | _ |  j  d | _ | j   n%t j j d t j j d t |  j  d   j d t j j d t |  j  d   d t j   d |  j  d d |  j  d d |  j  d d |  j  d d |  j  d d	 |  j  d	 d
 |  j  d
 d |  j  d d |  j  d d |  j  d d |  j  d d |  j  d d |  j  d d |  j  d d |  j  d  } t d t | j  i  S)Nr   r   rY   survey_b_locationsurvey_b_location_other
barge_typecargo_covers_numcargo_covers_typewing_compartmentsvoid_bow_compartmentsvoid_stern_compartmentsbarg_dimentions_lengthbarg_dimentions_widthbarg_dimentions_heightbarge_coaming_numbarge_covers_catbarge_covers_cat_otherb_gd_extra_noter  r{   r  r  )rM   r&   rP   rN   r   r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  rr   r  r   r  r;   r   r   rd   rS   )rT   survey_report_bargerV   rV   rW   survey_report_barge_step1  sN    "%"r3  c          &   C   s2  d  } t  j   t d d  } |  j d rt j j d t |  j d   } d } |  j d d k r t  j |  j d d  } t t	 j
 | j     } t	 j
 | j r | j j   n	 | j    | k rd	 | j d
 | j d | j d | j d | j d | j d | j d | j d | j d | j d | j d | j d | j d | j d | j i } t d d d | j rt | j  j d d  d  d  n t |  j d d  d  d  d | i  S|  j d	 | _ |  j d
 | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ t  j |  j d d  | _ | j   t d d i  SnDt j j  d t! j j d t |  j d    j" d! t! j j d t |  j d    d" t# j   d	 |  j d	 d
 |  j d
 d |  j d d |  j d d |  j d d |  j d d |  j d d |  j d d |  j d d |  j d d |  j d d |  j d d |  j d d |  j d d |  j d  } t d d d t | j$  i  Sd  S)#Nr  r5   r   rY   r   r  r   z%Y-%m-%d %H:%M:%Sr#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  rF   rK   r  r   r!  r  ro   r  r{   r  r  )%r8   r   r9   rM   r&   rP   rN   r   r"  r#  r$  r%  r  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r   rd   r&  rr   r  r   r  r;   rS   )rT   r2  r   r'  r(  r  rV   rV   rW   !survey_report_barge_step1_details  s    "3														P
%"r4  c             C   s
  t  j j d t |  j d   } |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _	 |  j d | _
 |  j d	 | _ |  j d
 | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ | j j   j   |  j j d  rKt j |  j j d   j d  n d } |  j j d  rt j |  j j d   j d  n d } |  j j d  rt j |  j j d   j d  n d } |  j j d  rt j |  j j d   j d  n d } |  j j d  r;t j |  j j d   j d  n d } xt |  D] \ } } | d k rNt j j d | t |  k  r| | n d d | t |  k  r| | n d d | t |  k  r| | n d d | t |  k  rt | |  d k rd n d d | t |  k  r(| | n d  }	 | j j |	  qNW| j j   j   |  j j d  rt j |  j j d   j d  n d }
 |  j j d  rt j |  j j d   j d  n d } |  j j d  rt j |  j j d   j d  n d } |  j j d  rBt j |  j j d   j d  n d } |  j j d  r~t j |  j j d   j d  n d } xt |
  D] \ } } | d k rt  j j d | t |
  k  r|
 | n d d | t |  k  r| | n d d | t |  k  r| | n d d | t |  k  rIt | |  d k rId n d d | t |  k  rk| | n d  } | j j |  qW| j! j   j   |  j j d  rt j |  j j d   j d  n d } |  j j d   rt j |  j j d    j d  n d } |  j j d!  rIt j |  j j d!   j d  n d } |  j j d"  rt j |  j j d"   j d  n d } |  j j d#  rt j |  j j d#   j d  n d } xt |  D] \ } } | d k rt" j j d | t |  k  r| | n d d  | t |  k  r6| | n d d! | t |  k  rX| | n d d" | t |  k  rt | |  d k rd n d d# | t |  k  r| | n d  } | j! j |  qW| j# j   j   |  j j d$  rt j |  j j d$   j d  n d } |  j j d%  rPt j |  j j d%   j d  n d } |  j j d&  rt j |  j j d&   j d  n d } |  j j d'  rt j |  j j d'   j d  n d } |  j j d(  r	t j |  j j d(   j d  n d } xt |  D] \ } } | d k r	t$ j j d$ | t |  k  rW	| | n d d% | t |  k  ry	| | n d d& | t |  k  r	| | n d d' | t |  k  r	t | |  d k r	d n d d( | t |  k  r	| | n d  } | j# j |  q	Wt% j j d t | j&   } t' j(   | _) | j* d) k rS
d* | _* | j+   | j+   t, d t | j-  i  S)+NrY   r   	b_coamingb_coaming_otherb_hopperb_hopper_otherb_coversb_covers_otherb_cover_recb_cover_rec_otherb_deck_fittingsb_deck_fittings_other
b_coatingsb_coatings_otherb_final_statementr1  bce_hull_conditionrO  rI   bc_compartmentbc_comp_fowbc_checkbc_other_conditiontruez$Recommend pump and check compartmentss_hull_conditionss_compartmentss_comp_fowss_checkss_other_conditionsce_hull_conditionsc_compartmentsc_comp_fowsc_checksc_other_conditionps_hull_conditionps_compartmentps_comp_fowps_checkps_other_conditionry   r  ).r&   rP   rN   r   rM   r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  r1  bow_compartmentr   rq  r@   r  ro  r  r'   r  r  rd   rs  starboard_sider(   stern_compartmentr)   	port_sider*   r   r   r8   r   r  r   rr   r   rS   )rT   r2  rB  rC  rD  rE  rF  r  r  rW  rH  rI  rJ  rK  rL  rX  rM  rN  rO  rP  rQ  rY  rR  rS  rT  rU  rV  rZ  r  rV   rV   rW   survey_report_barge_step2R  s    "<<<<<"""4%<<<<<"""4%<<<<<"""4%<<<<<"""4%	

r[  c       -   K   C   s  d  } t  j   t d d  } |  j d rt j j d t |  j d   } d } |  j d d k r t  j |  j d d  } t t	 j
 | j     } t	 j
 | j r | j j   n	 | j    | k r| j } | j } | j } | j } | j }	 | j }
 | j } | j } | j } | j } | j } | j } | j } g  } g  } g  } g  } g  } xs | j j   D]b } | j | j  | j | j  | j | j  | j | j  rd	 n d
  | j | j!  qqWg  } g  } g  } g  } g  } xs | j" j   D]b } | j | j#  | j | j$  | j | j%  | j | j& rPd	 n d
  | j | j'  qWg  } g  } g  } g  }  g  }! xs | j( j   D]b } | j | j)  | j | j*  | j | j+  |  j | j, rd	 n d
  |! j | j-  qWg  }" g  }# g  }$ g  }% g  }& xs | j. j   D]b } |" j | j/  |# j | j0  |$ j | j1  |% j | j2 rxd	 n d
  |& j | j3  q-Wt4 d d d | j rt5 | j  j6 d d  d  d  n t5 |  j6 d d  d  d  d | d | d | d | d |	 d |
 d | d | r%d	 n d
 d | d | d | d | d | d | d | d | d  | d! | d" | d# | d$ | d% | d& | d' | d( | d) | d* | d+ |  d, |! d- |" d. |# d/ |$ d0 |% d1 |& d2 | j7 i%  S|  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d | _ |  j d2 | _7 | j j   j8   |  j j d  rt9 j: |  j j d   j; d3  n d4 } |  j j d  r9t9 j: |  j j d   j; d3  n d4 } |  j j d   rut9 j: |  j j d    j; d3  n d4 } |  j j d!  rt9 j: |  j j d!   j; d3  n d4 } |  j j d"  rt9 j: |  j j d"   j; d3  n d4 } xt< |  D] \ }' }( |( d4 k r t= j j> d |' t? |  k  r@| |' n d4 d |' t? |  k  rb| |' n d4 d  |' t? |  k  r| |' n d4 d! |' t? |  k  rt5 | |'  d	 k rd5 n d4 d" |' t? |  k  r| |' n d4  }) | j j@ |)  q W| j" j   j8   |  j j d#  r@t9 j: |  j j d#   j; d3  n d4 } |  j j d$  r|t9 j: |  j j d$   j; d3  n d4 } |  j j d%  rt9 j: |  j j d%   j; d3  n d4 } |  j j d&  rt9 j: |  j j d&   j; d3  n d4 } |  j j d'  r0	t9 j: |  j j d'   j; d3  n d4 } xt< |  D] \ }' }( |( d4 k rC	tA j j> d# |' t? |  k  r	| |' n d4 d$ |' t? |  k  r	| |' n d4 d% |' t? |  k  r	| |' n d4 d& |' t? |  k  r	t5 | |'  d	 k r	d5 n d4 d' |' t? |  k  r
| |' n d4  }* | j" j@ |*  qC	W| j( j   j8   |  j j d(  r
t9 j: |  j j d(   j; d3  n d4 } |  j j d)  r
t9 j: |  j j d)   j; d3  n d4 } |  j j d*  r
t9 j: |  j j d*   j; d3  n d4 } |  j j d+  r7t9 j: |  j j d+   j; d3  n d4 }  |  j j d,  rst9 j: |  j j d,   j; d3  n d4 }! xt< |  D] \ }' }( |( d4 k rtB j j> d( |' t? |  k  r| |' n d4 d) |' t? |  k  r| |' n d4 d* |' t? |  k  r
| |' n d4 d+ |' t? |   k  r>t5 |  |'  d	 k r>d5 n d4 d, |' t? |!  k  r`|! |' n d4  }+ | j( j@ |+  qW| j. j   j8   |  j j d-  rt9 j: |  j j d-   j; d3  n d4 }" |  j j d.  rt9 j: |  j j d.   j; d3  n d4 }# |  j j d/  r>t9 j: |  j j d/   j; d3  n d4 }$ |  j j d0  rzt9 j: |  j j d0   j; d3  n d4 }% |  j j d1  rt9 j: |  j j d1   j; d3  n d4 }& xt< |"  D] \ }' }( |( d4 k rtC j j> d- |' t? |"  k  r	|" |' n d4 d. |' t? |#  k  r+|# |' n d4 d/ |' t? |$  k  rM|$ |' n d4 d0 |' t? |%  k  rt5 |% |'  d	 k rd5 n d4 d1 |' t? |&  k  r|& |' n d4  }, | j. j@ |,  qWt  j |  j d d  | _ | jD   t4 d d6 i  Sd  S)7Nr  r5   r   rY   r   r  r   z%Y-%m-%d %H:%M:%SrG  falserF   rK   r  r   r!  r5  r6  r7  r8  r9  r:  r;  Zb_cover_checkr<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  r1  rO  rI   z$Recommend pump and check compartmentro   )Er8   r   r9   rM   r&   rP   rN   r   r"  r#  r$  r%  r  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rW  r   ri   rB  rC  rD  rE  rF  rX  rH  rI  rJ  rK  rL  rY  rM  rN  rO  rP  rQ  rZ  rR  rS  rT  rU  rV  r   rd   r&  r1  rq  r@   r  ro  r  r'   r  r  rs  r(   r)   r*   rr   )-rT   r2  r   r'  r(  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  r  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  r  r  rW  rX  rY  rZ  rV   rV   rW   !survey_report_barge_step2_details  sl   "3													P<<<<<"""4%<<<<<"""4%<<<<<"""4%<<<<<"""4%
r]  c             C   s   t  |  j |  j  } | j   r t t j    d } d | } t j j	 d t
 j d t
 j  } | j d  } | j d  j d | d | j d	 d
 d  t
 j | } t j |  j j d  |  t d d i  St j | j  } t | d d Sd  S)Nz.wavz
recording/rz  r{  r|  r}  r~  r  	ionicfiler  zpublic-readr   rF   rK   mimetypezapplication/json)r=   rM   FILESis_validrd   r  r  r  r  r  r7   r  r  r  r  r  cleaned_datar  r?   delayrN   r   r   r  errorsr   )rT   formoriginal_namer  r  r|  rv  rd  rV   rV   rW   upload_media  s    
!,rg  c             C   st   |  j  j d  } t j j d t |   } t j   | _ | j d k rT d | _ | j	   t
 d d d d i  S)	N	vissel_idrY   rk  r   rF   rK   r   z acknowledge approve successfully)rM   rN   r   rP   r   r8   r   acknowledgedr   rr   r   )rT   rh  r  rV   rV   rW   survey_acknowledged  s    	
rj  )django.httpr   r   Z
dls.modelsr   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*   django.contrib.authr+   Zrest_framework.decoratorsr,   Zrest_framework.authtoken.modelsr-   Zrest_framework.permissionsr.   r/   r0   Zrest_framework.parsersr1   r2   r3   django.core.files.storager4   rH   r6   django.confr7   r8   r9   rf   django.views.decorators.csrfr:   django.utilsr;   r#  r   Zdjango.corer<   formsr=   r  r  boto3.s3.transferr>   requeststasksr?   dls.global_configurationr@   smtplibemail.utilsrC   email.mime.multipartrA   email.mime.textrB   rl   r  rX   rk   rv   rx   r   r   r   r  r  r)  r2  r3  rL  rM  rj  rx  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"  r3  r4  r[  r]  rg  rj  rV   rV   rV   rW   <module>   s  *		&# ,? %,w'q%f9	7 @HL"l(b1Zl