o
    �‚xi;#  ã                   @   sZ   d dl mZ d dlZd dlmZ d dlZeƒ  ejejdd� e d¡Z	G dd„ dƒZ
dS )	é    )ÚOdooServiceN)Úload_dotenvz)%(asctime)s - %(levelname)s - %(message)s)ÚlevelÚformatÚBASE_URLc                   @   s   e Zd Zedd„ ƒZdS )ÚGetSurveyQuestionsServicec           *      C   sT  | s	t  d¡ d S t  d| › �¡ t ddd| gg d¢gg¡}t  d|› �¡ t d|¡}t  d|› �¡ |sAt  d	| › �¡ d S |d
 }| dg ¡}|sWt  d| › �¡ g S t  d| › �¡ i }dD ]}tjd|d|id�}dd„ |D ƒ||< qct  d¡ i }|D ]}	|d  |	i ¡}
|
 dg ¡}|r¡|d
 |d }}|||< q‚d}i }|D �]ë}|d  |i ¡}|d  |i ¡}|d  |i ¡}| dd g¡d
 }| |d¡}| d¡}|dkrÞd}nA|dkråd}n:|d krìd }n3|d!kród"}n,|d#krúd$}n%|d%k�rd&}n|d'k�r
d'}n|d(k�rd(}n|d)k�rd)}n|�pd*}|| d+d,¡| d+d,¡| d+d,¡|d,i i d-g d.œ
}|d/v �rt| d0g ¡�pEg }i }dD ]}|�rYtjd1|d|id�ng }d2d3„ |D ƒ||< �qJ|d |d |d d4œ|d5< |d k�rå| d6g ¡�p�g }| d0g ¡�pŠg }i }i }dD ]3}|�r tjd1|d|id�ng }|�r¯tjd1|d|id�ng }d7d3„ |D ƒ||< d8d3„ |D ƒ||< �q‘| d9d,¡|d |d |d d4œ|d |d |d d4œd:œ|d;< | d<g ¡�píg } | �ryi }!dD ]}| �rtjd1| d|id�ng }"d=d„ |"D ƒ|!|< �qõ| �rtjd1| ddid�ng }#g }$|#D ]L}%|% d>¡�p-g }&t	|&ƒd
k�r9|&d
 nd }'t	|&ƒdk�rF|&d nd,}(|$ 
|% d¡|!d  |% d¡¡|!d  |% d¡¡|!d  |% d¡¡|'|(d?œ¡ �q$d@|dA< |$|dB< ||v�r‹|||g dCœ||< |d7 }|| dD  
|¡ q¨t  dE¡ t| ¡ ƒ})t  dF|)› �¡ |)S )GNzSurvey ID is missing.zFetching survey with ID: zsurvey.surveyÚidú=)Úsurvey_typer	   ÚsurveyzSurvey search result: zSurvey details fetched: zNo survey found for ID: r   Úquestion_idsz"No questions found for survey ID: z"Fetching questions for survey ID: )Úen_USÚsi_LKÚtn_LKzsurvey.questionÚlang)Úcontextc                 S   s   i | ]}|d  |“qS )r   © )Ú.0Úqr   r   ú7/var/www/html/flaskapp/services/get_survey_questions.pyÚ
<dictcomp>*   s    zJGetSurveyQuestionsService.get_survey_questions_service.<locals>.<dictcomp>z/Building section (page) map from question data.r   Úpage_idé   r   r   zDefault SectionÚquestion_typeÚsimple_choiceÚradioÚmultiple_choiceÚcheckboxÚmatrixÚnumerical_boxÚ	numericalÚchar_boxzsingle line text boxÚtext_boxzmultiple line text boxÚdateÚdatetimeÚscaleÚunknownÚtitleÚ F)
Úquestion_idÚquestion_enÚquestion_siÚquestion_tar   Úspecial_question_typeÚselection_valuesÚmetrix_valuesÚis_conditionalÚconditional_triggers)r   r   Úsuggested_answer_idszsurvey.question.answerc                 S   ó   g | ]}|  d d¡‘qS ©Úvaluer(   ©Úget©r   Úar   r   r   Ú
<listcomp>m   ó    zJGetSurveyQuestionsService.get_survey_questions_service.<locals>.<listcomp>)ÚenÚsiÚtar.   Úmatrix_row_idsc                 S   r3   r4   r6   )r   Úrr   r   r   r:      r;   c                 S   r3   r4   r6   )r   Úcr   r   r   r:   €   r;   Úmatrix_type)ÚTypeÚMetrix_row_titlesÚMetrix_column_headersr/   Útriggering_answer_idsc                 S   s   i | ]}|d  |  dd¡“qS )r   r5   r(   r6   r8   r   r   r   r   š   s    r)   )Ú	answer_idÚanswer_value_enÚanswer_value_siÚanswer_value_taÚsource_question_idÚsource_question_title_enTr0   r1   )Ú
sort_orderÚquestion_group_idÚquestion_group_nameÚ	questionsrP   z)Finished processing all survey questions.z!Final survey questions response: )ÚloggingÚerrorÚinfor   ÚsearchÚdebugÚreadAllÚwarningr7   ÚlenÚappendÚlistÚvalues)*Ú	survey_idr   Úsurvey_detailsÚsurvey_detailr   Úquestions_by_langÚ	lang_coderP   Úsection_mapÚqidÚquestionÚ	page_infoÚ
section_idÚsection_titlerM   Úsection_questions_mapr)   r*   r+   r,   r   Úquestion_display_typeÚquestion_dataÚ
answer_idsÚanswers_by_langÚanswersÚrow_idsÚcol_idsÚrows_by_langÚcols_by_langÚrowsÚcolsÚtrigger_answer_idsÚtriggers_by_langÚtrigger_answersÚtrigger_answers_enr1   r9   Úsource_qÚsource_q_idÚsource_q_titleÚsurvey_questions_responser   r   r   Úget_survey_questions_service   s&  

€









õ

ý

ýý
ùüýüüýüú	

ü
z6GetSurveyQuestionsService.get_survey_questions_serviceN)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr{   r   r   r   r   r      s    r   )Úservices.odoo_servicesr   ÚosÚdotenvr   rQ   ÚbasicConfigÚDEBUGÚgetenvr   r   r   r   r   r   Ú<module>   s    
