This commit is contained in:
Ladebeze66 2025-03-19 16:23:38 +01:00
parent 9bd43e24b1
commit ff33ca68a0
16 changed files with 3250 additions and 29 deletions

Binary file not shown.

View File

@ -0,0 +1,156 @@
{
"id": 5276,
"active": true,
"name": "Mention provisoire toujours présente après validation de la FTP",
"description": "<p>Sur https://poullard.brg-lab.com/ </p><p>Carriere :  POULLARD/GRANUDEM</p><p>Matériaux : 12/20 Gravillon, 4/16 Gravillon<br></p><p>La FTP \"Fiche technique\" est validée mais à l'impression, la mention \"Provisoire\" s'affiche toujours</p><p>Dévalider / revalider la FTP ne résout pas le problème.</p><p>Si on crée une nouvelle FTP sur ce matériau, le problème est également présent.</p><p><br></p><p>Rq : le problème inverse se produit sur demo.brg-lab.com : que la FTP soit validé ou non, la mention provisoire n'apparait jamais.<br></p>",
"sequence": 0,
"stage_id": [
8,
"Clôturé"
],
"kanban_state": "normal",
"create_date": "2022-07-07 08:27:13",
"write_date": "2024-10-03 13:10:50",
"date_start": "2022-07-07 08:27:16",
"date_end": false,
"date_assign": "2022-07-20 07:37:05",
"date_deadline": false,
"date_last_stage_update": "2022-07-21 07:48:43",
"project_id": [
4,
"Tickets"
],
"notes": false,
"planned_hours": 0.0,
"user_id": [
8,
"Quentin FAIVRE"
],
"partner_id": [
9338,
"SAS POULLARD / GRANUDEM DEVELOPPEMENT, Aline POULLARD"
],
"company_id": [
1,
"CBAO S.A.R.L."
],
"color": 0,
"displayed_image_id": false,
"parent_id": false,
"child_ids": [],
"email_from": "Aline <poullard@poullard.fr>",
"email_cc": "",
"working_hours_open": 63.0,
"working_hours_close": 0.0,
"working_days_open": 2.625,
"working_days_close": 0.0,
"website_message_ids": [
120328,
120282,
120178
],
"remaining_hours": 0.0,
"effective_hours": 0.0,
"total_hours_spent": 0.0,
"progress": 0.0,
"subtask_effective_hours": 0.0,
"timesheet_ids": [],
"priority": "3",
"code": "T5294",
"milestone_id": false,
"sale_line_id": false,
"sale_order_id": false,
"billable_type": "no",
"activity_ids": [],
"message_follower_ids": [
43991,
44032,
44045,
44046
],
"message_ids": [
121063,
120857,
120856,
120328,
120283,
120282,
120256,
120183,
120178,
120177
],
"message_main_attachment_id": false,
"failed_message_ids": [],
"rating_ids": [],
"rating_last_value": 0.0,
"access_token": "c0f46dde-7cf3-4888-9d22-d1178e0fc040",
"create_uid": [
1,
"OdooBot"
],
"write_uid": [
1,
"OdooBot"
],
"x_CBAO_windows_maj_ID": false,
"x_CBAO_version_signalement": false,
"x_CBAO_version_correction": false,
"x_CBAO_DateCorrection": false,
"x_CBAO_Scoring_Facilite": 0,
"x_CBAO_Scoring_Importance": 4,
"x_CBAO_Scoring_Urgence": 3,
"x_CBAO_Scoring_Incidence": 2,
"x_CBAO_Scoring_Resultat": 9,
"x_CBAO_InformationsSup": false,
"kanban_state_label": "En cours",
"subtask_planned_hours": 0.0,
"manager_id": [
8,
"Quentin FAIVRE"
],
"user_email": "quentin@cbao.fr",
"attachment_ids": [],
"legend_blocked": "Bloqué",
"legend_done": "Prêt pour la prochaine étape",
"legend_normal": "En cours",
"subtask_project_id": [
4,
"Tickets"
],
"subtask_count": 0,
"analytic_account_active": true,
"allow_timesheets": true,
"use_milestones": false,
"show_time_control": "start",
"is_project_map_empty": true,
"activity_state": false,
"activity_user_id": false,
"activity_type_id": false,
"activity_date_deadline": false,
"activity_summary": false,
"message_is_follower": false,
"message_unread": false,
"message_unread_counter": 0,
"message_needaction": false,
"message_needaction_counter": 0,
"message_has_error": false,
"message_has_error_counter": 0,
"message_attachment_count": 0,
"rating_last_feedback": false,
"rating_last_image": false,
"rating_count": 0,
"access_url": "/my/task/5276",
"access_warning": "",
"display_name": "[T5294] Mention provisoire toujours présente après validation de la FTP",
"__last_update": "2024-10-03 13:10:50",
"stage_id_value": "Clôturé",
"project_id_value": "Tickets",
"user_id_value": "Quentin FAIVRE",
"partner_id_value": "SAS POULLARD / GRANUDEM DEVELOPPEMENT, Aline POULLARD",
"manager_id_value": "Quentin FAIVRE",
"company_id_value": "CBAO S.A.R.L.",
"subtask_project_id_value": "Tickets",
"create_uid_value": "OdooBot",
"write_uid_value": "OdooBot"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,149 @@
{
"id": 8749,
"active": true,
"name": "Problème dosage de formule sur les centrales à grave",
"description": "<h1><span style=\"font-weight: normal;\"><font style=\"font-size: 14px;\">Sur la définition de formule sur les centrales à grave, il y a des problème pour le dosage : </font></span></h1><h1><span style=\"font-weight: normal;\"><font style=\"font-size: 14px;\"> </font></span><span style=\"font-weight: normal;\"><font style=\"font-size: 14px;\">- Il y a une inversion entre le dosage en ppc et le dosage en %</font> <font style=\"font-size: 14px;\">(Le ppc ne tient compte que des granulats et le % du total des composants)</font><b><br></b></span></h1><h1><span style=\"font-weight: normal;\"><font style=\"font-size: 14px;\">- On ne peut pas mettre de dosage à 100%</font></span><br></h1><h1><span style=\"font-weight: normal;\"><font style=\"font-size: 14px;\">Voir PJ</font></span><br></h1><h1><br></h1><h1><br></h1><h1>Point particulier :</h1><ul><li><b>Le cas est bloquant</b></li></ul><h1>Description du problème :</h1><p>dans la création de grave (centrale à grave), il est impossible de mettre 100 % sur un matériau. J'ai uniquement 1 granulat et le liant.\nPar ailleurs il y a inversion entre ppc et %. Le ppc ne tient compte que des granulats et le % du total des composants.</p>",
"sequence": 0,
"stage_id": [
5,
"En attente de résolution"
],
"kanban_state": "normal",
"create_date": "2024-02-29 07:53:46",
"write_date": "2024-10-03 13:10:50",
"date_start": "2024-02-29 07:53:46",
"date_end": false,
"date_assign": "2024-03-04 08:35:27",
"date_deadline": false,
"date_last_stage_update": "2024-02-29 08:05:15",
"project_id": [
4,
"Tickets"
],
"notes": false,
"planned_hours": 0.0,
"user_id": false,
"partner_id": [
8696,
"EUROCONTROLE (GROUPE GOREZ), Audray DOMANGE"
],
"company_id": [
1,
"CBAO S.A.R.L."
],
"color": 0,
"displayed_image_id": false,
"parent_id": false,
"child_ids": [],
"email_from": "a.domange@ecqualite.fr",
"email_cc": "",
"working_hours_open": 14.0,
"working_hours_close": 0.0,
"working_days_open": 0.5833333333333334,
"working_days_close": 0.0,
"website_message_ids": [
174313,
174308
],
"remaining_hours": 0.0,
"effective_hours": 0.0,
"total_hours_spent": 0.0,
"progress": 0.0,
"subtask_effective_hours": 0.0,
"timesheet_ids": [],
"priority": "3",
"code": "T8770",
"milestone_id": false,
"sale_line_id": false,
"sale_order_id": false,
"billable_type": "no",
"activity_ids": [],
"message_follower_ids": [
69885,
70033,
70351,
70352
],
"message_ids": [
174313,
174309,
174308,
173745,
173492,
173484
],
"message_main_attachment_id": false,
"failed_message_ids": [],
"rating_ids": [],
"rating_last_value": 0.0,
"access_token": "b4f9eab2-4bfd-4f80-82fe-848743e9d87d",
"create_uid": [
28,
"Support Robot"
],
"write_uid": [
1,
"OdooBot"
],
"x_CBAO_windows_maj_ID": "",
"x_CBAO_version_signalement": "20240208",
"x_CBAO_version_correction": "",
"x_CBAO_DateCorrection": false,
"x_CBAO_Scoring_Facilite": 0,
"x_CBAO_Scoring_Importance": 3,
"x_CBAO_Scoring_Urgence": 3,
"x_CBAO_Scoring_Incidence": 3,
"x_CBAO_Scoring_Resultat": 9,
"x_CBAO_InformationsSup": false,
"kanban_state_label": "En cours",
"subtask_planned_hours": 0.0,
"manager_id": [
8,
"Quentin FAIVRE"
],
"user_email": false,
"attachment_ids": [
122020
],
"legend_blocked": "Bloquéé",
"legend_done": "Planifiée",
"legend_normal": "En cours",
"subtask_project_id": [
4,
"Tickets"
],
"subtask_count": 0,
"analytic_account_active": true,
"allow_timesheets": true,
"use_milestones": false,
"show_time_control": "start",
"is_project_map_empty": true,
"activity_state": false,
"activity_user_id": false,
"activity_type_id": false,
"activity_date_deadline": false,
"activity_summary": false,
"message_is_follower": false,
"message_unread": false,
"message_unread_counter": 0,
"message_needaction": false,
"message_needaction_counter": 0,
"message_has_error": false,
"message_has_error_counter": 0,
"message_attachment_count": 1,
"rating_last_feedback": false,
"rating_last_image": false,
"rating_count": 0,
"access_url": "/my/task/8749",
"access_warning": "",
"display_name": "[T8770] Problème dosage de formule sur les centrales à grave",
"__last_update": "2024-10-03 13:10:50",
"stage_id_value": "En attente de résolution",
"project_id_value": "Tickets",
"partner_id_value": "EUROCONTROLE (GROUPE GOREZ), Audray DOMANGE",
"manager_id_value": "Quentin FAIVRE",
"company_id_value": "CBAO S.A.R.L.",
"subtask_project_id_value": "Tickets",
"create_uid_value": "Support Robot",
"write_uid_value": "OdooBot"
}

View File

@ -0,0 +1,167 @@
{
"id": 8926,
"active": true,
"name": "Ajout de l'essai VBS NF EN 17542-3",
"description": "<h1><span style=\"font-weight: normal;\"><font style=\"font-size: 14px;\">La norme NF P 94-068 du VBS est annulée, elle est remplacée par la norme NF EN 17542-3</font></span></h1><h1><span style=\"font-weight: normal;\"><font style=\"font-size: 14px;\">Il faudrait ajouter cet essai.</font></span></h1><h1><span style=\"font-weight: normal;\"><font style=\"font-size: 14px;\">Voir les extraits de la norme en PJ</font><br></span></h1><h1><br></h1><h1>Point particulier :</h1><ul><li>Échantillons :sols ou granulat</li><li>Essais :Valeur au bleu d'un sol</li><li>Une norme :NF EN 17542-3</li><li><b>Le cas est bloquant</b></li></ul><h1>Description du problème :</h1><p>Bonjour,\nLa norme NF P 94-068 du VBS est annulée, elle est remplacée par la norme NF EN 17542-3.\nMerci d'intégrer cette norme au logiciel.\ncordialement.\n</p>",
"sequence": 0,
"stage_id": [
8,
"Clôturé"
],
"kanban_state": "normal",
"create_date": "2024-03-19 13:03:27",
"write_date": "2024-10-23 13:32:16",
"date_start": "2024-03-19 13:03:27",
"date_end": false,
"date_assign": "2024-09-25 09:25:09",
"date_deadline": false,
"date_last_stage_update": "2024-10-23 13:32:16",
"project_id": [
4,
"Tickets"
],
"notes": false,
"planned_hours": 0.0,
"user_id": [
22,
"Fabien LAFAY"
],
"partner_id": [
4427,
"EGIS SA, Olivier DENK"
],
"company_id": [
1,
"CBAO S.A.R.L."
],
"color": 0,
"displayed_image_id": false,
"parent_id": false,
"child_ids": [],
"email_from": "Olivier.DENK@egis-group.com",
"email_cc": "",
"working_hours_open": 949.4191666666667,
"working_hours_close": 0.0,
"working_days_open": 39.559131944444445,
"working_days_close": 0.0,
"website_message_ids": [
176471,
176409,
176387
],
"remaining_hours": 0.0,
"effective_hours": 0.0,
"total_hours_spent": 0.0,
"progress": 0.0,
"subtask_effective_hours": 0.0,
"timesheet_ids": [],
"priority": "3",
"code": "T8947",
"milestone_id": false,
"sale_line_id": false,
"sale_order_id": false,
"billable_type": "no",
"activity_ids": [],
"message_follower_ids": [
70965,
71354,
71355,
71404
],
"message_ids": [
207407,
202060,
202056,
187839,
182031,
176472,
176471,
176450,
176409,
176390,
176389,
176388,
176387,
176154,
175551,
175549,
175548
],
"message_main_attachment_id": [
123804,
"image001.png"
],
"failed_message_ids": [],
"rating_ids": [],
"rating_last_value": 0.0,
"access_token": "4f8dadf9-0e32-413b-92b5-973a3ece31d7",
"create_uid": [
28,
"Support Robot"
],
"write_uid": [
22,
"Fabien LAFAY"
],
"x_CBAO_windows_maj_ID": "",
"x_CBAO_version_signalement": "20240308",
"x_CBAO_version_correction": "",
"x_CBAO_DateCorrection": "2024-10-23",
"x_CBAO_Scoring_Facilite": 0,
"x_CBAO_Scoring_Importance": 4,
"x_CBAO_Scoring_Urgence": 2,
"x_CBAO_Scoring_Incidence": 3,
"x_CBAO_Scoring_Resultat": 9,
"x_CBAO_InformationsSup": false,
"kanban_state_label": "En cours",
"subtask_planned_hours": 0.0,
"manager_id": [
8,
"Quentin FAIVRE"
],
"user_email": "fabien@mail.cbao.fr",
"attachment_ids": [],
"legend_blocked": "Bloqué",
"legend_done": "Prêt pour la prochaine étape",
"legend_normal": "En cours",
"subtask_project_id": [
4,
"Tickets"
],
"subtask_count": 0,
"analytic_account_active": true,
"allow_timesheets": true,
"use_milestones": false,
"show_time_control": "start",
"is_project_map_empty": true,
"activity_state": false,
"activity_user_id": false,
"activity_type_id": false,
"activity_date_deadline": false,
"activity_summary": false,
"message_is_follower": false,
"message_unread": false,
"message_unread_counter": 0,
"message_needaction": false,
"message_needaction_counter": 0,
"message_has_error": false,
"message_has_error_counter": 0,
"message_attachment_count": 4,
"rating_last_feedback": false,
"rating_last_image": false,
"rating_count": 0,
"access_url": "/my/task/8926",
"access_warning": "",
"display_name": "[T8947] Ajout de l'essai VBS NF EN 17542-3",
"__last_update": "2024-10-23 13:32:16",
"stage_id_value": "Clôturé",
"project_id_value": "Tickets",
"user_id_value": "Fabien LAFAY",
"partner_id_value": "EGIS SA, Olivier DENK",
"manager_id_value": "Quentin FAIVRE",
"company_id_value": "CBAO S.A.R.L.",
"subtask_project_id_value": "Tickets",
"message_main_attachment_id_value": "image001.png",
"create_uid_value": "Support Robot",
"write_uid_value": "Fabien LAFAY"
}

View File

@ -0,0 +1,173 @@
{
"id": 9105,
"active": true,
"name": "Mise à jour NCE",
"description": "<h1><span style=\"font-weight: normal;\"><font style=\"font-size: 14px;\">Même ticket que T9858 - Mise à jour NCE<br></font><font style=\"font-size: 14px;\">Mise à jour du NCE pour prendre en compte le tableau A.2 de la norme sur la vérification des écarts moyens</font></span><br></h1><h1>Point particulier :</h1><ul><li><b>Le cas est bloquant</b></li></ul><h1>Description du problème :</h1><p>Bonjour, \nnous ne comprenons pas le résultat du NCE en cours (voir impression écran). \nLe NCE actuel affiche \"?\", et on nous donne une note en A, or, la valeur de la moyenne sur le tamis de 0,063 est compris entre -1 et -2, donc on devrait avoir une note de B. \nJe suis disponible par mail ce jour pour échange. \nBien cordialement,</p>",
"sequence": 0,
"stage_id": [
5,
"En attente de résolution"
],
"kanban_state": "normal",
"create_date": "2024-04-17 07:12:30",
"write_date": "2024-10-03 13:10:50",
"date_start": "2024-06-04 14:17:48",
"date_end": false,
"date_assign": "2024-06-04 14:17:49",
"date_deadline": false,
"date_last_stage_update": "2024-09-09 07:58:33",
"project_id": [
4,
"Tickets"
],
"notes": false,
"planned_hours": 0.0,
"user_id": false,
"partner_id": [
31313,
"LABORATOIRE DES ESTUAIRES, LABORATOIRE DES ESTUAIRES"
],
"company_id": [
1,
"CBAO S.A.R.L."
],
"color": 0,
"displayed_image_id": false,
"parent_id": false,
"child_ids": [],
"email_from": "alexandra.varlet@henryfreres.fr",
"email_cc": false,
"working_hours_open": 241.29694444444445,
"working_hours_close": 0.0,
"working_days_open": 10.054039351851852,
"working_days_close": 0.0,
"website_message_ids": [
187231,
181807,
181621,
179595,
179580,
179561
],
"remaining_hours": 0.0,
"effective_hours": 0.0,
"total_hours_spent": 0.0,
"progress": 0.0,
"subtask_effective_hours": 0.0,
"timesheet_ids": [],
"priority": "3",
"code": "T9126",
"milestone_id": false,
"sale_line_id": false,
"sale_order_id": false,
"billable_type": "no",
"activity_ids": [],
"message_follower_ids": [
72311,
72312,
72345,
72346,
80261
],
"message_ids": [
200686,
187232,
187231,
187230,
184509,
181809,
181808,
181807,
181623,
181621,
181040,
179596,
179595,
179581,
179580,
179564,
179563,
179562,
179561,
179494,
179488
],
"message_main_attachment_id": [
125067,
"Sans titre.png"
],
"failed_message_ids": [],
"rating_ids": [],
"rating_last_value": 0.0,
"access_token": "33f67766-d2c7-4c52-bd3f-2d6cbdacf005",
"create_uid": [
28,
"Support Robot"
],
"write_uid": [
1,
"OdooBot"
],
"x_CBAO_windows_maj_ID": "",
"x_CBAO_version_signalement": "20240322",
"x_CBAO_version_correction": "",
"x_CBAO_DateCorrection": false,
"x_CBAO_Scoring_Facilite": 0,
"x_CBAO_Scoring_Importance": 3,
"x_CBAO_Scoring_Urgence": 1,
"x_CBAO_Scoring_Incidence": 2,
"x_CBAO_Scoring_Resultat": 6,
"x_CBAO_InformationsSup": false,
"kanban_state_label": "En cours",
"subtask_planned_hours": 0.0,
"manager_id": [
8,
"Quentin FAIVRE"
],
"user_email": false,
"attachment_ids": [
125005
],
"legend_blocked": "Bloquéé",
"legend_done": "Planifiée",
"legend_normal": "En cours",
"subtask_project_id": [
4,
"Tickets"
],
"subtask_count": 0,
"analytic_account_active": true,
"allow_timesheets": true,
"use_milestones": false,
"show_time_control": "start",
"is_project_map_empty": true,
"activity_state": false,
"activity_user_id": false,
"activity_type_id": false,
"activity_date_deadline": false,
"activity_summary": false,
"message_is_follower": false,
"message_unread": false,
"message_unread_counter": 0,
"message_needaction": false,
"message_needaction_counter": 0,
"message_has_error": false,
"message_has_error_counter": 0,
"message_attachment_count": 6,
"rating_last_feedback": false,
"rating_last_image": false,
"rating_count": 0,
"access_url": "/my/task/9105",
"access_warning": "",
"display_name": "[T9126] Mise à jour NCE",
"__last_update": "2024-10-03 13:10:50",
"stage_id_value": "En attente de résolution",
"project_id_value": "Tickets",
"partner_id_value": "LABORATOIRE DES ESTUAIRES, LABORATOIRE DES ESTUAIRES",
"manager_id_value": "Quentin FAIVRE",
"company_id_value": "CBAO S.A.R.L.",
"subtask_project_id_value": "Tickets",
"message_main_attachment_id_value": "Sans titre.png",
"create_uid_value": "Support Robot",
"write_uid_value": "OdooBot"
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,152 @@
{
"id": 9659,
"active": true,
"name": "Valeurs non enregistrée sur l'essai Densité et teneur en eau - Compactage Proctor",
"description": "<h1><span style=\"font-weight: normal;\"><font style=\"font-size: 14px;\">Sur l'essai Densité et teneur en eau - Compactage Proctor (Optimum non corrigé) - NF EN 13286-2 (10-2010), les valeurs ne sont pas enregistrées.</font></span></h1><h1><span style=\"font-weight: normal;\"><font style=\"font-size: 14px;\">Elles ne sont plus présentes quand on ferme et réouvre l'essai</font></span><br></h1><h1>Point particulier :</h1><ul><li><b>Le cas est bloquant</b></li></ul><h1>Description du problème :</h1><p>Bonjour après avoir renseigné les différents pavés concernant mon essais(capture d'écran 1) ,j'ai enregistré celui-ci .\nEn fermant l'essai puis en revenant vers celui-ci ,apparait un message d'erreur (capture d'écran 2) et lorsque la page d'essai s'ouvre les données ont été effacées (capture d'écran 3 ). </p>",
"sequence": 0,
"stage_id": [
8,
"Clôturé"
],
"kanban_state": "normal",
"create_date": "2024-07-11 15:54:18",
"write_date": "2024-10-03 13:10:50",
"date_start": "2024-07-11 15:54:18",
"date_end": false,
"date_assign": "2024-07-15 13:41:38",
"date_deadline": false,
"date_last_stage_update": "2024-09-13 08:54:36",
"project_id": [
4,
"Tickets"
],
"notes": false,
"planned_hours": 0.0,
"user_id": [
22,
"Fabien LAFAY"
],
"partner_id": [
28515,
"COLLECTIVITE TERRITORIALE DE MARTINIQUE, Alain-Michel JEAN-BAPTISTE"
],
"company_id": [
1,
"CBAO S.A.R.L."
],
"color": 0,
"displayed_image_id": false,
"parent_id": false,
"child_ids": [],
"email_from": "alain-michel.jean-baptiste@collectivitedemartinique.mq",
"email_cc": "patrick.lefroy@collectivitedemartinique.mq",
"working_hours_open": 12.094878848333334,
"working_hours_close": 0.0,
"working_days_open": 0.5039532853472223,
"working_days_close": 0.0,
"website_message_ids": [
193288
],
"remaining_hours": 0.0,
"effective_hours": 0.0,
"total_hours_spent": 0.0,
"progress": 0.0,
"subtask_effective_hours": 0.0,
"timesheet_ids": [],
"priority": "3",
"code": "T9680",
"milestone_id": false,
"sale_line_id": false,
"sale_order_id": false,
"billable_type": "no",
"activity_ids": [],
"message_follower_ids": [
77551,
77574,
77575
],
"message_ids": [
201117,
193373,
193372,
193289,
193288,
193240,
193234
],
"message_main_attachment_id": false,
"failed_message_ids": [],
"rating_ids": [],
"rating_last_value": 0.0,
"access_token": "8b866944-4d0e-47cc-aacc-4eaa4c7a515d",
"create_uid": [
28,
"Support Robot"
],
"write_uid": [
1,
"OdooBot"
],
"x_CBAO_windows_maj_ID": "",
"x_CBAO_version_signalement": "20240624",
"x_CBAO_version_correction": "",
"x_CBAO_DateCorrection": "2024-09-13",
"x_CBAO_Scoring_Facilite": 3,
"x_CBAO_Scoring_Importance": 4,
"x_CBAO_Scoring_Urgence": 3,
"x_CBAO_Scoring_Incidence": 3,
"x_CBAO_Scoring_Resultat": 13,
"x_CBAO_InformationsSup": false,
"kanban_state_label": "En cours",
"subtask_planned_hours": 0.0,
"manager_id": [
8,
"Quentin FAIVRE"
],
"user_email": "fabien@mail.cbao.fr",
"attachment_ids": [
129260
],
"legend_blocked": "Bloqué",
"legend_done": "Prêt pour la prochaine étape",
"legend_normal": "En cours",
"subtask_project_id": [
4,
"Tickets"
],
"subtask_count": 0,
"analytic_account_active": true,
"allow_timesheets": true,
"use_milestones": false,
"show_time_control": "start",
"is_project_map_empty": true,
"activity_state": false,
"activity_user_id": false,
"activity_type_id": false,
"activity_date_deadline": false,
"activity_summary": false,
"message_is_follower": false,
"message_unread": false,
"message_unread_counter": 0,
"message_needaction": false,
"message_needaction_counter": 0,
"message_has_error": false,
"message_has_error_counter": 0,
"message_attachment_count": 1,
"rating_last_feedback": false,
"rating_last_image": false,
"rating_count": 0,
"access_url": "/my/task/9659",
"access_warning": "",
"display_name": "[T9680] Valeurs non enregistrée sur l'essai Densité et teneur en eau - Compactage Proctor",
"__last_update": "2024-10-03 13:10:50",
"stage_id_value": "Clôturé",
"project_id_value": "Tickets",
"user_id_value": "Fabien LAFAY",
"partner_id_value": "COLLECTIVITE TERRITORIALE DE MARTINIQUE, Alain-Michel JEAN-BAPTISTE",
"manager_id_value": "Quentin FAIVRE",
"company_id_value": "CBAO S.A.R.L.",
"subtask_project_id_value": "Tickets",
"create_uid_value": "Support Robot",
"write_uid_value": "OdooBot"
}

View File

@ -0,0 +1,145 @@
{
"id": 9849,
"active": true,
"name": "Sauvegarde des tamis pour les matériaux autre que granulat",
"description": "<h1><span style='color: rgb(76, 76, 76); font-family: \"Lucida Grande\", Helvetica, Verdana, Arial, sans-serif; font-size: 13px; font-weight: 400; text-align: justify;'>La sauvegarde des tamis utilisée fonctionne uniquement pour les matériaux de type granulat. Il faudrait que cela fonctionne également pour les autres matériaux de carrière (pierre naturelle, sol)</span><br></h1><h1><br></h1><h1>Point particulier :</h1><ul><li>Essais :2024-G-0408</li><li><b>Le cas est bloquant</b></li></ul><h1>Description du problème :</h1><p>Bonjour , \nJe n'arrive pas à sauvegarder une colonne de tamis après modification et après duplicata , afin de crée un nouveau numéro déchantillon avec les mêmes tamis ( même projet) ! \nLe l'logiciel me propose toujours une colonne de tamis par défaut !\nMerci de faire le nécessaire!\nCordialement \n</p>",
"sequence": 0,
"stage_id": [
5,
"En attente de résolution"
],
"kanban_state": "normal",
"create_date": "2024-09-03 07:45:24",
"write_date": "2025-03-17 10:14:08",
"date_start": "2024-09-03 07:45:24",
"date_end": false,
"date_assign": false,
"date_deadline": false,
"date_last_stage_update": "2024-09-03 07:55:07",
"project_id": [
4,
"Tickets"
],
"notes": false,
"planned_hours": 0.0,
"user_id": false,
"partner_id": [
29752,
"EGIS SA, Noureddine BAALI"
],
"company_id": [
1,
"CBAO S.A.R.L."
],
"color": 0,
"displayed_image_id": false,
"parent_id": false,
"child_ids": [],
"email_from": "noureddine.baali@egis-group.com",
"email_cc": "",
"working_hours_open": 0.0,
"working_hours_close": 0.0,
"working_days_open": 0.0,
"working_days_close": 0.0,
"website_message_ids": [
200350
],
"remaining_hours": 0.0,
"effective_hours": 0.0,
"total_hours_spent": 0.0,
"progress": 0.0,
"subtask_effective_hours": 0.0,
"timesheet_ids": [],
"priority": "3",
"code": "T09870",
"milestone_id": false,
"sale_line_id": false,
"sale_order_id": false,
"billable_type": "no",
"activity_ids": [],
"message_follower_ids": [
80045,
80046,
80081,
80082,
80083
],
"message_ids": [
200351,
200350,
200299,
200293
],
"message_main_attachment_id": false,
"failed_message_ids": [],
"rating_ids": [],
"rating_last_value": 0.0,
"access_token": "2bc75cda-90c5-4e37-93d3-f474c01ea615",
"create_uid": [
28,
"Support Robot"
],
"write_uid": [
22,
"Fabien LAFAY"
],
"x_CBAO_windows_maj_ID": "",
"x_CBAO_version_signalement": "20240624",
"x_CBAO_version_correction": "",
"x_CBAO_DateCorrection": false,
"x_CBAO_Scoring_Facilite": 0,
"x_CBAO_Scoring_Importance": 2,
"x_CBAO_Scoring_Urgence": 1,
"x_CBAO_Scoring_Incidence": 3,
"x_CBAO_Scoring_Resultat": 6,
"x_CBAO_InformationsSup": false,
"kanban_state_label": "En cours",
"subtask_planned_hours": 0.0,
"manager_id": [
8,
"Quentin FAIVRE"
],
"user_email": false,
"attachment_ids": [],
"legend_blocked": "Bloquéé",
"legend_done": "Planifiée",
"legend_normal": "En cours",
"subtask_project_id": [
4,
"Tickets"
],
"subtask_count": 0,
"analytic_account_active": true,
"allow_timesheets": true,
"use_milestones": false,
"show_time_control": "start",
"is_project_map_empty": true,
"activity_state": false,
"activity_user_id": false,
"activity_type_id": false,
"activity_date_deadline": false,
"activity_summary": false,
"message_is_follower": false,
"message_unread": false,
"message_unread_counter": 0,
"message_needaction": false,
"message_needaction_counter": 0,
"message_has_error": false,
"message_has_error_counter": 0,
"message_attachment_count": 0,
"rating_last_feedback": false,
"rating_last_image": false,
"rating_count": 0,
"access_url": "/my/task/9849",
"access_warning": "",
"display_name": "[T09870] Sauvegarde des tamis pour les matériaux autre que granulat",
"__last_update": "2025-03-17 10:14:08",
"stage_id_value": "En attente de résolution",
"project_id_value": "Tickets",
"partner_id_value": "EGIS SA, Noureddine BAALI",
"manager_id_value": "Quentin FAIVRE",
"company_id_value": "CBAO S.A.R.L.",
"subtask_project_id_value": "Tickets",
"create_uid_value": "Support Robot",
"write_uid_value": "Fabien LAFAY"
}

File diff suppressed because one or more lines are too long

View File

@ -64,19 +64,54 @@ def handle_project_tickets_by_stage():
print("Aucun projet disponible. Impossible de continuer.")
return
# Afficher les projets disponibles pour aider l'utilisateur
print("\nProjets disponibles:")
for proj_id, proj_name in projects.items():
print(f"- ID: {proj_id} - Nom: {proj_name}")
# Demander à l'utilisateur de choisir un projet
project_id_input = input("\nEntrez l'ID du projet (ou 'q' pour quitter): ")
project_id_input = input("\nEntrez l'ID du projet (ou 'q' pour quitter, 0 pour tous): ")
if project_id_input.lower() == 'q':
return
try:
project_id = int(project_id_input)
if project_id not in projects.keys():
print_error(f"Aucun projet trouvé avec l'ID: {project_id}")
project_id = None
if project_id_input != '0':
try:
project_id = int(project_id_input)
if project_id not in projects.keys():
print_error(f"Aucun projet trouvé avec l'ID: {project_id}")
return
except ValueError:
print("L'ID du projet doit être un nombre entier.")
return
except ValueError:
print("L'ID du projet doit être un nombre entier.")
return
#Exportet les tickets du projet
ticket_manager.export_tickets_by_project_and_stage(project_id)
# Demander à l'utilisateur s'il souhaite filtrer par étape également
filter_by_stage = input("\nSouhaitez-vous filtrer par étape aussi? (o/n): ").lower() == 'o'
stage_id = None
if filter_by_stage:
# Récupérer et afficher les étapes disponibles
stages = ticket_manager._safe_execute('project.task.type', 'search_read', [], ['id', 'name'])
if stages:
print("\nÉtapes disponibles:")
for stage in stages:
print(f"- ID: {stage['id']} - Nom: {stage['name']}")
stage_id_input = input("\nEntrez l'ID de l'étape (ou 'q' pour quitter, 0 pour toutes): ")
if stage_id_input.lower() == 'q':
return
if stage_id_input != '0':
try:
stage_id = int(stage_id_input)
# Vérifier que l'étape existe
stage_exists = any(stage['id'] == stage_id for stage in stages)
if not stage_exists:
print_error(f"Aucune étape trouvée avec l'ID: {stage_id}")
return
except ValueError:
print("L'ID de l'étape doit être un nombre entier.")
return
# Exporter les tickets selon les filtres choisis
ticket_manager.export_tickets_by_project_and_stage(project_id, stage_id)

View File

@ -9,7 +9,7 @@ from menu_handlers import (
def display_main_menu():
"""Affiche le menu principal de l'application"""
print("\n==== GESTIONNAIRE DE TICKETS ODOO ====")
print("1. Exporter les tickets d'un project_id par étape")
print("1. Exporter les tickets par projet et/ou étape")
print("2. Rechercher un ticket par ID")
print("3. Rechercher un ticket par Code")
print("4. Afficher la liste des modèles disponibles")
@ -36,4 +36,4 @@ def run_menu():
print("Au revoir!")
break
else:
print("Option invalide. Veuillez choisir entre 1 et 4.")
print("Option invalide. Veuillez choisir entre 1 et 6.")

View File

@ -138,19 +138,41 @@ class TicketManager:
return {}
return {proj['id']: proj['name'] for proj in projects}
def export_tickets_by_project_and_stage(self, project_id):
""" Exporte les tickets d'un projet classés par étape """
def export_tickets_by_project_and_stage(self, project_id=None, stage_id=None):
"""
Exporte les tickets selon des critères de projet et d'étape
Args:
project_id: ID du projet à filtrer (optionnel)
stage_id: ID de l'étape à filtrer (optionnel)
"""
# Vérifier la connexion Odoo
if not self._ensure_connection():
print_error("Connexion Odoo indisponible.")
return
# Récupérer les tickets du projet
domain = [('project_id', '=', project_id)]
# Construire le domaine de recherche en fonction des paramètres
domain = []
if project_id:
domain.append(('project_id', '=', project_id))
if stage_id:
domain.append(('stage_id', '=', stage_id))
# Récupérer les IDs des tickets correspondant aux critères
ticket_ids = self._safe_execute(self.model_name, 'search', domain, 0, 10)
if not ticket_ids:
print_error(f"Aucun ticket trouvé pour le projet {project_id}.")
filters = []
if project_id:
project_name = self._safe_execute('project.project', 'read', [project_id], ['name'])
project_name = project_name[0]['name'] if project_name else str(project_id)
filters.append(f"projet '{project_name}'")
if stage_id:
stage_name = self._safe_execute('project.task.type', 'read', [stage_id], ['name'])
stage_name = stage_name[0]['name'] if stage_name else str(stage_id)
filters.append(f"étape '{stage_name}'")
filter_text = " et ".join(filters) if filters else "critères spécifiés"
print_error(f"Aucun ticket trouvé pour les {filter_text}.")
return
# Lire les détails des tickets
@ -160,23 +182,49 @@ class TicketManager:
if ticket:
tickets.append(ticket)
#trier les tickets par étape
tickets_by_stage = {}
# Organiser les tickets par projet puis par étape
tickets_by_project_stage = {}
for ticket in tickets:
# Extraire les informations du projet
champs_relationnels = ticket.get("Champs Relationnels", {})
project_data = champs_relationnels.get("project_id", [0, "Sans projet"])
project_id = project_data[0] if isinstance(project_data, list) and len(project_data) > 0 else 0
project_name = project_data[1] if isinstance(project_data, list) and len(project_data) > 1 else "Sans projet"
# Extraire les informations de l'étape
stage_data = champs_relationnels.get("stage_id", [0, "Non classé"])
stage_id = stage_data[0] if isinstance(stage_data, list) and len(stage_data) > 0 else 0
stage_name = stage_data[1] if isinstance(stage_data, list) and len(stage_data) > 1 else "Non classé"
key = f"{stage_id}_{stage_name}"
tickets_by_stage.setdefault(key, []).append(ticket)
# Clés pour l'organisation des dossiers
project_key = f"{project_id}_{project_name}"
stage_key = f"{stage_id}_{stage_name}"
# Sauvegarde des fichiers
project_dir = ensure_export_directory(f"project_{project_id}")
for stage_key, stage_tickets in tickets_by_stage.items():
stage_dir = os.path.join(project_dir, stage_key)
os.makedirs(stage_dir, exist_ok=True)
save_json(os.path.join(stage_dir, "all_tickets.json"), stage_tickets)
# Organiser la structure de données
if project_key not in tickets_by_project_stage:
tickets_by_project_stage[project_key] = {}
print(f"Exportation terminée. Les fichiers sont enregistrés dans : {project_dir}/")
if stage_key not in tickets_by_project_stage[project_key]:
tickets_by_project_stage[project_key][stage_key] = []
tickets_by_project_stage[project_key][stage_key].append(ticket)
# Création des répertoires et sauvegarde des fichiers
export_base_dir = os.path.join(EXPORT_DIR, "tickets_export")
os.makedirs(export_base_dir, exist_ok=True)
for project_key, stages in tickets_by_project_stage.items():
project_dir = os.path.join(export_base_dir, project_key)
os.makedirs(project_dir, exist_ok=True)
for stage_key, stage_tickets in stages.items():
stage_dir = os.path.join(project_dir, stage_key)
os.makedirs(stage_dir, exist_ok=True)
# Sauvegarder les tickets avec notre fonction existante
self.save_raw_ticket_data(stage_tickets, os.path.join(stage_dir, "tickets.json"))
print(f"Sauvegarde de {len(stage_tickets)} tickets pour le projet '{project_key}', étape '{stage_key}'")
print(f"Exportation terminée. Les fichiers sont enregistrés dans : {export_base_dir}/")