From cf103763b0e67fe10313a0e035759d714a629d0e Mon Sep 17 00:00:00 2001 From: bbe Date: Wed, 3 Jun 2020 15:00:51 +0200 Subject: [PATCH 01/19] Fix html format error in french email templates --- helpdesk/fixtures/emailtemplate.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/helpdesk/fixtures/emailtemplate.json b/helpdesk/fixtures/emailtemplate.json index fec03ac4..e83fc665 100644 --- a/helpdesk/fixtures/emailtemplate.json +++ b/helpdesk/fixtures/emailtemplate.json @@ -626,7 +626,7 @@ { "model" : "helpdesk.emailtemplate", "fields" : { - "html" : "

Bonjour,

\r\n\r\n

Vous avez récemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }}. Ce courriel vous confirme que ce ticket a été fermé.

\r\n\r\n

\"La résolution a été motivée ainsi :

\r\n\r\n
{{ ticket.resolution }}
\r\n\r\n

Vous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse {{ ticket.ticket_url }}.

\r\n\r\n

Si vous pensez que nous devons encore travailler sur ce problème, faites le nous savoir en répondant à ce courriel en conservant le sujet tel-quel..

", + "html" : "

Bonjour,

\r\n\r\n

Vous avez récemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }}. Ce courriel vous confirme que ce ticket a été fermé.

\r\n\r\n

La résolution a été motivée ainsi :

\r\n\r\n
{{ ticket.resolution }}
\r\n\r\n

Vous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse {{ ticket.ticket_url }}.

\r\n\r\n

Si vous pensez que nous devons encore travailler sur ce problème, faites le nous savoir en répondant à ce courriel en conservant le sujet tel-quel..

", "heading" : "Ticket Fermé", "subject" : "(Fermé)", "template_name" : "closed_submitter", @@ -686,7 +686,7 @@ { "model" : "helpdesk.emailtemplate", "fields" : { - "html" : "

Bonjour,

\r\n\r\n

Ce courriel permet de vous informer que nous avons reçu votre demande de support dont le sujet est {{ ticket.title }}.

\r\n\r\n

\"Vous n'avez rien de plus à faire pour le moment. Votre ticket porte l'identifiant {{ ticket.ticket }} et sera traité rapidement.

\r\n\r\n

Si vous voulez nous donner plus de détails ou si vous avez une question concernant ce ticket, merci d'inclure la référence {{ ticket.ticket }} dans le sujet du message. Le plus simple étant d'utiliser la fonction 'répondre' de votre logiciel de messagerie.

\r\n\r\n

Vous pouvez visualiser ce ticket en ligne et y ajouter des informations ou des pièces jointes ainsi que voir les dernières mies à jour en vous rendant à l'adresse {{ ticket.ticket_url }}.

\r\n\r\n

Nous allons traiter votre demande afin, si possible, de la résoudre au plus vite. Vous recevrez des mise à jour ou la réponse au ticket à cette adresse mail.

", + "html" : "

Bonjour,

\r\n\r\n

Ce courriel permet de vous informer que nous avons reçu votre demande de support dont le sujet est {{ ticket.title }}.

\r\n\r\n

Vous n'avez rien de plus à faire pour le moment. Votre ticket porte l'identifiant {{ ticket.ticket }} et sera traité rapidement.

\r\n\r\n

Si vous voulez nous donner plus de détails ou si vous avez une question concernant ce ticket, merci d'inclure la référence {{ ticket.ticket }} dans le sujet du message. Le plus simple étant d'utiliser la fonction 'répondre' de votre logiciel de messagerie.

\r\n\r\n

Vous pouvez visualiser ce ticket en ligne et y ajouter des informations ou des pièces jointes ainsi que voir les dernières mies à jour en vous rendant à l'adresse {{ ticket.ticket_url }}.

\r\n\r\n

Nous allons traiter votre demande afin, si possible, de la résoudre au plus vite. Vous recevrez des mise à jour ou la réponse au ticket à cette adresse mail.

", "heading" : "Votre ticket est désormais ouvert", "subject" : "(Ouvert)", "template_name" : "newticket_submitter", @@ -760,7 +760,7 @@ "heading" : "Votre ticket a été mis à jour", "template_name" : "updated_submitter", "subject" : "(Mis à jour)", - "html" : "

Bonjour,

\r\n\r\n

Vous avez récemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }} . Ce message vous informe d'une mise à jour du ticket.

\r\n\r\n

Le commentaire suivant a été ajouté au ticket {{ ticket.ticket }}:

\r\n\r\n
{{ comment }}
\r\n\r\n

\"Si vous voulez nous fournir d'autres informations, merci de répondre à ce mail en conservant le sujet tel-quel. Vous pouvez également voir et mettre à jour ce ticket en ligne à l'adresse {{ ticket.ticket_url }}.

", + "html" : "

Bonjour,

\r\n\r\n

Vous avez récemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }} . Ce message vous informe d'une mise à jour du ticket.

\r\n\r\n

Le commentaire suivant a été ajouté au ticket {{ ticket.ticket }}:

\r\n\r\n
{{ comment }}
\r\n\r\n

Si vous voulez nous fournir d'autres informations, merci de répondre à ce mail en conservant le sujet tel-quel. Vous pouvez également voir et mettre à jour ce ticket en ligne à l'adresse {{ ticket.ticket_url }}.

", "plain_text" : "Bonjour,\r\n\r\nVous avez récemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\". Ce message vous informe d'une mise à jour du ticket.\r\n\r\nLe commentaire suivant a été ajouté au ticket {{ ticket.ticket }} :\r\n\r\n{{ comment }}\r\n\r\nSi vous voulez nous fournir d'autres informations, merci de répondre à ce mail en conservant le sujet tel-quel. Vous pouvez également voir et mettre à jour ce ticket en ligne à l'adresse {{ ticket.ticket_url }}", "locale" : "fr" }, From 8981282793e1357bc59559ceb6c3fbb3b5a17c23 Mon Sep 17 00:00:00 2001 From: bbe Date: Thu, 4 Jun 2020 17:09:38 +0200 Subject: [PATCH 02/19] Change the date format. Replace Unknown by Inconnu. Remove extra whitespace. Correct some french translations. Correct an error in the "closed_cc" template for every languages. --- helpdesk/fixtures/emailtemplate.json | 96 ++++++++++++++-------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/helpdesk/fixtures/emailtemplate.json b/helpdesk/fixtures/emailtemplate.json index e83fc665..c048795b 100644 --- a/helpdesk/fixtures/emailtemplate.json +++ b/helpdesk/fixtures/emailtemplate.json @@ -28,9 +28,9 @@ "heading" : "Ticket Closed", "subject" : "(Closed)", "template_name" : "closed_cc", - "html" : "

Hello,

\r\n\r\n

