feat: enrich ticket update notifications
This commit is contained in:
@@ -50,9 +50,13 @@ database = CHANGE_ME_ODOO_DATABASE
|
||||
username = CHANGE_ME_ODOO_USERNAME
|
||||
api_key = CHANGE_ME_ODOO_API_KEY
|
||||
model = helpdesk.ticket
|
||||
fields = id,name,stage_id,partner_id,user_id,write_date
|
||||
|
||||
[http]
|
||||
timeout = 30
|
||||
|
||||
[notification]
|
||||
max_tickets = 50
|
||||
```
|
||||
|
||||
Au deploiement, `install()` copie ce modele vers `WAPT.private_dir/ticketing.ini` uniquement si le fichier n'existe pas deja. Il faut ensuite renseigner le fichier prive sur la machine cible. Les mises a jour du paquet n'ecrasent donc pas une configuration deja remplie.
|
||||
@@ -86,6 +90,10 @@ Le runtime lit et ecrit ce fichier dans `WAPT.private_dir`. Il n'est pas version
|
||||
|
||||
La cle API est utilisee comme mot de passe d'API Odoo pour authentifier `username`. Il est aussi possible de renseigner `uid` dans la section `[odoo]` pour eviter l'appel d'authentification.
|
||||
|
||||
`odoo.fields` controle les champs recuperes depuis Odoo pour enrichir la notification. Les champs `id` et `write_date` sont toujours ajoutes s'ils sont absents, car ils sont necessaires a la comparaison d'etat.
|
||||
|
||||
`notification.max_tickets` limite le nombre de lignes detaillees envoyees dans Rocket.Chat. Le message indique toujours le nombre total de tickets modifies.
|
||||
|
||||
## Protocole Odoo
|
||||
|
||||
Le script utilise l'endpoint configure sous la forme `<odoo.url>/jsonrpc` avec le protocole JSON-RPC Odoo standard.
|
||||
@@ -114,12 +122,29 @@ Lecture des tickets :
|
||||
"params": {
|
||||
"service": "object",
|
||||
"method": "execute_kw",
|
||||
"args": ["database", "uid", "api_key", "helpdesk.ticket", "search_read", [[]], {"fields": ["id", "write_date"]}]
|
||||
"args": ["database", "uid", "api_key", "helpdesk.ticket", "search_read", [[]], {"fields": ["id", "name", "stage_id", "partner_id", "user_id", "write_date"]}]
|
||||
},
|
||||
"id": 1
|
||||
}
|
||||
```
|
||||
|
||||
## Notification
|
||||
|
||||
Quand des tickets changent, Rocket.Chat recoit un message avec :
|
||||
|
||||
- le nombre total de tickets modifies ;
|
||||
- une ligne par ticket affiche, limitee par `notification.max_tickets` ;
|
||||
- l'ID, le titre, le type de changement, le statut, le client, l'assigne, la nouvelle date de modification et l'ancienne date quand elle existe.
|
||||
|
||||
Exemple :
|
||||
|
||||
```text
|
||||
Tickets Odoo mis a jour depuis la derniere verification : 2
|
||||
|
||||
- #187 | Probleme imprimante | type: modifie | statut: En cours | client: Comitari | assigne: Support | date: 2026-07-24 10:00:00 | ancienne date: 2026-07-24 09:00:00
|
||||
- #251 | Nouveau ticket | type: nouveau | statut: - | client: - | assigne: - | date: 2026-07-24 11:00:00
|
||||
```
|
||||
|
||||
## Tests
|
||||
|
||||
Les tests unitaires peuvent etre executes hors WAPT :
|
||||
|
||||
Reference in New Issue
Block a user