Ticket {{ ticket.title }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, assigned to {{ ticket.get_assigned_to }}{% endif %} has been closed.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nQueue: {{ queue.title }}
\r\nTitle: {{ ticket.title }}
\r\nOpened: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSubmitter: {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriority: {{ ticket.get_priority_display }}
\r\nStatus: {{ ticket.get_status }}
\r\nAssigned to: {{ ticket.get_assigned_to }}
\r\nView Online to update this ticket (login required)

\r\n\r\n

Just for reference, the original ticket description was:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

The resolution provided was:

\r\n\r\n
{{ resolution }}
\r\n\r\n

If you wish to view this ticket online, you can visit {{ ticket.staff_url }}.

", + "html" : "

Hello,

\r\n\r\n

Ticket {{ ticket.ticket }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, assigned to {{ ticket.get_assigned_to }}{% endif %} has been closed.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nQueue: {{ queue.title }}
\r\nTitle: {{ ticket.title }}
\r\nOpened: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSubmitter: {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriority: {{ ticket.get_priority_display }}
\r\nStatus: {{ ticket.get_status }}
\r\nAssigned to: {{ ticket.get_assigned_to }}
\r\nView Online to update this ticket (login required)

\r\n\r\n

Just for reference, the original ticket description was:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

The resolution provided was:

\r\n\r\n
{{ resolution }}
\r\n\r\n

If you wish to view this ticket online, you can visit {{ ticket.staff_url }}.

", "locale" : "en", - "plain_text" : "Hello,\r\n\r\nTicket {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, assigned to {{ ticket.assigned_to }}{% endif %} has been closed.\r\n\r\nTicket ID: {{ ticket.ticket }}\r\nQueue: {{ queue.title }}\r\nTitle: {{ ticket.title }}\r\nOpened: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSubmitter: {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriority: {{ ticket.get_priority_display }}\r\nStatus: {{ ticket.get_status }}\r\nAssigned to: {{ ticket.get_assigned_to }}\r\nView Online: {{ ticket.staff_url }} (login required)\r\n\r\nThe original description was:\r\n\r\n{{ ticket.description }}\r\n\r\nThe resolution provided was:\r\n\r\n{{ resolution }}\r\n\r\n" + "plain_text" : "Hello,\r\n\r\nTicket {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, assigned to {{ ticket.assigned_to }}{% endif %} has been closed.\r\n\r\nTicket ID: {{ ticket.ticket }}\r\nQueue: {{ queue.title }}\r\nTitle: {{ ticket.title }}\r\nOpened: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSubmitter: {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriority: {{ ticket.get_priority_display }}\r\nStatus: {{ ticket.get_status }}\r\nAssigned to: {{ ticket.get_assigned_to }}\r\nView Online: {{ ticket.staff_url }} (login required)\r\n\r\nThe original description was:\r\n\r\n{{ ticket.description }}\r\n\r\nThe resolution provided was:\r\n\r\n{{ resolution }}\r\n\r\n" }, "pk" : 3, "model" : "helpdesk.emailtemplate" @@ -222,7 +222,7 @@ "template_name" : "closed_cc", "subject" : " ", "html" : "

Здравствуйте,

\r\n\r\n

Заявка {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, присвоенная {{ ticket.get_assigned_to }}{% endif %} была закрыта.

\r\n\r\n

\r\nID заявки: {{ ticket.ticket }}
\r\nОчередь: {{ queue.title }}
\r\nЗаголовок: {{ ticket.title }}
\r\nСоздана: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nАвтор заявки: {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nПриоритет: {{ ticket.get_priority_display }}
\r\nСтатус: {{ ticket.get_status }}
\r\nПрисвоена: {{ ticket.get_assigned_to }}
\r\nПерейти к заявке to оставить комментарий (требуется авторизация)

\r\n\r\n

Изначальное описание:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Было принято следующее решение:

\r\n\r\n
{{ resolution }}
\r\n\r\n

Перейти к заявке {{ ticket.staff_url }}.

", - "plain_text" : "Здравствуйте,\r\n\r\nЗаявка {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, присвоенная {{ ticket.assigned_to }}{% endif %} была закрыта.\r\n\r\nID заявки: {{ ticket.ticket }}\r\nОчередь: {{ queue.title }}\r\nЗаголовок: {{ ticket.title }}\r\nСоздана: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nАвтор заявки: {{ ticket.submitter_email|default:\"Unknown\" }}\r\nПриоритет: {{ ticket.get_priority_display }}\r\nСтатус: {{ ticket.get_status }}\r\nПрисвоена: {{ ticket.get_assigned_to }}\r\nПерейти к заявке: {{ ticket.staff_url }} (требуется авторизация)\r\n\r\nИзначальное описание:\r\n\r\n{{ ticket.description }}\r\n\r\nБыло предложено следующее решение:\r\n\r\n{{ resolution }}", + "plain_text" : "Здравствуйте,\r\n\r\nЗаявка {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, присвоенная {{ ticket.assigned_to }}{% endif %} была закрыта.\r\n\r\nID заявки: {{ ticket.ticket }}\r\nОчередь: {{ queue.title }}\r\nЗаголовок: {{ ticket.title }}\r\nСоздана: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nАвтор заявки: {{ ticket.submitter_email|default:\"Unknown\" }}\r\nПриоритет: {{ ticket.get_priority_display }}\r\nСтатус: {{ ticket.get_status }}\r\nПрисвоена: {{ ticket.get_assigned_to }}\r\nПерейти к заявке: {{ ticket.staff_url }} (требуется авторизация)\r\n\r\nИзначальное описание:\r\n\r\n{{ ticket.description }}\r\n\r\nБыло предложено следующее решение:\r\n\r\n{{ resolution }}", "locale" : "ru" }, "pk" : 19 @@ -413,9 +413,9 @@ "template_name" : "closed_cc", "heading" : "Ticket geschlossen", "subject" : "(Geschlossen)", - "html" : "

Hallo,

\r\n\r\n

Ticket {{ ticket.title }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, zugewiesen an {{ ticket.get_assigned_to }}{% endif %} wurde geschlossen.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nTicketsammlung: {{ queue.title }}
\r\nTitel: {{ ticket.title }}
\r\nEröffnet: {{ ticket.created|date:\"l, j. N Y, \\u\\m H:i\" }}
\r\nErsteller: {{ ticket.submitter_email|default:\"Unbekannt\" }}
\r\nPriorität: {{ ticket.get_priority_display }}
\r\nStatus: {{ ticket.get_status }}
\r\nZugewiesen an: {{ ticket.get_assigned_to }}
\r\nOnline ansehen um dieses Ticket zu aktualisieren (Login erforderlich)

\r\n\r\n

Die ursprüngliche Ticketbeschreibung war:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Die Lösung war:

\r\n\r\n
{{ resolution }}
\r\n\r\n

Sie können dieses Ticket unter folgendem Link online ansehen: {{ ticket.staff_url }}.

", + "html" : "

Hallo,

\r\n\r\n

Ticket {{ ticket.ticket }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, zugewiesen an {{ ticket.get_assigned_to }}{% endif %} wurde geschlossen.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nTicketsammlung: {{ queue.title }}
\r\nTitel: {{ ticket.title }}
\r\nEröffnet: {{ ticket.created|date:\"l, j. N Y, \\u\\m H:i\" }}
\r\nErsteller: {{ ticket.submitter_email|default:\"Unbekannt\" }}
\r\nPriorität: {{ ticket.get_priority_display }}
\r\nStatus: {{ ticket.get_status }}
\r\nZugewiesen an: {{ ticket.get_assigned_to }}
\r\nOnline ansehen um dieses Ticket zu aktualisieren (Login erforderlich)

\r\n\r\n

Die ursprüngliche Ticketbeschreibung war:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Die Lösung war:

\r\n\r\n
{{ resolution }}
\r\n\r\n

Sie können dieses Ticket unter folgendem Link online ansehen: {{ ticket.staff_url }}.

", "locale" : "de", - "plain_text" : "Hallo,\r\n\r\nTicket {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, zugewiesen an {{ ticket.assigned_to }}{% endif %} wurde geschlossen.\r\n\r\nTicket ID: {{ ticket.ticket }}\r\nTicketsammlung: {{ queue.title }}\r\nTitel: {{ ticket.title }}\r\nEröffnet: {{ ticket.created|date:\"l, j. N Y, \\u\\m H:i\" }}\r\nErsteller: {{ ticket.submitter_email|default:\"Unbekannt\" }}\r\nPriorität: {{ ticket.get_priority_display }}\r\nStatus: {{ ticket.get_status }}\r\nZugewiesen an: {{ ticket.get_assigned_to }}\r\nOnline ansehen: {{ ticket.staff_url }} (Login erforderlich)\r\n\r\nDie ursprüngliche Ticketbeschreibung war:\r\n\r\n{{ ticket.description }}\r\n\r\nDie Lösung war:\r\n\r\n{{ resolution }}\r\n\r\n" + "plain_text" : "Hallo,\r\n\r\nTicket {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, zugewiesen an {{ ticket.assigned_to }}{% endif %} wurde geschlossen.\r\n\r\nTicket ID: {{ ticket.ticket }}\r\nTicketsammlung: {{ queue.title }}\r\nTitel: {{ ticket.title }}\r\nEröffnet: {{ ticket.created|date:\"l, j. N Y, \\u\\m H:i\" }}\r\nErsteller: {{ ticket.submitter_email|default:\"Unbekannt\" }}\r\nPriorität: {{ ticket.get_priority_display }}\r\nStatus: {{ ticket.get_status }}\r\nZugewiesen an: {{ ticket.get_assigned_to }}\r\nOnline ansehen: {{ ticket.staff_url }} (Login erforderlich)\r\n\r\nDie ursprüngliche Ticketbeschreibung war:\r\n\r\n{{ ticket.description }}\r\n\r\nDie Lösung war:\r\n\r\n{{ resolution }}\r\n\r\n" }, "pk" : 35 }, @@ -579,11 +579,11 @@ "model" : "helpdesk.emailtemplate", "fields" : { "locale" : "fr", - "plain_text" : "Bonjour,\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} {% if ticket.assigned_to %} a été assigné à {{ ticket.assigned_to }}{% else %} n'est plus assigné à personne{% endif %}.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n\r\n", + "plain_text" : "Bonjour,\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} {% if ticket.assigned_to %}a été assigné à {{ ticket.assigned_to }}{% else %}n'est plus assigné à personne{% endif %}.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n\r\n", "heading" : "Ticket Assigné", "subject" : "(Assigné)", "template_name" : "assigned_cc", - "html" : "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} ({{ ticket.title }}) par {{ ticket.submitter_email }} {% if ticket.assigned_to %}a été assigné à {{ ticket.assigned_to }}{% else %} n'est plus assigné à personne{% endif %}.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
" + "html" : "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} ({{ ticket.title }}) par {{ ticket.submitter_email }} {% if ticket.assigned_to %}a été assigné à {{ ticket.assigned_to }}{% else %} n'est plus assigné à personne{% endif %}.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
" }, "pk" : 49 }, @@ -591,22 +591,22 @@ "pk" : 50, "fields" : { "locale" : "fr", - "plain_text" : "Bonjour,\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") pour {{ ticket.submitter_email }} vous a été assigné.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}", + "plain_text" : "Bonjour,\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") pour {{ ticket.submitter_email }} vous a été assigné.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}", "template_name" : "assigned_owner", "heading" : "Le ticket vous est assigné", "subject" : "(Pour vous)", - "html" : "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} ({{ ticket.title }}) pour {{ ticket.submitter_email }} vous a été assigné.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
" + "html" : "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} ({{ ticket.title }}) pour {{ ticket.submitter_email }} vous a été assigné.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
" }, "model" : "helpdesk.emailtemplate" }, { "pk" : 51, "fields" : { - "html" : "

Bonjour,

\r\n\r\n

Le ticket {{ ticket.title }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, assigné à {{ ticket.get_assigned_to }}{% endif %} a été fermé.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n

La motivation de résolution est:

\r\n\r\n
{{ resolution }}
", + "html" : "

Bonjour,

\r\n\r\n

Le ticket {{ ticket.ticket }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, assigné à {{ ticket.get_assigned_to }}{% endif %} a été fermé.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n

La résolution est :

\r\n\r\n
{{ resolution }}
", "heading" : "Ticket Fermé", "subject" : "(Fermé)", "template_name" : "closed_cc", - "plain_text" : "Bonjour,\r\n\r\nLe ticket {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, assigné à {{ ticket.assigned_to }}{% endif %} a été fermé.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n\r\nLa motivation de résolution est:\r\n\r\n{{ resolution }}\r\n\r\n", + "plain_text" : "Bonjour,\r\n\r\nLe ticket {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, assigné à {{ ticket.assigned_to }}{% endif %} a été fermé.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n\r\nLa résolution est :\r\n\r\n{{ resolution }}\r\n\r\n", "locale" : "fr" }, "model" : "helpdesk.emailtemplate" @@ -615,12 +615,12 @@ "model" : "helpdesk.emailtemplate", "pk" : 52, "fields" : { - "plain_text" : "Bonjour,\r\n\r\nLe ticket suivant qui vous est actuellement assigné a été fermé.\r\n\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }} (authentification obligatoire)\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n\r\nLa motivation de résolution est:\r\n\r\n{{ resolution }}", + "plain_text" : "Bonjour,\r\n\r\nLe ticket suivant qui vous est actuellement assigné a été fermé.\r\n\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }} (authentification obligatoire)\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n\r\nLa résolution est :\r\n\r\n{{ resolution }}", "locale" : "fr", "subject" : "(Fermé - à vous)", "heading" : "Ticket Fermé", "template_name" : "closed_owner", - "html" : "

Bonjour,

\r\n\r\n

\r\nLe ticket suivant qui vous est actuellement assigné a été fermé.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n

La motivation de résolution est:

\r\n\r\n
{{ resolution }}
\r\n" + "html" : "

Bonjour,

\r\n\r\n

\r\nLe ticket suivant qui vous est actuellement assigné a été fermé.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n

La résolution est :

\r\n\r\n
{{ resolution }}
\r\n" } }, { @@ -639,22 +639,22 @@ "model" : "helpdesk.emailtemplate", "pk" : 54, "fields" : { - "html" : "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} ('{{ ticket.title }}') a vu sa priorité augmenté de manière automatique.

\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
", + "html" : "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} ('{{ ticket.title }}') a vu sa priorité augmenté de manière automatique.

\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
", "heading" : "Priorité du ticket augmentée", "subject" : "(Priorité augmentée)", "template_name" : "escalated_cc", "locale" : "fr", - "plain_text" : "Bonjour,\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") a vu sa priorité augmenté de manière automatique.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n" + "plain_text" : "Bonjour,\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") a vu sa priorité augmenté de manière automatique.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n" } }, { "fields" : { - "plain_text" : "Bonjour,\r\n\r\n\r\nVous avez récemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\". Ce courriel vous informe que ce ticket a vu sa priorité augmenté de manière automatique, vu son délai de résolution plus long que prévu.\r\n\r\nNous allons reprendre rapidement ce ticket afin d'essayer de le résoudre le plus vite possible.\r\n\r\nVous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse {{ ticket.ticket_url }}.\r\n\r\n", + "plain_text" : "Bonjour,\r\n\r\n\r\nVous avez récemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\". Ce courriel vous informe que ce ticket a vu sa priorité augmenté de manière automatique, vu son délai de résolution plus long que prévu.\r\n\r\nNous allons reprendre rapidement ce ticket afin d'essayer de le résoudre le plus vite possible.\r\n\r\nVous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse {{ ticket.ticket_url }}.\r\n\r\n", "locale" : "fr", "heading" : "Votre ticket a vu sa priorité augmentée", "subject" : "(Priorité augmentée)", "template_name" : "escalated_submitter", - "html" : "

Bonjour,

\r\n\r\n

Vous avez récemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }} . Ce courriel vous informe que ce ticket a vu sa priorité augmenté de manière automatique, vu son délai de résolution plus long que prévu.

\r\n\r\n

Nous allons reprendre rapidement ce ticket afin d'essayer de le résoudre le plus vite possible.

\r\n\r\n

Vous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse {{ ticket.ticket_url }}.

" + "html" : "

Bonjour,

\r\n\r\n

Vous avez récemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }} . Ce courriel vous informe que ce ticket a vu sa priorité augmenté de manière automatique, vu son délai de résolution plus long que prévu.

\r\n\r\n

Nous allons reprendre rapidement ce ticket afin d'essayer de le résoudre le plus vite possible.

\r\n\r\n

Vous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse {{ ticket.ticket_url }}.

" }, "pk" : 55, "model" : "helpdesk.emailtemplate" @@ -665,20 +665,20 @@ "template_name" : "escalated_owner", "heading" : "Priorité de votre ticket augmentée", "subject" : "(Priorité augmentée - à vous)", - "html" : "

Bonjour,

\r\n\r\n

Un ticket qui vous est assigné a vu sa priorité augmenté vu son délai de résolution plus long que prévu.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Merci de reprendre ce ticket afin d'essayer de le résoudre le plus vite possible..

", + "html" : "

Bonjour,

\r\n\r\n

Un ticket qui vous est assigné a vu sa priorité augmenté vu son délai de résolution plus long que prévu.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Merci de reprendre ce ticket afin d'essayer de le résoudre le plus vite possible..

", "locale" : "fr", - "plain_text" : "Bonjour,\r\n\r\nUn ticket qui vous est assigné a vu sa priorité augmenté vu son délai de résolution plus long que prévu.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n\r\nMerci de reprendre ce ticket afin d'essayer de le résoudre le plus vite possible.\r\n" + "plain_text" : "Bonjour,\r\n\r\nUn ticket qui vous est assigné a vu sa priorité augmenté vu son délai de résolution plus long que prévu.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n\r\nMerci de reprendre ce ticket afin d'essayer de le résoudre le plus vite possible.\r\n" }, "model" : "helpdesk.emailtemplate" }, { "fields" : { - "html" : "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous prévenir qu'un nouveau ticket a été ouvert.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Description :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
", + "html" : "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous prévenir qu'un nouveau ticket a été ouvert.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Description :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
", "heading" : "Nouveau ticket ouvert", "subject" : "(Ouvert)", "template_name" : "newticket_cc", "locale" : "fr", - "plain_text" : "Bonjour,\r\n\r\nCe courriel indicatif permet de vous prévenir qu'un nouveau ticket a été ouvert.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nDescription :\r\n{{ ticket.description }}\r\n\r\n" + "plain_text" : "Bonjour,\r\n\r\nCe courriel indicatif permet de vous prévenir qu'un nouveau ticket a été ouvert.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nDescription :\r\n{{ ticket.description }}\r\n\r\n" }, "pk" : 57, "model" : "helpdesk.emailtemplate" @@ -686,11 +686,11 @@ { "model" : "helpdesk.emailtemplate", "fields" : { - "html" : "

Bonjour,

\r\n\r\n

Ce courriel permet de vous informer que nous avons reçu votre demande de support dont le sujet est {{ ticket.title }}.

\r\n\r\n

Vous n'avez rien de plus à faire pour le moment. Votre ticket porte l'identifiant {{ ticket.ticket }} et sera traité rapidement.

\r\n\r\n

Si vous voulez nous donner plus de détails ou si vous avez une question concernant ce ticket, merci d'inclure la référence {{ ticket.ticket }} dans le sujet du message. Le plus simple étant d'utiliser la fonction 'répondre' de votre logiciel de messagerie.

\r\n\r\n

Vous pouvez visualiser ce ticket en ligne et y ajouter des informations ou des pièces jointes ainsi que voir les dernières mies à jour en vous rendant à l'adresse {{ ticket.ticket_url }}.

\r\n\r\n

Nous allons traiter votre demande afin, si possible, de la résoudre au plus vite. Vous recevrez des mise à jour ou la réponse au ticket à cette adresse mail.

", + "html" : "

Bonjour,

\r\n\r\n

Ce courriel permet de vous informer que nous avons reçu votre demande de support dont le sujet est {{ ticket.title }}.

\r\n\r\n

Vous n'avez rien de plus à faire pour le moment. Votre ticket porte l'identifiant {{ ticket.ticket }} et sera traité rapidement.

\r\n\r\n

Si vous voulez nous donner plus de détails ou si vous avez une question concernant ce ticket, merci d'inclure la référence {{ ticket.ticket }} dans le sujet du message. Le plus simple étant d'utiliser la fonction 'répondre' de votre logiciel de messagerie.

\r\n\r\n

Vous pouvez visualiser ce ticket en ligne et y ajouter des informations ou des pièces jointes ainsi que voir les dernières mises à jour en vous rendant à l'adresse {{ ticket.ticket_url }}.

\r\n\r\n

Nous allons traiter votre demande afin, si possible, de la résoudre au plus vite. Vous recevrez des mises à jour ou la réponse au ticket à cette adresse mail.

", "heading" : "Votre ticket est désormais ouvert", "subject" : "(Ouvert)", "template_name" : "newticket_submitter", - "plain_text" : "Bonjour,\r\n\r\nCe courriel permet de vous informer que nous avons reçu votre demande de support dont le sujet est \"{{ ticket.title }}\".\r\n\r\nVous n'avez rien de plus à faire pour le moment. Votre ticket porte l'identifiant {{ ticket.ticket }} et sera traité rapidement.\r\n\r\nSi vous voulez nous donner plus de détails ou si vous avez une question concernant ce ticket, merci d'inclure la référence '{{ ticket.ticket }}' dans le sujet du message. Le plus simple étant d'utiliser la fonction 'répondre' de votre logiciel de messagerie.\r\n\r\nVous pouvez visualiser ce ticket en ligne et y ajouter des informations ou des pièces jointes ainsi que voir les dernières mies à jour en vous rendant à l'adresse {{ ticket.ticket_url }}.\r\n\r\nNous allons traiter votre demande afin, si possible, de la résoudre au plus vite. Vous recevrez des mise à jour ou la réponse au ticket à cette adresse mail.", + "plain_text" : "Bonjour,\r\n\r\nCe courriel permet de vous informer que nous avons reçu votre demande de support dont le sujet est \"{{ ticket.title }}\".\r\n\r\nVous n'avez rien de plus à faire pour le moment. Votre ticket porte l'identifiant {{ ticket.ticket }} et sera traité rapidement.\r\n\r\nSi vous voulez nous donner plus de détails ou si vous avez une question concernant ce ticket, merci d'inclure la référence '{{ ticket.ticket }}' dans le sujet du message. Le plus simple étant d'utiliser la fonction 'répondre' de votre logiciel de messagerie.\r\n\r\nVous pouvez visualiser ce ticket en ligne et y ajouter des informations ou des pièces jointes ainsi que voir les dernières mises à jour en vous rendant à l'adresse {{ ticket.ticket_url }}.\r\n\r\nNous allons traiter votre demande afin, si possible, de la résoudre au plus vite. Vous recevrez des mises à jour ou la réponse au ticket à cette adresse mail.", "locale" : "fr" }, "pk" : 58 @@ -702,9 +702,9 @@ "template_name" : "resolved_cc", "heading" : "Ticket résolu", "subject" : "(Résolu)", - "html" : "

Bonjour,

\r\n\r\n

Le ticket suivant a été résolu.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n

La motivation de résolution est:

\r\n\r\n
{{ resolution }}
\r\n\r\n

\r\nCette information a été envoyé au créateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.

", + "html" : "

Bonjour,

\r\n\r\n

Le ticket suivant a été résolu.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n

La résolution est :

\r\n\r\n
{{ resolution }}
\r\n\r\n

\r\nCette information a été envoyée au créateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.

", "locale" : "fr", - "plain_text" : "Bonjour,\r\n\r\nLe ticket suivant a été résolu.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n\r\nLa motivation de résolution est:\r\n\r\n{{ resolution }}\r\n\r\nCette information a été envoyé au créateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.\r\n\r\n" + "plain_text" : "Bonjour,\r\n\r\nLe ticket suivant a été résolu.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n\r\nLa résolution est :\r\n\r\n{{ resolution }}\r\n\r\nCette information a été envoyée au créateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.\r\n\r\n" } }, { @@ -714,8 +714,8 @@ "subject" : "(Résolu - à vous)", "heading" : "Ticket résolu", "template_name" : "resolved_owner", - "html" : "

Bonjour,

\r\n\r\n

Un ticket qui vous est assigné a été résolu.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n

La motivation de résolution est:

\r\n\r\n
{{ resolution }}
\r\n\r\n

\r\nCette information a été envoyé au créateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.

", - "plain_text" : "Bonjour,\r\n\r\nUn ticket qui vous est assigné a été résolu.\r\n\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n\r\nLa motivation de résolution est:\r\n\r\n{{ resolution }}\r\n\r\nCette information a été envoyé au créateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.\r\n\r\n", + "html" : "

Bonjour,

\r\n\r\n

Un ticket qui vous est assigné a été résolu.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n

La résolution est :

\r\n\r\n
{{ resolution }}
\r\n\r\n

\r\nCette information a été envoyée au créateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.

", + "plain_text" : "Bonjour,\r\n\r\nUn ticket qui vous est assigné a été résolu.\r\n\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle était :\r\n\r\n{{ ticket.description }}\r\n\r\nLa résolution est :\r\n\r\n{{ resolution }}\r\n\r\nCette information a été envoyée au créateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.\r\n\r\n", "locale" : "fr" } }, @@ -723,23 +723,23 @@ "model" : "helpdesk.emailtemplate", "pk" : 61, "fields" : { - "html" : "

Bonjour,

\r\n\r\n

Vous avez récemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }}. Ce message vous informe d'une résolution de la demande.

\r\n\r\n

La solution suivante a été donnée au ticket {{ ticket.ticket }}:

\r\n\r\n
{{ resolution }}
\r\n\r\n

Merci de confirmer que cette solution vous convient afin que nous puissions clore le ticket. Si vous avez d'autre demandes, où si vous pensez que cette solution n'est pas adaptée, merci de répondre à ce mail en conservant le sujet tel-quel.

\r\n\r\n

Vous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse {{ ticket.ticket_url }}.

", + "html" : "

Bonjour,

\r\n\r\n

Vous avez récemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }}. Ce message vous informe d'une résolution de la demande.

\r\n\r\n

La solution suivante a été donnée au ticket {{ ticket.ticket }}:

\r\n\r\n
{{ resolution }}
\r\n\r\n

Merci de confirmer que cette solution vous convient afin que nous puissions clore le ticket. Si vous avez d'autre demandes, ou si vous pensez que cette solution n'est pas adaptée, merci de répondre à ce mail en conservant le sujet tel-quel.

\r\n\r\n

Vous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse {{ ticket.ticket_url }}.

", "heading" : "Votre ticket a été résolu", "template_name" : "resolved_submitter", "subject" : "(Résolu)", - "plain_text" : "Bonjour,\r\n\r\nVous avez récemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\" . Ce message vous informe d'une résolution de la demande.\r\n\r\nLa solution suivante a été donnée au ticket {{ ticket.ticket }}:\r\n\r\n{{ resolution }}\r\n\r\nMerci de confirmer que cette solution vous convient afin que nous puissions clore le ticket. Si vous avez d'autre demandes, où si vous pensez que cette solution n'est pas adaptée, merci de répondre à ce mail en conservant le sujet tel-quel.\r\n\r\nVous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse {{ ticket.ticket_url }}.\r\n\r\n", + "plain_text" : "Bonjour,\r\n\r\nVous avez récemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\". Ce message vous informe d'une résolution de la demande.\r\n\r\nLa solution suivante a été donnée au ticket {{ ticket.ticket }}:\r\n\r\n{{ resolution }}\r\n\r\nMerci de confirmer que cette solution vous convient afin que nous puissions clore le ticket. Si vous avez d'autre demandes, ou si vous pensez que cette solution n'est pas adaptée, merci de répondre à ce mail en conservant le sujet tel-quel.\r\n\r\nVous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse {{ ticket.ticket_url }}.\r\n\r\n", "locale" : "fr" } }, { "model" : "helpdesk.emailtemplate", "fields" : { - "plain_text" : "Bonjour,\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} a été mis à jour.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nDescription originelle :\r\n\r\n{{ ticket.description }}\r\n\r\nLe commentaire suivant a été ajouté :\r\n\r\n{{ comment }}\r\n\r\nCette information {% if private %} n' a pas {% else %} a {% endif %} été envoyé par mail à l'émetteur.\r\n\r\n", + "plain_text" : "Bonjour,\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} a été mis à jour.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nDescription originelle :\r\n\r\n{{ ticket.description }}\r\n\r\nLe commentaire suivant a été ajouté :\r\n\r\n{{ comment }}\r\n\r\nCette information {% if private %}n' a pas{% else %}a{% endif %} été envoyé par mail à l'émetteur.\r\n\r\n", "locale" : "fr", "heading" : "Ticket mis à jour", "subject" : "(Mis à jour)", "template_name" : "updated_cc", - "html" : "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} a été mis à jour.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Le commentaire suivant a été ajouté :

\r\n\r\n
{{ comment }}
\r\n\r\n

Cette information {% if private %} n' a pas {% else %} a {% endif %} été envoyé par mail à l'émetteur.

" + "html" : "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} a été mis à jour.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Le commentaire suivant a été ajouté :

\r\n\r\n
{{ comment }}
\r\n\r\n

Cette information{% if private %}n' a pas{% else %}a{% endif %}été envoyé par mail à l'émetteur.

" }, "pk" : 62 }, @@ -750,8 +750,8 @@ "heading" : "Ticket mis à jour", "template_name" : "updated_owner", "subject" : "(Mis à jour - à vous)", - "html" : "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }}, qui vous est assigné, a été mis à jour.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Le commentaire suivant a été ajouté :

\r\n\r\n
{{ comment }}
\r\n\r\n

Cette information {% if private %} n' a pas {% else %} a {% endif %} été envoyé par mail à l'émetteur.

", - "plain_text" : "Hello,\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }}, qui vous est assigné, a été mis à jour.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nDescription originelle :\r\n\r\n{{ ticket.description }}\r\n\r\nLe commentaire suivant a été ajouté :\r\n\r\n{{ comment }}\r\n\r\nCette information {% if private %} n' a pas {% else %} a {% endif %} été envoyé par mail à l'émetteur.\r\n\r\n", + "html" : "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }}, qui vous est assigné, a été mis à jour.

\r\n\r\n

\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)

\r\n\r\n

Pour mémoire, la description originelle était :

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Le commentaire suivant a été ajouté :

\r\n\r\n
{{ comment }}
\r\n\r\n

Cette information{% if private %}n' a pas{% else %}a{% endif %}été envoyé par mail à l'émetteur.

", + "plain_text" : "Hello,\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }}, qui vous est assigné, a été mis à jour.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nDescription originelle :\r\n\r\n{{ ticket.description }}\r\n\r\nLe commentaire suivant a été ajouté :\r\n\r\n{{ comment }}\r\n\r\nCette information{% if private %}n' a pas{% else %}a{% endif %}été envoyé par mail à l'émetteur.\r\n\r\n", "locale" : "fr" } }, @@ -761,7 +761,7 @@ "template_name" : "updated_submitter", "subject" : "(Mis à jour)", "html" : "

Bonjour,

\r\n\r\n

Vous avez récemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }} . Ce message vous informe d'une mise à jour du ticket.

\r\n\r\n

Le commentaire suivant a été ajouté au ticket {{ ticket.ticket }}:

\r\n\r\n
{{ comment }}
\r\n\r\n

Si vous voulez nous fournir d'autres informations, merci de répondre à ce mail en conservant le sujet tel-quel. Vous pouvez également voir et mettre à jour ce ticket en ligne à l'adresse {{ ticket.ticket_url }}.

", - "plain_text" : "Bonjour,\r\n\r\nVous avez récemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\". Ce message vous informe d'une mise à jour du ticket.\r\n\r\nLe commentaire suivant a été ajouté au ticket {{ ticket.ticket }} :\r\n\r\n{{ comment }}\r\n\r\nSi vous voulez nous fournir d'autres informations, merci de répondre à ce mail en conservant le sujet tel-quel. Vous pouvez également voir et mettre à jour ce ticket en ligne à l'adresse {{ ticket.ticket_url }}", + "plain_text" : "Bonjour,\r\n\r\nVous avez récemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\". Ce message vous informe d'une mise à jour du ticket.\r\n\r\nLe commentaire suivant a été ajouté au ticket {{ ticket.ticket }} :\r\n\r\n{{ comment }}\r\n\r\nSi vous voulez nous fournir d'autres informations, merci de répondre à ce mail en conservant le sujet tel-quel. Vous pouvez également voir et mettre à jour ce ticket en ligne à l'adresse {{ ticket.ticket_url }}.", "locale" : "fr" }, "pk" : 64, @@ -793,11 +793,11 @@ }, { "fields" : { - "html" : "

Salve,

\r\n\r\n

Il ticket {{ ticket.title }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, assegnato a {{ ticket.get_assigned_to }}{% endif %} è stato chiuso.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nCoda: {{ queue.title }}
\r\nTitolo: {{ ticket.title }}
\r\nAperto: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nInserito da: {{ ticket.submitter_email|default:\"Sconosciuto\" }}
\r\nPriorità: {{ ticket.get_priority_display }}
\r\nStato: {{ ticket.get_status }}
\r\nAssegnato a: {{ ticket.get_assigned_to }}
\r\nVedi Online per aggiornare questo ticket (richiede login)

\r\n\r\n

La descrizione del ticket è:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

La soluzione fornita è:

\r\n\r\n
{{ resolution }}
\r\n\r\n

Se vuoi vedere questo ticket online, puoi visitare l'indirizzo {{ ticket.staff_url }}.

", + "html" : "

Salve,

\r\n\r\n

Il ticket {{ ticket.ticket }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, assegnato a {{ ticket.get_assigned_to }}{% endif %} è stato chiuso.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nCoda: {{ queue.title }}
\r\nTitolo: {{ ticket.title }}
\r\nAperto: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nInserito da: {{ ticket.submitter_email|default:\"Sconosciuto\" }}
\r\nPriorità: {{ ticket.get_priority_display }}
\r\nStato: {{ ticket.get_status }}
\r\nAssegnato a: {{ ticket.get_assigned_to }}
\r\nVedi Online per aggiornare questo ticket (richiede login)

\r\n\r\n

La descrizione del ticket è:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

La soluzione fornita è:

\r\n\r\n
{{ resolution }}
\r\n\r\n

Se vuoi vedere questo ticket online, puoi visitare l'indirizzo {{ ticket.staff_url }}.

", "heading" : "Ticket Chiuso", "subject" : "(Closed)", "template_name" : "closed_cc", - "plain_text" : "Salve,\r\n\r\nIl ticket {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, assegnato a {{ ticket.assigned_to }}{% endif %} è stato chiuso.\r\n\r\nID Ticket: {{ ticket.ticket }}\r\nCoda: {{ queue.title }}\r\nTitolo: {{ ticket.title }}\r\nAperto: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nInserito da: {{ ticket.submitter_email|default:\"Sconosciuto\" }}\r\nPriorità: {{ ticket.get_priority_display }}\r\nStato: {{ ticket.get_status }}\r\nAssegnato a: {{ ticket.get_assigned_to }}\r\nVedi Online: {{ ticket.staff_url }} (richiede login)\r\n\r\nLa descrizione del ticket è:\r\n\r\n{{ ticket.description }}\r\n\r\nLa soluzione fornita è:\r\n\r\n{{ resolution }}", + "plain_text" : "Salve,\r\n\r\nIl ticket {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, assegnato a {{ ticket.assigned_to }}{% endif %} è stato chiuso.\r\n\r\nID Ticket: {{ ticket.ticket }}\r\nCoda: {{ queue.title }}\r\nTitolo: {{ ticket.title }}\r\nAperto: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nInserito da: {{ ticket.submitter_email|default:\"Sconosciuto\" }}\r\nPriorità: {{ ticket.get_priority_display }}\r\nStato: {{ ticket.get_status }}\r\nAssegnato a: {{ ticket.get_assigned_to }}\r\nVedi Online: {{ ticket.staff_url }} (richiede login)\r\n\r\nLa descrizione del ticket è:\r\n\r\n{{ ticket.description }}\r\n\r\nLa soluzione fornita è:\r\n\r\n{{ resolution }}", "locale" : "it" }, "pk" : 67, @@ -989,9 +989,9 @@ "heading" : "Ticket cerrado", "template_name" : "closed_cc", "subject" : "(Cerrado)", - "html" : "

Hola,

\r\n\r\n

El Ticket {{ ticket.title }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, asignado a {{ ticket.get_assigned_to }}{% endif %} ha sido cerrado.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nCola: {{ queue.title }}
\r\nTítulo: {{ ticket.title }}
\r\nCreado: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nRemitente: {{ ticket.submitter_email|default:\"Desconocido\" }}
\r\nPrioridad: {{ ticket.get_priority_display }}
\r\nEstado: {{ ticket.get_status }}
\r\nAsignado a: {{ ticket.get_assigned_to }}
\r\nVer online para actualizar este Ticket (login requerido)

\r\n\r\n

La descripción original es:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

La solución dada fue:

\r\n\r\n
{{ resolution }}
\r\n\r\n

Para ver este Ticket online, por favor visite {{ ticket.staff_url }}.

", + "html" : "

Hola,

\r\n\r\n

El Ticket {{ ticket.ticket }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, asignado a {{ ticket.get_assigned_to }}{% endif %} ha sido cerrado.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nCola: {{ queue.title }}
\r\nTítulo: {{ ticket.title }}
\r\nCreado: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nRemitente: {{ ticket.submitter_email|default:\"Desconocido\" }}
\r\nPrioridad: {{ ticket.get_priority_display }}
\r\nEstado: {{ ticket.get_status }}
\r\nAsignado a: {{ ticket.get_assigned_to }}
\r\nVer online para actualizar este Ticket (login requerido)

\r\n\r\n

La descripción original es:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

La solución dada fue:

\r\n\r\n
{{ resolution }}
\r\n\r\n

Para ver este Ticket online, por favor visite {{ ticket.staff_url }}.

", "locale" : "es", - "plain_text" : "Hola,\r\n\r\nEl Ticket {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, asignado a {{ ticket.assigned_to }}{% endif %} ha sido cerrado.\r\n\r\nTicket ID: {{ ticket.ticket }}\r\nCola: {{ queue.title }}\r\nTítulo: {{ ticket.title }}\r\nCreado: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nRemitente: {{ ticket.submitter_email|default:\"Desconocido\" }}\r\nPrioridad: {{ ticket.get_priority_display }}\r\nEstado: {{ ticket.get_status }}\r\nAsignado a: {{ ticket.get_assigned_to }}\r\nVer online: {{ ticket.staff_url }} (login requerido)\r\n\r\nLa descripción original es:\r\n\r\n{{ ticket.description }}\r\n\r\nLa solución dada fue:\r\n\r\n{{ resolution }}\r\n\r\n" + "plain_text" : "Hola,\r\n\r\nEl Ticket {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, asignado a {{ ticket.assigned_to }}{% endif %} ha sido cerrado.\r\n\r\nTicket ID: {{ ticket.ticket }}\r\nCola: {{ queue.title }}\r\nTítulo: {{ ticket.title }}\r\nCreado: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nRemitente: {{ ticket.submitter_email|default:\"Desconocido\" }}\r\nPrioridad: {{ ticket.get_priority_display }}\r\nEstado: {{ ticket.get_status }}\r\nAsignado a: {{ ticket.get_assigned_to }}\r\nVer online: {{ ticket.staff_url }} (login requerido)\r\n\r\nLa descripción original es:\r\n\r\n{{ ticket.description }}\r\n\r\nLa solución dada fue:\r\n\r\n{{ resolution }}\r\n\r\n" }, "pk" : 83 }, @@ -1178,9 +1178,9 @@ { "model" : "helpdesk.emailtemplate", "fields" : { - "plain_text" : "您好,\r\n\r\n工单 {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, 分配给 {{ ticket.assigned_to }}{% endif %} 已经 关闭\r\n\r\n工单 ID: {{ ticket.ticket }}\r\n待办: {{ queue.title }}\r\n标题: {{ ticket.title }}\r\n已打开: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\n提交人: {{ ticket.submitter_email|default:\"Unknown\" }}\r\n优先级:{{ ticket.get_priority_display }}\r\n状态: {{ ticket.get_status }}\r\n已分配给: {{ ticket.get_assigned_to }}\r\n在线查看: {{ ticket.staff_url }} (需要登录)\r\n\r\n原始描述为:\r\n\r\n{{ ticket.description }}\r\n\r\n提供的解决方案为:\r\n\r\n{{ resolution }}\r\n\r\n", + "plain_text" : "您好,\r\n\r\n工单 {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, 分配给 {{ ticket.assigned_to }}{% endif %} 已经 关闭\r\n\r\n工单 ID: {{ ticket.ticket }}\r\n待办: {{ queue.title }}\r\n标题: {{ ticket.title }}\r\n已打开: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\n提交人: {{ ticket.submitter_email|default:\"Unknown\" }}\r\n优先级:{{ ticket.get_priority_display }}\r\n状态: {{ ticket.get_status }}\r\n已分配给: {{ ticket.get_assigned_to }}\r\n在线查看: {{ ticket.staff_url }} (需要登录)\r\n\r\n原始描述为:\r\n\r\n{{ ticket.description }}\r\n\r\n提供的解决方案为:\r\n\r\n{{ resolution }}\r\n\r\n", "locale" : "zh", - "html" : "

您好,

\r\n\r\n

工单 {{ ticket.title }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, 分配给 {{ ticket.get_assigned_to }}{% endif %} 已经 关闭

\r\n\r\n

\r\n工单 ID: {{ ticket.ticket }}
\r\n待办: {{ queue.title }}
\r\n标题: {{ ticket.title }}
\r\n已打开: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\n提交人: {{ ticket.submitter_email|default:\"Unknown\" }}
\r\n优先级: {{ ticket.get_priority_display }}
\r\n状态: {{ ticket.get_status }}
\r\n已分配给: {{ ticket.get_assigned_to }}
\r\n在线查看 更新此工单 (需要登录)

\r\n\r\n

原工单描述参考::

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

提供的解决方案为:

\r\n\r\n
{{ resolution }}
\r\n\r\n

如果您想在线查看, 可以访问 {{ ticket.staff_url }}.

", + "html" : "

您好,

\r\n\r\n

工单 {{ ticket.ticket }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, 分配给 {{ ticket.get_assigned_to }}{% endif %} 已经 关闭

\r\n\r\n

\r\n工单 ID: {{ ticket.ticket }}
\r\n待办: {{ queue.title }}
\r\n标题: {{ ticket.title }}
\r\n已打开: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\n提交人: {{ ticket.submitter_email|default:\"Unknown\" }}
\r\n优先级: {{ ticket.get_priority_display }}
\r\n状态: {{ ticket.get_status }}
\r\n已分配给: {{ ticket.get_assigned_to }}
\r\n在线查看 更新此工单 (需要登录)

\r\n\r\n

原工单描述参考::

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

提供的解决方案为:

\r\n\r\n
{{ resolution }}
\r\n\r\n

如果您想在线查看, 可以访问 {{ ticket.staff_url }}.

", "template_name" : "closed_cc", "heading" : "工单已关闭", "subject" : "(已关闭)" @@ -1467,11 +1467,11 @@ "pk" : 123, "fields" : { "locale" : "pl", - "plain_text" : "Dzień dobry,\r\n\r\nzgłoszenie {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, przypisane do {{ ticket.assigned_to }}{% endif %} zostało zamknięte.\r\n\r\nIdentyfikator Zgłoszenia: {{ ticket.ticket }}\r\nKolejka: {{ queue.title }}\r\nTytuł: {{ ticket.title }}\r\nData Zgłoszenia: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nZgłaszający: {{ ticket.submitter_email|default:\"Brak\" }}\r\nPriorytet: {{ ticket.get_priority_display }}\r\nStatus: {{ ticket.get_status }}\r\nPrzypisane Do: {{ ticket.get_assigned_to }}\r\nZobacz Online: {{ ticket.staff_url }} ( wymagana autoryzacja )\r\n\r\nOryginaly opis zgłoszenia:\r\n\r\n{{ ticket.description }}\r\n\r\nRozwiązanie problemu:\r\n\r\n{{ resolution }}\r\n\r\n\r\n", + "plain_text" : "Dzień dobry,\r\n\r\nzgłoszenie {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, przypisane do {{ ticket.assigned_to }}{% endif %} zostało zamknięte.\r\n\r\nIdentyfikator Zgłoszenia: {{ ticket.ticket }}\r\nKolejka: {{ queue.title }}\r\nTytuł: {{ ticket.title }}\r\nData Zgłoszenia: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nZgłaszający: {{ ticket.submitter_email|default:\"Brak\" }}\r\nPriorytet: {{ ticket.get_priority_display }}\r\nStatus: {{ ticket.get_status }}\r\nPrzypisane Do: {{ ticket.get_assigned_to }}\r\nZobacz Online: {{ ticket.staff_url }} ( wymagana autoryzacja )\r\n\r\nOryginaly opis zgłoszenia:\r\n\r\n{{ ticket.description }}\r\n\r\nRozwiązanie problemu:\r\n\r\n{{ resolution }}\r\n\r\n\r\n", "template_name" : "closed_cc", "heading" : "Zgłoszenie zamknięte", "subject" : "(Zamknięte)", - "html" : "

Dzień dobry,

\r\n\r\n

Zgłoszenie {{ ticket.title }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, przypisane {{ ticket.get_assigned_to }}{% endif %} zostało zamknięte.

\r\n\r\n

\r\nIdentyfikator Zgłoszenia:: {{ ticket.ticket }}
\r\nKolejka: {{ queue.title }}
\r\nTytuł: {{ ticket.title }}
\r\nData Zgłoszenia: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nZgłaszający: {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorytet: {{ ticket.get_priority_display }}
\r\nStatus: {{ ticket.get_status }}
\r\nPrzypisane Do: {{ ticket.get_assigned_to }}
\r\nZobacz Online aby zaktualizować zgłoszenie (wymagana autoryzacja)

\r\n\r\n

Oryginalny opis zgłoszenia:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Rozwiązanie problemu:

\r\n\r\n
{{ resolution }}
\r\n\r\n

Jeśli chcesz zobaczyć Twoje zgłoszenie online, proszę wejdź na stronę {{ ticket.ticket_url }}.

" + "html" : "

Dzień dobry,

\r\n\r\n

Zgłoszenie {{ ticket.ticket }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, przypisane {{ ticket.get_assigned_to }}{% endif %} zostało zamknięte.

\r\n\r\n

\r\nIdentyfikator Zgłoszenia:: {{ ticket.ticket }}
\r\nKolejka: {{ queue.title }}
\r\nTytuł: {{ ticket.title }}
\r\nData Zgłoszenia: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nZgłaszający: {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorytet: {{ ticket.get_priority_display }}
\r\nStatus: {{ ticket.get_status }}
\r\nPrzypisane Do: {{ ticket.get_assigned_to }}
\r\nZobacz Online aby zaktualizować zgłoszenie (wymagana autoryzacja)

\r\n\r\n

Oryginalny opis zgłoszenia:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Rozwiązanie problemu:

\r\n\r\n
{{ resolution }}
\r\n\r\n

Jeśli chcesz zobaczyć Twoje zgłoszenie online, proszę wejdź na stronę {{ ticket.ticket_url }}.

" }, "model" : "helpdesk.emailtemplate" }, @@ -1561,24 +1561,24 @@ }, { "fields" : { - "plain_text" : "Dobrý den,\r\n\r\nTicket {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, přiřazený {{ ticket.assigned_to }}{% endif %} byl uzavřen.\r\n\r\nTicket ID: {{ ticket.ticket }}\r\nFronta: {{ queue.title }}\r\nNadpis: {{ ticket.title }}\r\nOtevřený: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nZadavatel: {{ ticket.submitter_email|default:\"Neznámý\" }}\r\nPriorita: {{ ticket.get_priority_display }}\r\nStav: {{ ticket.get_status }}\r\nPřiřazeno: {{ ticket.get_assigned_to }}\r\nProhlédnout online: {{ ticket.staff_url }} (nutné příhlášení)\r\n\r\nPůvodní popis byl:\r\n\r\n{{ ticket.description }}\r\n\r\nUzavření z důvodu:\r\n\r\n{{ resolution }}", + "plain_text" : "Dobrý den,\r\n\r\nTicket {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, přiřazený {{ ticket.assigned_to }}{% endif %} byl uzavřen.\r\n\r\nTicket ID: {{ ticket.ticket }}\r\nFronta: {{ queue.title }}\r\nNadpis: {{ ticket.title }}\r\nOtevřený: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nZadavatel: {{ ticket.submitter_email|default:\"Neznámý\" }}\r\nPriorita: {{ ticket.get_priority_display }}\r\nStav: {{ ticket.get_status }}\r\nPřiřazeno: {{ ticket.get_assigned_to }}\r\nProhlédnout online: {{ ticket.staff_url }} (nutné příhlášení)\r\n\r\nPůvodní popis byl:\r\n\r\n{{ ticket.description }}\r\n\r\nUzavření z důvodu:\r\n\r\n{{ resolution }}", "locale" : "cs", "heading" : "Ticket Closed", "subject" : "(Uzavřeno)", "template_name" : "closed_cc", - "html" : "

Dobrý den,

\r\n\r\n

Ticket {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, přiřazený {{ ticket.assigned_to }}{% endif %} byl uzavřen.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nFronta: {{ queue.title }}
\r\nNadpis: {{ ticket.title }}
\r\nOtevřeno: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nZadavatel: {{ ticket.submitter_email|default:\"Neznámý\" }}
\r\nPriorita: {{ ticket.get_priority_display }}
\r\nStav: {{ ticket.get_status }}
\r\nPřiřazeno: {{ ticket.get_assigned_to }}
\r\nProhlédnout online nebo aktualizovat (nutné přihlášení)

\r\n\r\n

Původní popis:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Důvod uzavření:

\r\n\r\n
{{ resolution }}
" + "html" : "

Dobrý den,

\r\n\r\n

Ticket {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, přiřazený {{ ticket.assigned_to }}{% endif %} byl uzavřen.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nFronta: {{ queue.title }}
\r\nNadpis: {{ ticket.title }}
\r\nOtevřeno: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nZadavatel: {{ ticket.submitter_email|default:\"Neznámý\" }}
\r\nPriorita: {{ ticket.get_priority_display }}
\r\nStav: {{ ticket.get_status }}
\r\nPřiřazeno: {{ ticket.get_assigned_to }}
\r\nProhlédnout online nebo aktualizovat (nutné přihlášení)

\r\n\r\n

Původní popis:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Důvod uzavření:

\r\n\r\n
{{ resolution }}
" }, "pk" : 131, "model" : "helpdesk.emailtemplate" }, { "fields" : { - "html" : "

Dobrý den,

\r\n\r\n

Ticket {{ ticket.title }} (\"{{ ticket.title }}\") přiřazený Vám byl uzavřen.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nFronta: {{ queue.title }}
\r\nNadpis: {{ ticket.title }}
\r\nOtevřeno: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nZadavatel: {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorita: {{ ticket.get_priority_display }}
\r\nStav: {{ ticket.get_status }}
\r\nPřiřazeno: Vám
\r\nProhlédnout online nebo aktualizovat (nutné přihlášení)

\r\n\r\n

Původní popis:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Důvod uzavření:

\r\n\r\n
{{ resolution }}
", + "html" : "

Dobrý den,

\r\n\r\n

Ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") přiřazený Vám byl uzavřen.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nFronta: {{ queue.title }}
\r\nNadpis: {{ ticket.title }}
\r\nOtevřeno: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nZadavatel: {{ ticket.submitter_email|default:\"Unknown\" }}
\r\nPriorita: {{ ticket.get_priority_display }}
\r\nStav: {{ ticket.get_status }}
\r\nPřiřazeno: Vám
\r\nProhlédnout online nebo aktualizovat (nutné přihlášení)

\r\n\r\n

Původní popis:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
\r\n\r\n

Důvod uzavření:

\r\n\r\n
{{ resolution }}
", "heading" : "Ticket uzavřen", "template_name" : "closed_owner", "subject" : "(Uzavřeno)", "locale" : "cs", - "plain_text" : "Dobrý den,\r\n\r\nTicket {{ ticket.title }} (\"{{ ticket.title }}\") přiřazený VÁM byl uzavřen\r\n\r\nTicket ID: {{ ticket.ticket }}\r\nFronta: {{ queue.title }}\r\nNadpis: {{ ticket.title }}\r\nOtevřený: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nZadavatel: {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorita: {{ ticket.get_priority_display }}\r\nStav: {{ ticket.get_status }}\r\nPřiřazeno: Vy\r\nProhlédnout online: {{ ticket.staff_url }} (nutné příhlášení)\r\n\r\nPůvodní popis byl:\r\n\r\n{{ ticket.description }}\r\n\r\nUzavření z důvodu:\r\n\r\n{{ resolution }}" + "plain_text" : "Dobrý den,\r\n\r\nTicket {{ ticket.ticket }} (\"{{ ticket.title }}\") přiřazený VÁM byl uzavřen\r\n\r\nTicket ID: {{ ticket.ticket }}\r\nFronta: {{ queue.title }}\r\nNadpis: {{ ticket.title }}\r\nOtevřený: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nZadavatel: {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorita: {{ ticket.get_priority_display }}\r\nStav: {{ ticket.get_status }}\r\nPřiřazeno: Vy\r\nProhlédnout online: {{ ticket.staff_url }} (nutné příhlášení)\r\n\r\nPůvodní popis byl:\r\n\r\n{{ ticket.description }}\r\n\r\nUzavření z důvodu:\r\n\r\n{{ resolution }}" }, "pk" : 132, "model" : "helpdesk.emailtemplate" @@ -1598,12 +1598,12 @@ { "model" : "helpdesk.emailtemplate", "fields" : { - "html" : "

Dobrý den,

\r\n\r\n

Ticket {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, přiřazený {{ ticket.assigned_to }}{% endif %} automaticky vyhrocen.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nFronta: {{ queue.title }}
\r\nNadpis: {{ ticket.title }}
\r\nOtevřeno: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nZadavatel: {{ ticket.submitter_email|default:\"Neznámý\" }}
\r\nPriorita: {{ ticket.get_priority_display }}
\r\nStav: {{ ticket.get_status }}
\r\nPřiřazeno: {{ ticket.get_assigned_to }}
\r\nProhlédnout online nebo aktualizovat (nutné přihlášení)

\r\n\r\n

Původní popis:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
", + "html" : "

Dobrý den,

\r\n\r\n

Ticket {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, přiřazený {{ ticket.assigned_to }}{% endif %} automaticky vyhrocen.

\r\n\r\n

\r\nTicket ID: {{ ticket.ticket }}
\r\nFronta: {{ queue.title }}
\r\nNadpis: {{ ticket.title }}
\r\nOtevřeno: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}
\r\nZadavatel: {{ ticket.submitter_email|default:\"Neznámý\" }}
\r\nPriorita: {{ ticket.get_priority_display }}
\r\nStav: {{ ticket.get_status }}
\r\nPřiřazeno: {{ ticket.get_assigned_to }}
\r\nProhlédnout online nebo aktualizovat (nutné přihlášení)

\r\n\r\n

Původní popis:

\r\n\r\n
{{ ticket.description|linebreaksbr }}
", "heading" : "Ticket vyhrocen", "template_name" : "escalated_cc", "subject" : "(Vyhroceno)", "locale" : "cs", - "plain_text" : "Dobrý den,\r\n\r\nTicket {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, přiřazený {{ ticket.assigned_to }}{% endif %} byl automaticky vyhrocen.\r\n\r\nTicket ID: {{ ticket.ticket }}\r\nFronta: {{ queue.title }}\r\nNadpis: {{ ticket.title }}\r\nOtevřený: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nZadavatel: {{ ticket.submitter_email|default:\"Neznámý\" }}\r\nPriorita: {{ ticket.get_priority_display }}\r\nStav: {{ ticket.get_status }}\r\nPřiřazeno: {{ ticket.get_assigned_to }}\r\nProhlédnout online: {{ ticket.staff_url }} (nutné příhlášení)\r\n\r\nPůvodní popis byl:\r\n\r\n{{ ticket.description }}" + "plain_text" : "Dobrý den,\r\n\r\nTicket {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, přiřazený {{ ticket.assigned_to }}{% endif %} byl automaticky vyhrocen.\r\n\r\nTicket ID: {{ ticket.ticket }}\r\nFronta: {{ queue.title }}\r\nNadpis: {{ ticket.title }}\r\nOtevřený: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nZadavatel: {{ ticket.submitter_email|default:\"Neznámý\" }}\r\nPriorita: {{ ticket.get_priority_display }}\r\nStav: {{ ticket.get_status }}\r\nPřiřazeno: {{ ticket.get_assigned_to }}\r\nProhlédnout online: {{ ticket.staff_url }} (nutné příhlášení)\r\n\r\nPůvodní popis byl:\r\n\r\n{{ ticket.description }}" }, "pk" : 134 }, From 5d80a689d9c14f173f0ca702a9751edcb0235d48 Mon Sep 17 00:00:00 2001 From: typonaut <55769287+typonaut@users.noreply.github.com> Date: Sat, 15 Aug 2020 16:16:30 +0100 Subject: [PATCH 03/19] Update configuration.rst Added a couple of sentences to explain that creation of a queue is a prerequisite for automatically creating tickets from e-mail. --- docs/configuration.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/configuration.rst b/docs/configuration.rst index 8c30b5f9..d3613f23 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -19,6 +19,8 @@ Before django-helpdesk will be much use, you need to do some basic configuration **IMPORTANT NOTE**: Any tickets created via POP3 or IMAP mailboxes will DELETE the original e-mail from the mail server. + You will need to create a support queue, and associated login/host values, in the Django admin interface, in order for mail to be picked-up from the mail server and placed in the tickets table of your database. The values in the settings file alone, will not create the necessary values to trigger the get_email function. + 4. If you wish to automatically escalate tickets based on their age, set up a cronjob to run the escalation command on a regular basis:: 0 * * * * /path/to/helpdesksite/manage.py escalate_tickets From eef16be1a4da1a96ad5869885bddf28ce69369a1 Mon Sep 17 00:00:00 2001 From: typonaut <55769287+typonaut@users.noreply.github.com> Date: Sat, 15 Aug 2020 16:28:29 +0100 Subject: [PATCH 04/19] Update kb_category.html Fixed a minor typo: space after colon in H2 heading. --- helpdesk/templates/helpdesk/kb_category.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helpdesk/templates/helpdesk/kb_category.html b/helpdesk/templates/helpdesk/kb_category.html index e3859c90..d782ae9e 100644 --- a/helpdesk/templates/helpdesk/kb_category.html +++ b/helpdesk/templates/helpdesk/kb_category.html @@ -1,7 +1,7 @@ {% extends "helpdesk/public_base.html" %}{% load i18n humanize %} {% block helpdesk_body %} -

{% trans 'Knowledgebase Category' %}:{% blocktrans with category.title as kbcat %}{{ kbcat }}{% endblocktrans %}

+

{% trans 'Knowledgebase Category' %}: {% blocktrans with category.title as kbcat %}{{ kbcat }}{% endblocktrans %}

From 604306d7386b611ec1461134f70015ab2f5cd10d Mon Sep 17 00:00:00 2001 From: typonaut <55769287+typonaut@users.noreply.github.com> Date: Sat, 15 Aug 2020 16:30:58 +0100 Subject: [PATCH 05/19] Update kb_item.html Fixed a minor typo: space after colon in H2 heading --- helpdesk/templates/helpdesk/kb_item.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helpdesk/templates/helpdesk/kb_item.html b/helpdesk/templates/helpdesk/kb_item.html index fa4e85fb..6c127e03 100644 --- a/helpdesk/templates/helpdesk/kb_item.html +++ b/helpdesk/templates/helpdesk/kb_item.html @@ -1,7 +1,7 @@ {% extends "helpdesk/public_base.html" %}{% load i18n %}{% load markdown_deux_tags %} {% block helpdesk_body %} -

{% trans 'Knowledgebase' %}:{% blocktrans with item.title as item %}{{ item }}{% endblocktrans %}

+

{% trans 'Knowledgebase' %}: {% blocktrans with item.title as item %}{{ item }}{% endblocktrans %}

From 67bd484a3560b3047d1aa196ca57ba7a3e5c0e75 Mon Sep 17 00:00:00 2001 From: typonaut <55769287+typonaut@users.noreply.github.com> Date: Wed, 19 Aug 2020 18:02:20 +0100 Subject: [PATCH 06/19] Update kb_category.html Standardises output between KB listing and KB items rating display (so that both are "n/10", where the listing was previously a float), and captures case where there may be no votes cast. --- helpdesk/templates/helpdesk/kb_category.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/helpdesk/templates/helpdesk/kb_category.html b/helpdesk/templates/helpdesk/kb_category.html index d782ae9e..302f084c 100644 --- a/helpdesk/templates/helpdesk/kb_category.html +++ b/helpdesk/templates/helpdesk/kb_category.html @@ -26,7 +26,13 @@ {% blocktrans with item.get_absolute_url as url %}View Answer {% endblocktrans %}

-

{% trans 'Rating' %}: {{ item.score }}

+

{% trans 'Rating' %}: + {% if item.votes > 0 %} + {{ item.score|floatformat }}/10 + {% else %} + {% trans 'no score yet' %} + {% endif %} +

{% trans 'Last Update' %}: {{ item.last_updated|naturaltime }}

From ff171e3c38a09691674f3d62f015366ccf6acb56 Mon Sep 17 00:00:00 2001 From: typonaut <55769287+typonaut@users.noreply.github.com> Date: Wed, 19 Aug 2020 18:07:46 +0100 Subject: [PATCH 07/19] Update kb_item.html Standardises output between KB listing and KB item, captures problem where there may be no votes cast. --- helpdesk/templates/helpdesk/kb_item.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/helpdesk/templates/helpdesk/kb_item.html b/helpdesk/templates/helpdesk/kb_item.html index 6c127e03..73b19a6f 100644 --- a/helpdesk/templates/helpdesk/kb_item.html +++ b/helpdesk/templates/helpdesk/kb_item.html @@ -29,7 +29,12 @@
  • {% blocktrans with item.recommendations as recommendations %}Recommendations: {{ recommendations }}{% endblocktrans %}
  • {% blocktrans with item.votes as votes %}Votes: {{ votes }}{% endblocktrans %}
  • -
  • {% blocktrans with item.score|floatformat as score %}Overall Rating: {{ score }}{% endblocktrans %}/10
  • +
  • {% trans 'Rating' %}: + {% if item.votes > 0 %} + {{ item.score|floatformat }}/10 + {% else %} + {% trans 'no score yet' %} + {% endif %}
From b772c6097b724aae3ee2aba69ef73f82e898d518 Mon Sep 17 00:00:00 2001 From: Thomas Weber Date: Tue, 25 Aug 2020 16:11:50 -0600 Subject: [PATCH 08/19] Verify ticket.assigned_to is set before attempting to access id property --- helpdesk/views/staff.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helpdesk/views/staff.py b/helpdesk/views/staff.py index ba7ed16a..0676079a 100644 --- a/helpdesk/views/staff.py +++ b/helpdesk/views/staff.py @@ -79,7 +79,7 @@ def _has_access_to_queue(user, queue): def _is_my_ticket(user, ticket): """Check to see if the user has permission to access a ticket. If not then deny access.""" - if user.is_superuser or user.is_staff or user.id == ticket.assigned_to.id: + if user.is_superuser or user.is_staff or (ticket.assigned_to and user.id == ticket.assigned_to.id): return True else: return False From bcec57dafe6ab7a043979f852a2662ffa91c0aac Mon Sep 17 00:00:00 2001 From: bbe Date: Mon, 5 Oct 2020 10:20:03 +0200 Subject: [PATCH 09/19] Display total row in report output. --- helpdesk/templates/helpdesk/report_output.html | 4 ++-- helpdesk/views/staff.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/helpdesk/templates/helpdesk/report_output.html b/helpdesk/templates/helpdesk/report_output.html index 6e036586..ea6e2fe6 100644 --- a/helpdesk/templates/helpdesk/report_output.html +++ b/helpdesk/templates/helpdesk/report_output.html @@ -96,7 +96,7 @@ Morris.Line({ element: 'chart-content', data: {% autoescape on %}{{ morrisjs_data|safe }}{% endautoescape %}, xkey: 'x', - ykeys: [{% for d in data %}{{ forloop.counter0 }}{% if not forloop.last %}, {% endif %}{% endfor %}], + ykeys: [{% for d in data|slice:":-1" %}{{ forloop.counter0 }}{% if not forloop.last %}, {% endif %}{% endfor %}], labels: [{% for n in series_names %}"{{ n }}"{% if not forloop.last %}, {% endif %}{% endfor %}], xLabels: "month" }); @@ -110,7 +110,7 @@ Morris.Bar({ element: 'chart-content', data: {% autoescape on %}{{ morrisjs_data|safe }}{% endautoescape %}, xkey: 'x', - ykeys: [{% for d in data %}{{ forloop.counter0 }}{% if not forloop.last %}, {% endif %}{% endfor %}], + ykeys: [{% for d in data|slice:":-1" %}{{ forloop.counter0 }}{% if not forloop.last %}, {% endif %}{% endfor %}], labels: [{% for n in series_names %}"{{ n }}"{% if not forloop.last %}, {% endif %}{% endfor %}] }); diff --git a/helpdesk/views/staff.py b/helpdesk/views/staff.py index ba7ed16a..02c21580 100644 --- a/helpdesk/views/staff.py +++ b/helpdesk/views/staff.py @@ -1309,11 +1309,17 @@ def run_report(request, report): column_headings = [col1heading] + possible_options + # Prepare a dict to store totals for each possible option + totals = {} # Pivot the data so that 'header1' fields are always first column # in the row, and 'possible_options' are always the 2nd - nth columns. for item in header1: data = [] for hdr in possible_options: + if hdr not in totals.keys(): + totals[hdr] = summarytable[item, hdr] + else: + totals[hdr] += summarytable[item, hdr] data.append(summarytable[item, hdr]) table.append([item] + data) @@ -1332,6 +1338,12 @@ def run_report(request, report): for series in table: series_names.append(series[0]) + # Add total row to table + total_data = [] + for hdr in possible_options: + total_data.append(str(totals[hdr])) + table.append(['Total'] + total_data) + return render(request, 'helpdesk/report_output.html', { 'title': title, 'charttype': charttype, From ecc7dcdc1729c0340174e2dd5651fce6d192df1b Mon Sep 17 00:00:00 2001 From: Benbb96 Date: Thu, 8 Oct 2020 00:48:03 +0200 Subject: [PATCH 10/19] Fix tests --- helpdesk/templates/helpdesk/report_output.html | 8 ++++++-- helpdesk/views/staff.py | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/helpdesk/templates/helpdesk/report_output.html b/helpdesk/templates/helpdesk/report_output.html index ea6e2fe6..5bbc81ca 100644 --- a/helpdesk/templates/helpdesk/report_output.html +++ b/helpdesk/templates/helpdesk/report_output.html @@ -75,6 +75,10 @@ {% for d in data %} {% for f in d %}{{ f }}{% endfor %} {% endfor %} + {# Total row #} + + {% for f in total_data %}{{ f }}{% endfor %} +
@@ -96,7 +100,7 @@ Morris.Line({ element: 'chart-content', data: {% autoescape on %}{{ morrisjs_data|safe }}{% endautoescape %}, xkey: 'x', - ykeys: [{% for d in data|slice:":-1" %}{{ forloop.counter0 }}{% if not forloop.last %}, {% endif %}{% endfor %}], + ykeys: [{% for d in data %}{{ forloop.counter0 }}{% if not forloop.last %}, {% endif %}{% endfor %}], labels: [{% for n in series_names %}"{{ n }}"{% if not forloop.last %}, {% endif %}{% endfor %}], xLabels: "month" }); @@ -110,7 +114,7 @@ Morris.Bar({ element: 'chart-content', data: {% autoescape on %}{{ morrisjs_data|safe }}{% endautoescape %}, xkey: 'x', - ykeys: [{% for d in data|slice:":-1" %}{{ forloop.counter0 }}{% if not forloop.last %}, {% endif %}{% endfor %}], + ykeys: [{% for d in data %}{{ forloop.counter0 }}{% if not forloop.last %}, {% endif %}{% endfor %}], labels: [{% for n in series_names %}"{{ n }}"{% if not forloop.last %}, {% endif %}{% endfor %}] }); diff --git a/helpdesk/views/staff.py b/helpdesk/views/staff.py index 02c21580..292c3d30 100644 --- a/helpdesk/views/staff.py +++ b/helpdesk/views/staff.py @@ -1339,15 +1339,15 @@ def run_report(request, report): series_names.append(series[0]) # Add total row to table - total_data = [] + total_data = ['Total'] for hdr in possible_options: total_data.append(str(totals[hdr])) - table.append(['Total'] + total_data) return render(request, 'helpdesk/report_output.html', { 'title': title, 'charttype': charttype, 'data': table, + 'total_data': total_data, 'headings': column_headings, 'series_names': series_names, 'morrisjs_data': morrisjs_data, From e83b00674fe063f3b2ffc480273432643f265b23 Mon Sep 17 00:00:00 2001 From: typonaut <55769287+typonaut@users.noreply.github.com> Date: Thu, 8 Oct 2020 03:18:50 +0100 Subject: [PATCH 11/19] Update configuration.rst Adds documentation as to the function of "E-Mail Check Interval" and its interaction with a crontab. --- docs/configuration.rst | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/docs/configuration.rst b/docs/configuration.rst index d3613f23..d1f4b63e 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -1,12 +1,12 @@ Configuration ============= + **IMPORTANT NOTE**: Any tickets created via POP3 or IMAP mailboxes will DELETE the original e-mail from the mail server. + Before django-helpdesk will be much use, you need to do some basic configuration. Most of this is done via the Django admin screens. 1. Visit ``http://yoursite/admin/`` and add a Helpdesk Queue. If you wish, enter your POP3 or IMAP server details. - **IMPORTANT NOTE**: Any tickets created via POP3 or IMAP mailboxes will DELETE the original e-mail from the mail server. - 2. Visit ``http://yoursite/helpdesk/`` (or whatever path as defined in your ``urls.py``) 3. If you wish to automatically create tickets from the contents of an e-mail inbox, set up a cronjob to run the management command on a regular basis. @@ -17,8 +17,6 @@ Before django-helpdesk will be much use, you need to do some basic configuration This will run the e-mail import every 5 minutes - **IMPORTANT NOTE**: Any tickets created via POP3 or IMAP mailboxes will DELETE the original e-mail from the mail server. - You will need to create a support queue, and associated login/host values, in the Django admin interface, in order for mail to be picked-up from the mail server and placed in the tickets table of your database. The values in the settings file alone, will not create the necessary values to trigger the get_email function. 4. If you wish to automatically escalate tickets based on their age, set up a cronjob to run the escalation command on a regular basis:: @@ -44,3 +42,15 @@ Before django-helpdesk will be much use, you need to do some basic configuration 8. If you wish to use SOCKS4/5 proxy with Helpdesk Queue email operations, install PySocks manually. Please note that mixing both SOCKS and non-SOCKS email sources for different queues is only supported under Python 2; on Python 3, SOCKS proxy support is all-or-nothing: either all queue email sources must use SOCKS or none may use it. If you need this functionality on Python 3 please `let us know `_. You're now up and running! Happy ticketing. + +Queue settings via admin interface +---------------------------------- +E-Mail Check Interval +^^^^^^^^^^^^^^^^^^^^^ +This setting does not trigger e-mail collection, it merely throttles it. In order to trigger e-mail collection you must run a crontab to trigger ``manage.py get_email``. The setting in *E-Mail Check Interval* prevents your crontab from running the e-mail trigger more often than the interval set. + +For example, setting *E-Mail Check Interval* to ``5`` will limit the collection of e-mail to once every five minutes, even if your crontab is firing every five seconds. If your cron job is set to fire once every hour, then e-mail will only be collected once every hour. + +The cron job triggers the collection of e-mail, *E-Mail Check Interval* restricts how often the trigger is effective. + +To remove this limit, set *E-Mail Check Interval* to ``0``. From 3e91f35986d9027e12c0ee7767f06c5c86f9b2f8 Mon Sep 17 00:00:00 2001 From: typonaut <55769287+typonaut@users.noreply.github.com> Date: Thu, 8 Oct 2020 16:12:35 +0100 Subject: [PATCH 12/19] Update configuration.rst, again Improved documentation on e-mail check interval, added documentation on locale. --- docs/configuration.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/configuration.rst b/docs/configuration.rst index d1f4b63e..4d00af87 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -45,6 +45,12 @@ You're now up and running! Happy ticketing. Queue settings via admin interface ---------------------------------- +Locale +^^^^^^ +The *Locale* value must match the value in the ``locale`` column in the ``helpdesk_emailtemplate`` table if you wish to use those templates. For default installations/templates those values are ``cs``, ``de``, ``en``, ``es``, ``fi``, ``fr``, ``it``, ``pl``, ``ru`` and ``zh``. + +If you want to use a different *Local* then you will need to generate/edit the necessary templates (and set the value in the ``locale`` column) for those locales. This includes when using language variants, such as ``de-CH``, ``en-GB`` or ``fr-CA`` for example. + E-Mail Check Interval ^^^^^^^^^^^^^^^^^^^^^ This setting does not trigger e-mail collection, it merely throttles it. In order to trigger e-mail collection you must run a crontab to trigger ``manage.py get_email``. The setting in *E-Mail Check Interval* prevents your crontab from running the e-mail trigger more often than the interval set. @@ -54,3 +60,13 @@ For example, setting *E-Mail Check Interval* to ``5`` will limit the collection The cron job triggers the collection of e-mail, *E-Mail Check Interval* restricts how often the trigger is effective. To remove this limit, set *E-Mail Check Interval* to ``0``. + +Potential problems +"""""""""""""""""" +There is potential for a timing clash to prevent triggering of mail collection if *E-Mail Check Interval* and your crontab interval are identical. Because the crontab runs fractionally before, or at exactly the same time as *E-Mail Check Interval* is run, if the timings for both are identical then every second call by the crontab will be ignored by *E-Mail Check Interval* because its interval has yet to expire. + +The result is that if both crontab and *E-Mail Check Interval* are set to run at five minute intervals, then mail may actually only be collected every ten minutes. You will see the evidence of this in the helpdesk mail log, or in the logs of your mail server. + +To avoid this problem set the crontab and *E-Mail Check Interval* to marginally different values (or set *E-Mail Check Interval* to ``0``). *E-Mail Check Interval* will only take an integer value, in minutes, so if you want a five minute interval between mail checks, then you will either have to set *E-Mail Check Interval* to ``4`` and the crontab interval to ``300 seconds``, or the *E-Mail Check Interval* to ``5`` and the crontab interval to ``305 seconds``. + +The crontab interval overrides the *E-Mail Check Interval*, and resets the *E-Mail Check Interval* each time it fires, as long as the crontab interval is greater than *E-Mail Check Interval*. From c2276ce7e16c2d90f99ba797dd1b93ec66b96f99 Mon Sep 17 00:00:00 2001 From: Benbb96 Date: Thu, 8 Oct 2020 22:05:48 +0200 Subject: [PATCH 13/19] Set an absolute path to get the module recognized when running from root folder --- demo/demodesk/config/settings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/demo/demodesk/config/settings.py b/demo/demodesk/config/settings.py index 8d931242..1f50a463 100644 --- a/demo/demodesk/config/settings.py +++ b/demo/demodesk/config/settings.py @@ -56,7 +56,7 @@ MIDDLEWARE = [ 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] -ROOT_URLCONF = 'demodesk.config.urls' +ROOT_URLCONF = 'demo.demodesk.config.urls' TEMPLATES = [ { @@ -75,7 +75,7 @@ TEMPLATES = [ }, ] -WSGI_APPLICATION = 'demodesk.config.wsgi.application' +WSGI_APPLICATION = 'demo.demodesk.config.wsgi.application' # django-helpdesk configuration settings From d80c70735ac8854518c8d290bb91f0310ff0aae6 Mon Sep 17 00:00:00 2001 From: Benbb96 Date: Thu, 8 Oct 2020 22:07:49 +0200 Subject: [PATCH 14/19] Remove unused imports and fix errors like variables which were removed or renamed or call to function apply_query which doesn't exist anymore. --- helpdesk/query.py | 1 - helpdesk/views/staff.py | 37 ++++++++++++++++--------------------- 2 files changed, 16 insertions(+), 22 deletions(-) diff --git a/helpdesk/query.py b/helpdesk/query.py index 8e42dcf1..c94367d2 100644 --- a/helpdesk/query.py +++ b/helpdesk/query.py @@ -219,5 +219,4 @@ class __Query__: 'hour': date.hour, 'minute': date.minute, 'second': date.second, - 'second': date.second, } diff --git a/helpdesk/views/staff.py b/helpdesk/views/staff.py index c8fab8a2..25aea105 100644 --- a/helpdesk/views/staff.py +++ b/helpdesk/views/staff.py @@ -9,7 +9,6 @@ views/staff.py - The bulk of the application - provides most business logic and from copy import deepcopy import json -from django import VERSION as DJANGO_VERSION from django.conf import settings from django.contrib.auth import get_user_model from django.contrib.auth.decorators import user_passes_test @@ -20,19 +19,15 @@ from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.db.models import Q from django.http import HttpResponseRedirect, Http404, HttpResponse, JsonResponse from django.shortcuts import render, get_object_or_404 -from django.utils.dates import MONTHS_3 from django.utils.translation import ugettext as _ from django.utils.html import escape -from django import forms from django.utils import timezone from django.views.generic.edit import FormView, UpdateView from helpdesk.query import ( get_query_class, - query_to_dict, query_to_base64, query_from_base64, - apply_query, ) from helpdesk.user import HelpdeskUser @@ -45,12 +40,11 @@ from helpdesk.forms import ( TicketForm, UserSettingsForm, EmailIgnoreForm, EditTicketForm, TicketCCForm, TicketCCEmailForm, TicketCCUserForm, EditFollowUpForm, TicketDependencyForm ) -from helpdesk.decorators import staff_member_required, superuser_required +from helpdesk.decorators import superuser_required from helpdesk.lib import ( safe_template_context, process_attachments, queue_template_context, - format_time_spent, ) from helpdesk.models import ( Ticket, Queue, FollowUp, TicketChange, PreSetReply, FollowUpAttachment, SavedSearch, @@ -61,8 +55,7 @@ import helpdesk.views.abstract_views as abstract_views from helpdesk.views.permissions import MustBeStaffMixin from ..lib import format_time_spent -from rest_framework import viewsets, status -from rest_framework.response import Response +from rest_framework import status from rest_framework.decorators import api_view from datetime import date, datetime, timedelta @@ -105,6 +98,14 @@ def dashboard(request): showing ticket counts by queue/status, and a list of unassigned tickets with options for them to 'Take' ownership of said tickets. """ + # user settings num tickets per page + tickets_per_page = request.user.usersettings_helpdesk.settings.get('tickets_per_page') or 25 + + # page vars for the three ticket tables + user_tickets_page = request.GET.get(_('ut_page'), 1) + user_tickets_closed_resolved_page = request.GET.get(_('utcr_page'), 1) + all_tickets_reported_by_current_user_page = request.GET.get(_('atrbcu_page'), 1) + huser = HelpdeskUser(request.user) active_tickets = Ticket.objects.select_related('queue').exclude( status__in=[Ticket.CLOSED_STATUS, Ticket.RESOLVED_STATUS], @@ -448,7 +449,7 @@ def subscribe_to_ticket_updates(ticket, user=None, email=None, can_view=True, ca return ticketcc -def subscribe_staff_member_to_ticket(ticket, user, email=''): +def subscribe_staff_member_to_ticket(ticket, user, email='', can_view=True, can_update=False): """used in view_ticket() and update_ticket()""" return subscribe_to_ticket_updates(ticket=ticket, user=user, email=email, can_view=can_view, can_update=can_update) @@ -828,7 +829,7 @@ def mass_update(request): 'submitter': ('closed_submitter', context), 'ticket_cc': ('closed_cc', context), } - if ticket.assigned_to and ticket.assigned_to.usersettings_helpdesk.email_on_ticket_change: + if t.assigned_to and t.assigned_to.usersettings_helpdesk.email_on_ticket_change: roles['assigned_to'] = ('closed_owner', context), messages_sent_to.update(t.send( @@ -1010,10 +1011,10 @@ def load_saved_query(request, query_params=None): if request.GET.get('saved_query', None): try: - saved_query = SavedSearch.objects.get(pk=request.GET.get('saved_query')) - except SavedSearch.DoesNotExist: - raise QueryLoadError() - if not (saved_query.shared or saved_query.user == request.user): + saved_query = SavedSearch.objects.get( + Q(pk=request.GET.get('saved_query')) & (Q(shared=True) | Q(user=request.user)) + ) + except (SavedSearch.DoesNotExist, ValueError): raise QueryLoadError() try: @@ -1217,17 +1218,11 @@ def run_report(request, report): except QueryLoadError: return HttpResponseRedirect(reverse('helpdesk:report_index')) - if request.GET.get('saved_query', None): - report_queryset = apply_query(report_queryset, query_params) - from collections import defaultdict summarytable = defaultdict(int) # a second table for more complex queries summarytable2 = defaultdict(int) - def month_name(m): - MONTHS_3[m].title() - first_ticket = Ticket.objects.all().order_by('created')[0] first_month = first_ticket.created.month first_year = first_ticket.created.year From d7f4ca413755a74baa6fc436ef7ab514f7f37497 Mon Sep 17 00:00:00 2001 From: Benbb96 Date: Thu, 8 Oct 2020 22:34:40 +0200 Subject: [PATCH 15/19] Fix the call the user setting for tickets per page --- helpdesk/views/staff.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helpdesk/views/staff.py b/helpdesk/views/staff.py index 25aea105..1fefad8b 100644 --- a/helpdesk/views/staff.py +++ b/helpdesk/views/staff.py @@ -99,7 +99,7 @@ def dashboard(request): with options for them to 'Take' ownership of said tickets. """ # user settings num tickets per page - tickets_per_page = request.user.usersettings_helpdesk.settings.get('tickets_per_page') or 25 + tickets_per_page = request.user.usersettings_helpdesk.tickets_per_page or 25 # page vars for the three ticket tables user_tickets_page = request.GET.get(_('ut_page'), 1) From 5b44a3aca6fe9c555f3d458983370de500583314 Mon Sep 17 00:00:00 2001 From: Benbb96 Date: Thu, 8 Oct 2020 22:34:45 +0200 Subject: [PATCH 16/19] Fix an error when creating a ticket with a submitter email that is shared by multiple users --- helpdesk/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helpdesk/models.py b/helpdesk/models.py index d0e6c30a..95ab7601 100644 --- a/helpdesk/models.py +++ b/helpdesk/models.py @@ -752,7 +752,7 @@ class Ticket(models.Model): User = get_user_model() try: return User.objects.get(email=self.submitter_email) - except User.DoesNotExist: + except (User.DoesNotExist, User.MultipleObjectsReturned): return None class Meta: From 37713db32a720993cbd4a3f214c03e041d9e8235 Mon Sep 17 00:00:00 2001 From: Benbb96 Date: Thu, 8 Oct 2020 22:47:52 +0200 Subject: [PATCH 17/19] Show username of ticket's owner in ticket_list if user has no full name nor email --- helpdesk/serializers.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/helpdesk/serializers.py b/helpdesk/serializers.py index c96f5b86..df0c6a5f 100644 --- a/helpdesk/serializers.py +++ b/helpdesk/serializers.py @@ -32,28 +32,30 @@ class DatatablesTicketSerializer(serializers.ModelSerializer): 'time_spent', 'kbitem') def get_queue(self, obj): - return ({"title": obj.queue.title, "id": obj.queue.id}) + return {"title": obj.queue.title, "id": obj.queue.id} def get_ticket(self, obj): - return (str(obj.id) + " " + obj.ticket) + return str(obj.id) + " " + obj.ticket def get_status(self, obj): - return (obj.get_status) + return obj.get_status def get_created(self, obj): - return (humanize.naturaltime(obj.created)) + return humanize.naturaltime(obj.created) def get_due_date(self, obj): - return (humanize.naturaltime(obj.due_date)) + return humanize.naturaltime(obj.due_date) def get_assigned_to(self, obj): if obj.assigned_to: if obj.assigned_to.get_full_name(): - return (obj.assigned_to.get_full_name()) + return obj.assigned_to.get_full_name() + elif obj.assigned_to.email: + return obj.assigned_to.email else: - return (obj.assigned_to.email) + return obj.assigned_to.username else: - return ("None") + return "None" def get_submitter(self, obj): return obj.submitter_email @@ -62,7 +64,7 @@ class DatatablesTicketSerializer(serializers.ModelSerializer): return format_time_spent(obj.time_spent) def get_row_class(self, obj): - return (obj.get_priority_css_class) + return obj.get_priority_css_class def get_kbitem(self, obj): return obj.kbitem.title if obj.kbitem else "" From 306446b389e69ccaeff71989440e1fd52b370041 Mon Sep 17 00:00:00 2001 From: Jay Turner Date: Sat, 10 Oct 2020 13:28:27 +0100 Subject: [PATCH 18/19] Fixes a missing migrations messages in 0.2.22 which is caused by the careless changing of strings in models --- helpdesk/migrations/0018_fix_migrations.py | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 helpdesk/migrations/0018_fix_migrations.py diff --git a/helpdesk/migrations/0018_fix_migrations.py b/helpdesk/migrations/0018_fix_migrations.py new file mode 100644 index 00000000..05ee0011 --- /dev/null +++ b/helpdesk/migrations/0018_fix_migrations.py @@ -0,0 +1,58 @@ +# Generated by Django 2.2.16 on 2020-10-10 12:26 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('helpdesk', '0017_default_owner_on_delete_null'), + ] + + operations = [ + migrations.AlterField( + model_name='followup', + name='public', + field=models.BooleanField(blank=True, default=False, help_text='Public tickets are viewable by the submitter and all staff, but non-public tickets can only be seen by staff.', verbose_name='Public'), + ), + migrations.AlterField( + model_name='ignoreemail', + name='keep_in_mailbox', + field=models.BooleanField(blank=True, default=False, help_text='Do you want to save emails from this address in the mailbox? If this is unticked, emails from this address will be deleted.', verbose_name='Save Emails in Mailbox?'), + ), + migrations.AlterField( + model_name='queue', + name='allow_email_submission', + field=models.BooleanField(blank=True, default=False, help_text='Do you want to poll the e-mail box below for new tickets?', verbose_name='Allow E-Mail Submission?'), + ), + migrations.AlterField( + model_name='queue', + name='allow_public_submission', + field=models.BooleanField(blank=True, default=False, help_text='Should this queue be listed on the public submission form?', verbose_name='Allow Public Submission?'), + ), + migrations.AlterField( + model_name='queue', + name='email_box_ssl', + field=models.BooleanField(blank=True, default=False, help_text='Whether to use SSL for IMAP or POP3 - the default ports when using SSL are 993 for IMAP and 995 for POP3.', verbose_name='Use SSL for E-Mail?'), + ), + migrations.AlterField( + model_name='savedsearch', + name='shared', + field=models.BooleanField(blank=True, default=False, help_text='Should other users see this query?', verbose_name='Shared With Other Users?'), + ), + migrations.AlterField( + model_name='ticket', + name='on_hold', + field=models.BooleanField(blank=True, default=False, help_text='If a ticket is on hold, it will not automatically be escalated.', verbose_name='On Hold'), + ), + migrations.AlterField( + model_name='ticketcc', + name='can_update', + field=models.BooleanField(blank=True, default=False, help_text='Can this CC login and update the ticket?', verbose_name='Can Update Ticket?'), + ), + migrations.AlterField( + model_name='ticketcc', + name='can_view', + field=models.BooleanField(blank=True, default=False, help_text='Can this CC login to view the ticket details?', verbose_name='Can View Ticket?'), + ), + ] From 6f1ec3e13edcfef79e2db3155a8f1aaa76fb35dd Mon Sep 17 00:00:00 2001 From: Garret Wassermann Date: Tue, 13 Oct 2020 03:09:30 -0400 Subject: [PATCH 19/19] Update travis ci testing to use Django 3.1 and Ubuntu 20.04 --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index cd60923c..95ee7606 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: python -dist: bionic # use LTS 18.04 +dist: focal # use LTS 20.04 python: - "3.6" @@ -7,7 +7,7 @@ python: - "3.8" env: - - DJANGO=2.2.8 + - DJANGO=3.1.2 install: - pip install -q Django==$DJANGO