From 3453de52d5d3081f7547d0203c8c12ad4b0eff5d Mon Sep 17 00:00:00 2001 From: demo Date: Tue, 8 Nov 2011 16:14:04 +0100 Subject: [PATCH 01/11] corrected doc on migrate to fit actual needs --- docs/install.rst | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/install.rst b/docs/install.rst index 82a55c78..da306c6c 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -56,11 +56,7 @@ Adding To Your Django Project ./manage.py syncdb - If you're wise enough to use South, the first migration will need to be a fake:: - - ./manage.py migrate helpdesk 0001 --fake - - After the initial migration, all others are done in the usual way:: + Then migrate using South ./manage.py migrate helpdesk From 23463c902eeff1c0102cef81293de54ee32298bd Mon Sep 17 00:00:00 2001 From: Alex Garel Date: Tue, 8 Nov 2011 17:31:05 +0100 Subject: [PATCH 02/11] Using safe_template_context to build templated email context forms.py Without this send_templated_mail does not work (Exception on context['queue'].get('locale', 'en') --- helpdesk/forms.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/helpdesk/forms.py b/helpdesk/forms.py index 502a90bb..bfc61bcd 100644 --- a/helpdesk/forms.py +++ b/helpdesk/forms.py @@ -15,7 +15,7 @@ from django.conf import settings from django.contrib.auth.models import User from django.utils.translation import ugettext as _ -from helpdesk.lib import send_templated_mail +from helpdesk.lib import send_templated_mail, safe_template_context from helpdesk.models import Ticket, Queue, FollowUp, Attachment, IgnoreEmail, TicketCC, CustomField, TicketCustomFieldValue, TicketDependency from helpdesk.settings import HAS_TAG_SUPPORT @@ -280,11 +280,8 @@ class TicketForm(forms.Form): # settings.MAX_EMAIL_ATTACHMENT_SIZE) are sent via email. files.append(a.file.path) - context = { - 'ticket': t, - 'queue': q, - 'comment': f.comment, - } + context = safe_template_context(t) + context['comment'] = f.comment messages_sent_to = [] @@ -482,10 +479,7 @@ class PublicTicketForm(forms.Form): # settings.MAX_EMAIL_ATTACHMENT_SIZE) are sent via email. files.append(a.file.path) - context = { - 'ticket': t, - 'queue': q, - } + context = safe_template_context(t) messages_sent_to = [] From 08efeb1fc900823befa0b1038d0a2603735b485a Mon Sep 17 00:00:00 2001 From: Alex Garel Date: Tue, 8 Nov 2011 17:57:26 +0100 Subject: [PATCH 03/11] fixing month index error in reports month has to span from 0 to 11 not 1 to 12 --- 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 bc80f60a..418e0f91 100644 --- a/helpdesk/views/staff.py +++ b/helpdesk/views/staff.py @@ -833,7 +833,7 @@ def run_report(request, report): month = 1 if (year > last_year) or (month > last_month and year >= last_year): working = False - periods.append("%s %s" % (months[month], year)) + periods.append("%s %s" % (months[month - 1], year)) if report == 'userpriority': title = _('User by Priority') From ab84017dd59475e0a9a37f098daa07f3135ca586 Mon Sep 17 00:00:00 2001 From: Alex Garel Date: Wed, 9 Nov 2011 16:37:37 +0100 Subject: [PATCH 04/11] more fixes on templated mail and safe context --- helpdesk/management/commands/escalate_tickets.py | 9 +++------ helpdesk/management/commands/get_email.py | 7 ++----- helpdesk/views/api.py | 16 +++++----------- helpdesk/views/staff.py | 9 ++++----- 4 files changed, 14 insertions(+), 27 deletions(-) diff --git a/helpdesk/management/commands/escalate_tickets.py b/helpdesk/management/commands/escalate_tickets.py index 13f6b712..b6050061 100644 --- a/helpdesk/management/commands/escalate_tickets.py +++ b/helpdesk/management/commands/escalate_tickets.py @@ -13,12 +13,12 @@ import getopt from optparse import make_option import sys -from django.core.management.base import BaseCommand +from django.core.management.base import BaseCommand, CommandError from django.db.models import Q from django.utils.translation import ugettext as _ from helpdesk.models import Queue, Ticket, FollowUp, EscalationExclusion, TicketChange -from helpdesk.lib import send_templated_mail +from helpdesk.lib import send_templated_mail, safe_template_context class Command(BaseCommand): @@ -99,10 +99,7 @@ def escalate_tickets(queues, verbose): t.priority -= 1 t.save() - context = { - 'ticket': t, - 'queue': q, - } + context = safe_template_context(t) if t.submitter_email: send_templated_mail( diff --git a/helpdesk/management/commands/get_email.py b/helpdesk/management/commands/get_email.py index 795fc2e5..c3b9e33f 100644 --- a/helpdesk/management/commands/get_email.py +++ b/helpdesk/management/commands/get_email.py @@ -26,7 +26,7 @@ from django.core.management.base import BaseCommand from django.db.models import Q from django.utils.translation import ugettext as _ -from helpdesk.lib import send_templated_mail +from helpdesk.lib import send_templated_mail, safe_template_context from helpdesk.models import Queue, Ticket, FollowUp, Attachment, IgnoreEmail @@ -246,10 +246,7 @@ def ticket_from_message(message, queue, quiet): t.status = Ticket.REOPENED_STATUS t.save() - context = { - 'ticket': t, - 'queue': queue, - } + context = safe_template_context(t) if new: diff --git a/helpdesk/views/api.py b/helpdesk/views/api.py index 236f4842..0c394b86 100644 --- a/helpdesk/views/api.py +++ b/helpdesk/views/api.py @@ -22,7 +22,7 @@ from django.template import loader, Context from django.utils import simplejson from helpdesk.forms import TicketForm -from helpdesk.lib import send_templated_mail +from helpdesk.lib import send_templated_mail, safe_template_context from helpdesk.models import Ticket, Queue, FollowUp STATUS_OK = 200 @@ -191,11 +191,8 @@ class API: f.save() - context = { - 'ticket': ticket, - 'queue': ticket.queue, - 'comment': f.comment, - } + context = safe_template_context(ticket) + context['comment'] = f.comment messages_sent_to = [] @@ -266,11 +263,8 @@ class API: ) f.save() - context = { - 'ticket': ticket, - 'queue': ticket.queue, - 'resolution': f.comment, - } + context = safe_template_context(ticket) + context['resolution'] = f.comment subject = '%s %s (Resolved)' % (ticket.ticket, ticket.title) diff --git a/helpdesk/views/staff.py b/helpdesk/views/staff.py index 418e0f91..6e5f38af 100644 --- a/helpdesk/views/staff.py +++ b/helpdesk/views/staff.py @@ -419,11 +419,10 @@ def mass_update(request): f = FollowUp(ticket=t, date=datetime.now(), title=_('Closed in bulk update'), public=True, user=request.user, new_status=Ticket.CLOSED_STATUS) f.save() # Send email to Submitter, Owner, Queue CC - context = { - 'ticket': t, - 'queue': t.queue, - 'resolution': t.resolution, - } + context = safe_template_context(t) + context.update( + resolution=t.resolution, + ) messages_sent_to = [] From d78ea39c693cd40449e448afb1e60954d2eb4e9b Mon Sep 17 00:00:00 2001 From: Alex Garel Date: Wed, 9 Nov 2011 18:29:57 +0100 Subject: [PATCH 05/11] Document the need of 'django.core.context_processors.request' in docs/settings.rst --- docs/settings.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/settings.rst b/docs/settings.rst index 6e9d250a..c1e89089 100644 --- a/docs/settings.rst +++ b/docs/settings.rst @@ -1,6 +1,14 @@ Settings ======== +First, django-helpdesk needs ``django.core.context_processors.request`` activated, so in your ``settings.py`` add:: + + from django.conf import global_settings + TEMPLATE_CONTEXT_PROCESSORS = ( + global_settings.TEMPLATE_CONTEXT_PROCESSORS + + ('django.core.context_processors.request',) + ) + The following settings can be changed in your ``settings.py`` file to help change the way django-helpdesk operates. HELPDESK_DEFAULT_SETTINGS From 89cc11cb8eb406c60e575d7ff85d8fa8fc369948 Mon Sep 17 00:00:00 2001 From: Alex Garel Date: Thu, 10 Nov 2011 12:18:16 +0100 Subject: [PATCH 06/11] French translations for notifications and headers / footers --- helpdesk/fixtures/initial_data.json | 192 ++++++++++++++++++ .../helpdesk/fr/email_html_base.html | 9 + .../helpdesk/fr/email_text_footer.txt | 6 + 3 files changed, 207 insertions(+) create mode 100644 helpdesk/templates/helpdesk/fr/email_html_base.html create mode 100644 helpdesk/templates/helpdesk/fr/email_text_footer.txt diff --git a/helpdesk/fixtures/initial_data.json b/helpdesk/fixtures/initial_data.json index 1ecb3262..8f6a5ed9 100644 --- a/helpdesk/fixtures/initial_data.json +++ b/helpdesk/fixtures/initial_data.json @@ -574,5 +574,197 @@ "subject": "(Aktualisiert)", "locale": "de" } + }, + { + "pk": 49, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Ticket Assign\u00e9", + "html": "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous pr\u00e9venir que le ticket {{ ticket.ticket }} ({{ ticket.title }}) par {{ ticket.submitter_email }} {% if ticket.assigned_to %}a \u00e9t\u00e9 assign\u00e9 \u00e0 {{ ticket.assigned_to }}{% else %} n'est plus assign\u00e9 \u00e0 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\u00e9 : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre \u00e0 jour (apr\u00e8s authentification)

\r\n\r\n

Pour m\u00e9moire, la description originelle \u00e9tait :

\r\n\r\n
{{ ticket.description }}
", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nCe courriel indicatif permet de vous pr\u00e9venir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} {% if ticket.assigned_to %} a \u00e9t\u00e9 assign\u00e9 \u00e0 {{ ticket.assigned_to }}{% else %} n'est plus assign\u00e9 \u00e0 personne{% endif %}.\r\n\r\nIdentifiant\u00a0: {{ ticket.ticket }}\r\nFile d'attente\u00a0: {{ queue.title }}\r\nTitre\u00a0: {{ ticket.title }}\r\nOuvert le\u00a0: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nSoumis par\u00a0: {{ ticket.submitter_email|default:\"Unknown\" }}\r\nPriorit\u00e9\u00a0: {{ ticket.get_priority_display }}\r\nStatut\u00a0: {{ ticket.get_status }}\r\nAssign\u00e9 \u00e0\u00a0: {{ ticket.get_assigned_to }}\r\nAdresse\u00a0: {{ ticket.staff_url }}\r\n\r\nLa description originelle \u00e9tait\u00a0:\r\n\r\n{{ ticket.description }}\r\n\r\n", + "subject": "(Assign\u00e9)", + "template_name": "assigned_cc" + } + }, + { + "pk": 50, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Le ticket vous est assign\u00e9", + "html": "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous pr\u00e9venir que le ticket {{ ticket.ticket }} ({{ ticket.title }}) pour {{ ticket.submitter_email }} vous a \u00e9t\u00e9 assign\u00e9.

\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\u00e9 : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre \u00e0 jour (apr\u00e8s authentification)

\r\n\r\n

Pour m\u00e9moire, la description originelle \u00e9tait :

\r\n\r\n
{{ ticket.description }}
", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nCe courriel indicatif permet de vous pr\u00e9venir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") pour {{ ticket.submitter_email }} vous a \u00e9t\u00e9 assign\u00e9.\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\u00e9 : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle \u00e9tait :\r\n\r\n{{ ticket.description }}", + "subject": "(Pour vous)", + "template_name": "assigned_owner" + } + }, + { + "pk": 51, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Ticket Ferm\u00e9", + "html": "

Bonjour,

\r\n\r\n

Le ticket {{ ticket.title }} ('{{ ticket.title }}'){% if ticket.assigned_to %}, assign\u00e9 \u00e0 {{ ticket.get_assigned_to }}{% endif %} a \u00e9t\u00e9 ferm\u00e9.

\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\u00e9 : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre \u00e0 jour (apr\u00e8s authentification)

\r\n\r\n

Pour m\u00e9moire, la description originelle \u00e9tait :

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

La motivation de r\u00e9solution est:

\r\n\r\n
{{ resolution }}
", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nLe ticket {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, assign\u00e9 \u00e0 {{ ticket.assigned_to }}{% endif %} a \u00e9t\u00e9 ferm\u00e9.\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\u00e9 : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle \u00e9tait :\r\n\r\n{{ ticket.description }}\r\n\r\nLa motivation de r\u00e9solution est:\r\n\r\n{{ resolution }}\r\n\r\n", + "subject": "(Ferm\u00e9)", + "template_name": "closed_cc" + } + }, + { + "pk": 52, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Ticket Ferm\u00e9", + "html": "

Bonjour,

\r\n\r\n

\r\nLe ticket suivant qui vous est actuellement assign\u00e9 a \u00e9t\u00e9 ferm\u00e9.

\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\u00e9 : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre \u00e0 jour (apr\u00e8s authentification)

\r\n\r\n

Pour m\u00e9moire, la description originelle \u00e9tait :

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

La motivation de r\u00e9solution est:

\r\n\r\n
{{ resolution }}
\r\n", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nLe ticket suivant qui vous est actuellement assign\u00e9 a \u00e9t\u00e9 ferm\u00e9.\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\u00e9 : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }} (authentification obligatoire)\r\n\r\nLa description originelle \u00e9tait :\r\n\r\n{{ ticket.description }}\r\n\r\nLa motivation de r\u00e9solution est:\r\n\r\n{{ resolution }}", + "subject": "(Ferm\u00e9 - \u00e0 vous)", + "template_name": "closed_owner" + } + }, + { + "pk": 53, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Ticket Ferm\u00e9", + "html": "

Bonjour,

\r\n\r\n

Vous avez r\u00e9cemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }}. Ce courriel vous confirme que ce ticket a \u00e9t\u00e9 ferm\u00e9.

\r\n\r\n

\r\n\r\n

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

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

\r\n\r\n

Si vous pensez que nous devons encore travailler sur ce probl\u00e8me, faites le nous savoir en r\u00e9pondant \u00e0 ce courriel en conservant le sujet tel-quel..

", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nVous avez r\u00e9cemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\". Ce courriel vous confirme que ce ticket a \u00e9t\u00e9 ferm\u00e9.\r\n\r\nSi vous pensez que nous devons encore travailler sur ce probl\u00e8me, faites le nous savoir en r\u00e9pondant \u00e0 ce courriel en conservant le sujet tel-quel.\r\n\r\nVous pouvez visualiser ce ticket en ligne, en vous rendant \u00e0 l'adresse {{ ticket.ticket_url }}.\r\n\r\nLa r\u00e9solution a \u00e9t\u00e9 motiv\u00e9e ainsi\u00a0:\r\n\r\n{{ ticket.resolution }}\r\n\r\n", + "subject": "(Ferm\u00e9)", + "template_name": "closed_submitter" + } + }, + { + "pk": 54, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Priorit\u00e9 du ticket augment\u00e9e", + "html": "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous pr\u00e9venir que le ticket {{ ticket.ticket }} ('{{ ticket.title }}') a vu sa priorit\u00e9 augment\u00e9 de mani\u00e8re 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\u00e9 : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre \u00e0 jour (apr\u00e8s authentification)

\r\n\r\n

Pour m\u00e9moire, la description originelle \u00e9tait :

\r\n\r\n
{{ ticket.description }}
", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nCe courriel indicatif permet de vous pr\u00e9venir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") a vu sa priorit\u00e9 augment\u00e9 de mani\u00e8re 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\u00e9 : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle \u00e9tait :\r\n\r\n{{ ticket.description }}\r\n", + "subject": "(Priorit\u00e9 augment\u00e9e)", + "template_name": "escalated_cc" + } + }, + { + "pk": 55, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Votre ticket a vu sa priorit\u00e9 augment\u00e9e", + "html": "

Bonjour,

\r\n\r\n

Vous avez r\u00e9cemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }} . Ce courriel vous informe que ce ticket a vu sa priorit\u00e9 augment\u00e9 de mani\u00e8re automatique, vu son d\u00e9lai de r\u00e9solution plus long que pr\u00e9vu.

\r\n\r\n

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

\r\n\r\n

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

", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\n\r\nVous avez r\u00e9cemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\". Ce courriel vous informe que ce ticket a vu sa priorit\u00e9 augment\u00e9 de mani\u00e8re automatique, vu son d\u00e9lai de r\u00e9solution plus long que pr\u00e9vu.\r\n\r\nNous allons reprendre rapidement ce ticket afin d'essayer de le r\u00e9soudre le plus vite possible.\r\n\r\nVous pouvez visualiser ce ticket en ligne, en vous rendant \u00e0 l'adresse {{ ticket.ticket_url }}.\r\n\r\n", + "subject": "(Priorit\u00e9 augment\u00e9e)", + "template_name": "escalated_submitter" + } + }, + { + "pk": 56, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Priorit\u00e9 de votre ticket augment\u00e9e", + "html": "

Bonjour,

\r\n\r\n

Un ticket qui vous est assign\u00e9 a vu sa priorit\u00e9 augment\u00e9 vu son d\u00e9lai de r\u00e9solution plus long que pr\u00e9vu.

\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\u00e9 : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre \u00e0 jour (apr\u00e8s authentification)

\r\n\r\n

Pour m\u00e9moire, la description originelle \u00e9tait :

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

Merci de reprendre ce ticket afin d'essayer de le r\u00e9soudre le plus vite possible..

", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nUn ticket qui vous est assign\u00e9 a vu sa priorit\u00e9 augment\u00e9 vu son d\u00e9lai de r\u00e9solution plus long que pr\u00e9vu.\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\u00e9 : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle \u00e9tait :\r\n\r\n{{ ticket.description }}\r\n\r\nMerci de reprendre ce ticket afin d'essayer de le r\u00e9soudre le plus vite possible.\r\n", + "subject": "(Priorit\u00e9 augment\u00e9e - \u00e0 vous)", + "template_name": "escalated_owner" + } + }, + { + "pk": 57, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Nouveau ticket ouvert", + "html": "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous pr\u00e9venir qu'un nouveau ticket a \u00e9t\u00e9 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\u00e9 : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre \u00e0 jour (apr\u00e8s authentification)

\r\n\r\n

Description :

\r\n\r\n
{{ ticket.description }}
", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nCe courriel indicatif permet de vous pr\u00e9venir qu'un nouveau ticket a \u00e9t\u00e9 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\u00e9 : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nDescription\u00a0:\r\n{{ ticket.description }}\r\n\r\n", + "subject": "(Ouvert)", + "template_name": "newticket_cc" + } + }, + { + "pk": 58, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Votre ticket est d\u00e9sormais ouvert", + "html": "

Bonjour,

\r\n\r\n

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

\r\n\r\n

{{ ticket.ticket }} et sera trait\u00e9 rapidement.

\r\n\r\n

Si vous voulez nous donner plus de d\u00e9tails ou si vous avez une question concernant ce ticket, merci d'inclure la r\u00e9f\u00e9rence {{ ticket.ticket }} dans le sujet du message. Le plus simple \u00e9tant d'utiliser la fonction 'r\u00e9pondre' de votre logiciel de messagerie.

\r\n\r\n

Vous pouvez visualiser ce ticket en ligne et y ajouter des informations ou des pi\u00e8ces jointes ainsi que voir les derni\u00e8res mies \u00e0 jour en vous rendant \u00e0 l'adresse {{ ticket.ticket_url }}.

\r\n\r\n

Nous allons traiter votre demande afin, si possible, de la r\u00e9soudre au plus vite. Vous recevrez des mise \u00e0 jour ou la r\u00e9ponse au ticket \u00e0 cette adresse mail.

", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nCe courriel permet de vous informer que nous avons re\u00e7u votre demande de support dont le sujet est \"{{ ticket.title }}\".\r\n\r\nVous n'avez rien de plus \u00e0 faire pour le moment. Votre ticket porte l'identifiant {{ ticket.ticket }} et sera trait\u00e9 rapidement.\r\n\r\nSi vous voulez nous donner plus de d\u00e9tails ou si vous avez une question concernant ce ticket, merci d'inclure la r\u00e9f\u00e9rence '{{ ticket.ticket }}' dans le sujet du message. Le plus simple \u00e9tant d'utiliser la fonction 'r\u00e9pondre' de votre logiciel de messagerie.\r\n\r\nVous pouvez visualiser ce ticket en ligne et y ajouter des informations ou des pi\u00e8ces jointes ainsi que voir les derni\u00e8res mies \u00e0 jour en vous rendant \u00e0 l'adresse {{ ticket.ticket_url }}.\r\n\r\nNous allons traiter votre demande afin, si possible, de la r\u00e9soudre au plus vite. Vous recevrez des mise \u00e0 jour ou la r\u00e9ponse au ticket \u00e0 cette adresse mail.", + "subject": "(Ouvert)", + "template_name": "newticket_submitter" + } + }, + { + "pk": 59, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Ticket r\u00e9solu", + "html": "

Bonjour,

\r\n\r\n

Le ticket suivant a \u00e9t\u00e9 r\u00e9solu.

\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\u00e9 : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre \u00e0 jour (apr\u00e8s authentification)

\r\n\r\n

Pour m\u00e9moire, la description originelle \u00e9tait :

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

La motivation de r\u00e9solution est:

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

\r\nCette information a \u00e9t\u00e9 envoy\u00e9 au cr\u00e9ateur 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 \u00e9t\u00e9 r\u00e9solu.\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\u00e9 : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle \u00e9tait :\r\n\r\n{{ ticket.description }}\r\n\r\nLa motivation de r\u00e9solution est:\r\n\r\n{{ resolution }}\r\n\r\nCette information a \u00e9t\u00e9 envoy\u00e9 au cr\u00e9ateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.\r\n\r\n", + "subject": "(R\u00e9solu)", + "template_name": "resolved_cc" + } + }, + { + "pk": 60, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Ticket r\u00e9solu", + "html": "

Bonjour,

\r\n\r\n

Un ticket qui vous est assign\u00e9 a \u00e9t\u00e9 r\u00e9solu.

\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\u00e9 : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre \u00e0 jour (apr\u00e8s authentification)

\r\n\r\n

Pour m\u00e9moire, la description originelle \u00e9tait :

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

La motivation de r\u00e9solution est:

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

\r\nCette information a \u00e9t\u00e9 envoy\u00e9 au cr\u00e9ateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.

", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nUn ticket qui vous est assign\u00e9 a \u00e9t\u00e9 r\u00e9solu.\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\u00e9 : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nLa description originelle \u00e9tait :\r\n\r\n{{ ticket.description }}\r\n\r\nLa motivation de r\u00e9solution est:\r\n\r\n{{ resolution }}\r\n\r\nCette information a \u00e9t\u00e9 envoy\u00e9 au cr\u00e9ateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.\r\n\r\n", + "subject": "(R\u00e9solu - \u00e0 vous)", + "template_name": "resolved_owner" + } + }, + { + "pk": 61, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Votre ticket a \u00e9t\u00e9 r\u00e9solu", + "html": "

Bonjour,

\r\n\r\n

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

\r\n\r\n

La solution suivante a \u00e9t\u00e9 donn\u00e9e 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\u00f9 si vous pensez que cette solution n'est pas adapt\u00e9e, merci de r\u00e9pondre \u00e0 ce mail en conservant le sujet tel-quel.

\r\n\r\n

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

", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nVous avez r\u00e9cemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\" . Ce message vous informe d'une r\u00e9solution de la demande.\r\n\r\nLa solution suivante a \u00e9t\u00e9 donn\u00e9e 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\u00f9 si vous pensez que cette solution n'est pas adapt\u00e9e, merci de r\u00e9pondre \u00e0 ce mail en conservant le sujet tel-quel.\r\n\r\nVous pouvez visualiser ce ticket en ligne, en vous rendant \u00e0 l'adresse {{ ticket.ticket_url }}.\r\n\r\n", + "subject": "(R\u00e9solu)", + "template_name": "resolved_submitter" + } + }, + { + "pk": 62, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Ticket mis \u00e0 jour", + "html": "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous pr\u00e9venir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} a \u00e9t\u00e9 mis \u00e0 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\u00e9 : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre \u00e0 jour (apr\u00e8s authentification)

\r\n\r\n

Pour m\u00e9moire, la description originelle \u00e9tait :

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

Le commentaire suivant a \u00e9t\u00e9 ajout\u00e9 :

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

Cette information {% if private %} n' a pas {% else %} a {% endif %} \u00e9t\u00e9 envoy\u00e9 par mail \u00e0 l'\u00e9metteur.

", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nCe courriel indicatif permet de vous pr\u00e9venir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} a \u00e9t\u00e9 mis \u00e0 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\u00e9 : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssign\u00e9 \u00e0 : {{ 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 \u00e9t\u00e9 ajout\u00e9\u00a0:\r\n\r\n{{ comment }}\r\n\r\nCette information {% if private %} n' a pas {% else %} a {% endif %} \u00e9t\u00e9 envoy\u00e9 par mail \u00e0 l'\u00e9metteur.\r\n\r\n", + "subject": "(Mis \u00e0 jour)", + "template_name": "updated_cc" + } + }, + { + "pk": 63, + "model": "helpdesk.emailtemplate", + "fields": { + "heading": "Ticket mis \u00e0 jour", + "html": "

Bonjour,

\r\n\r\n

Ce courriel indicatif permet de vous pr\u00e9venir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }}, qui vous est assign\u00e9, a \u00e9t\u00e9 mis \u00e0 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\u00e9 : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssign\u00e9 \u00e0 : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre \u00e0 jour (apr\u00e8s authentification)

\r\n\r\n

Pour m\u00e9moire, la description originelle \u00e9tait :

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

Le commentaire suivant a \u00e9t\u00e9 ajout\u00e9 :

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

Cette information {% if private %} n' a pas {% else %} a {% endif %} \u00e9t\u00e9 envoy\u00e9 par mail \u00e0 l'\u00e9metteur.

", + "locale": "fr", + "plain_text": "Hello,\r\n\r\nCe courriel indicatif permet de vous pr\u00e9venir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }}, qui vous est assign\u00e9, a \u00e9t\u00e9 mis \u00e0 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\u00e9 : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssign\u00e9 \u00e0 : {{ 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 \u00e9t\u00e9 ajout\u00e9 :\r\n\r\n{{ comment }}\r\n\r\nCette information {% if private %} n' a pas {% else %} a {% endif %} \u00e9t\u00e9 envoy\u00e9 par mail \u00e0 l'\u00e9metteur.\r\n\r\n", + "subject": "(Mis \u00e0 jour - \u00e0 vous)", + "template_name": "updated_owner" + } + }, + { + "model": "helpdesk.emailtemplate", + "pk": 64, + "fields": { + "heading": "Votre ticket a \u00e9t\u00e9 mis \u00e0 jour", + "html": "

Bonjour,

\r\n\r\n

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

\r\n\r\n

Le commentaire suivant a \u00e9t\u00e9 ajout\u00e9 au ticket {{ ticket.ticket }}:

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

{{ ticket.ticket_url }}.

", + "locale": "fr", + "plain_text": "Bonjour,\r\n\r\nVous avez r\u00e9cemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\". Ce message vous informe d'une mise \u00e0 jour du ticket.\r\n\r\nLe commentaire suivant a \u00e9t\u00e9 ajout\u00e9 au ticket {{ ticket.ticket }}\u00a0:\r\n\r\n{{ comment }}\r\n\r\nSi vous voulez nous fournir d'autres informations, merci de r\u00e9pondre \u00e0 ce mail en conservant le sujet tel-quel. Vous pouvez \u00e9galement voir et mettre \u00e0 jour ce ticket en ligne \u00e0 l'adresse {{ ticket.ticket_url }}", + "subject": "(Mis \u00e0 jour)", + "template_name": "updated_submitter" + } } ] diff --git a/helpdesk/templates/helpdesk/fr/email_html_base.html b/helpdesk/templates/helpdesk/fr/email_html_base.html new file mode 100644 index 00000000..02415ba1 --- /dev/null +++ b/helpdesk/templates/helpdesk/fr/email_html_base.html @@ -0,0 +1,9 @@ +

{% block header %}Helpdesk{% endblock %}

+ +{% block content %}{% endblock %} + +

Cordialement,

+ +

{{ queue.title }}{% if queue.email_address %}
{{ queue.email_address }}{% endif %}

+ +

Ce courriel vous a été envoyé en tant qu'utilisateur de notre service de support, en accord avec notre politique de confidentialité. Merci de nous informer si vous pensez que ce message ne vous était pas destiné.

diff --git a/helpdesk/templates/helpdesk/fr/email_text_footer.txt b/helpdesk/templates/helpdesk/fr/email_text_footer.txt new file mode 100644 index 00000000..b1ceeaa3 --- /dev/null +++ b/helpdesk/templates/helpdesk/fr/email_text_footer.txt @@ -0,0 +1,6 @@ +Cordialement, + +{{ queue.title }}{% if queue.email_address %} +{{ queue.email_address }}{% endif %} + +Ce courriel vous a été envoyé en tant qu'utilisateur de notre service de support, en accord avec notre politique de confidentialité. Merci de nous informer si vous pensez que ce message ne vous était pas destiné. From 7b594cfdc0049a1e5fc7ae8930c955a84f06bf45 Mon Sep 17 00:00:00 2001 From: Alex Garel Date: Thu, 10 Nov 2011 12:19:57 +0100 Subject: [PATCH 07/11] Added a warning if no message notification template found in database --- helpdesk/lib.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/helpdesk/lib.py b/helpdesk/lib.py index 05469588..e1f83e70 100644 --- a/helpdesk/lib.py +++ b/helpdesk/lib.py @@ -17,6 +17,9 @@ try: except ImportError: from base64 import decodestring as b64decode +import logging +logger = logging.getLogger('helpdesk') + from django.utils.encoding import smart_str def send_templated_mail(template_name, email_context, recipients, sender=None, bcc=None, fail_silently=False, files=None): @@ -66,6 +69,8 @@ def send_templated_mail(template_name, email_context, recipients, sender=None, b try: t = EmailTemplate.objects.get(template_name__iexact=template_name, locale__isnull=True) except EmailTemplate.DoesNotExist: + logger.warning('template "%s" does not exist, no mail sent' % + template_name) return # just ignore if template doesn't exist if not sender: From 5000413bf055d0adb2bd66f9a2a5196c5b13f381 Mon Sep 17 00:00:00 2001 From: Alex Garel Date: Thu, 10 Nov 2011 17:36:58 +0100 Subject: [PATCH 08/11] fixes in french mail templates (passed all through tidy) --- helpdesk/fixtures/initial_data.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/helpdesk/fixtures/initial_data.json b/helpdesk/fixtures/initial_data.json index 8f6a5ed9..a8bbffe5 100644 --- a/helpdesk/fixtures/initial_data.json +++ b/helpdesk/fixtures/initial_data.json @@ -628,7 +628,7 @@ "model": "helpdesk.emailtemplate", "fields": { "heading": "Ticket Ferm\u00e9", - "html": "

Bonjour,

\r\n\r\n

Vous avez r\u00e9cemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }}. Ce courriel vous confirme que ce ticket a \u00e9t\u00e9 ferm\u00e9.

\r\n\r\n

\r\n\r\n

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

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

\r\n\r\n

Si vous pensez que nous devons encore travailler sur ce probl\u00e8me, faites le nous savoir en r\u00e9pondant \u00e0 ce courriel en conservant le sujet tel-quel..

", + "html": "

Bonjour,

\r\n\r\n

Vous avez r\u00e9cemment ouvert chez nous un ticket dont le sujet est {{ ticket.title }}. Ce courriel vous confirme que ce ticket a \u00e9t\u00e9 ferm\u00e9.

\r\n\r\n

\"La r\u00e9solution a \u00e9t\u00e9 motiv\u00e9e ainsi :

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

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

\r\n\r\n

Si vous pensez que nous devons encore travailler sur ce probl\u00e8me, faites le nous savoir en r\u00e9pondant \u00e0 ce courriel en conservant le sujet tel-quel..

", "locale": "fr", "plain_text": "Bonjour,\r\n\r\nVous avez r\u00e9cemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\". Ce courriel vous confirme que ce ticket a \u00e9t\u00e9 ferm\u00e9.\r\n\r\nSi vous pensez que nous devons encore travailler sur ce probl\u00e8me, faites le nous savoir en r\u00e9pondant \u00e0 ce courriel en conservant le sujet tel-quel.\r\n\r\nVous pouvez visualiser ce ticket en ligne, en vous rendant \u00e0 l'adresse {{ ticket.ticket_url }}.\r\n\r\nLa r\u00e9solution a \u00e9t\u00e9 motiv\u00e9e ainsi\u00a0:\r\n\r\n{{ ticket.resolution }}\r\n\r\n", "subject": "(Ferm\u00e9)", @@ -688,7 +688,7 @@ "model": "helpdesk.emailtemplate", "fields": { "heading": "Votre ticket est d\u00e9sormais ouvert", - "html": "

Bonjour,

\r\n\r\n

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

\r\n\r\n

{{ ticket.ticket }} et sera trait\u00e9 rapidement.

\r\n\r\n

Si vous voulez nous donner plus de d\u00e9tails ou si vous avez une question concernant ce ticket, merci d'inclure la r\u00e9f\u00e9rence {{ ticket.ticket }} dans le sujet du message. Le plus simple \u00e9tant d'utiliser la fonction 'r\u00e9pondre' de votre logiciel de messagerie.

\r\n\r\n

Vous pouvez visualiser ce ticket en ligne et y ajouter des informations ou des pi\u00e8ces jointes ainsi que voir les derni\u00e8res mies \u00e0 jour en vous rendant \u00e0 l'adresse {{ ticket.ticket_url }}.

\r\n\r\n

Nous allons traiter votre demande afin, si possible, de la r\u00e9soudre au plus vite. Vous recevrez des mise \u00e0 jour ou la r\u00e9ponse au ticket \u00e0 cette adresse mail.

", + "html": "

Bonjour,

\r\n\r\n

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

\r\n\r\n

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

\r\n\r\n

Si vous voulez nous donner plus de d\u00e9tails ou si vous avez une question concernant ce ticket, merci d'inclure la r\u00e9f\u00e9rence {{ ticket.ticket }} dans le sujet du message. Le plus simple \u00e9tant d'utiliser la fonction 'r\u00e9pondre' de votre logiciel de messagerie.

\r\n\r\n

Vous pouvez visualiser ce ticket en ligne et y ajouter des informations ou des pi\u00e8ces jointes ainsi que voir les derni\u00e8res mies \u00e0 jour en vous rendant \u00e0 l'adresse {{ ticket.ticket_url }}.

\r\n\r\n

Nous allons traiter votre demande afin, si possible, de la r\u00e9soudre au plus vite. Vous recevrez des mise \u00e0 jour ou la r\u00e9ponse au ticket \u00e0 cette adresse mail.

", "locale": "fr", "plain_text": "Bonjour,\r\n\r\nCe courriel permet de vous informer que nous avons re\u00e7u votre demande de support dont le sujet est \"{{ ticket.title }}\".\r\n\r\nVous n'avez rien de plus \u00e0 faire pour le moment. Votre ticket porte l'identifiant {{ ticket.ticket }} et sera trait\u00e9 rapidement.\r\n\r\nSi vous voulez nous donner plus de d\u00e9tails ou si vous avez une question concernant ce ticket, merci d'inclure la r\u00e9f\u00e9rence '{{ ticket.ticket }}' dans le sujet du message. Le plus simple \u00e9tant d'utiliser la fonction 'r\u00e9pondre' de votre logiciel de messagerie.\r\n\r\nVous pouvez visualiser ce ticket en ligne et y ajouter des informations ou des pi\u00e8ces jointes ainsi que voir les derni\u00e8res mies \u00e0 jour en vous rendant \u00e0 l'adresse {{ ticket.ticket_url }}.\r\n\r\nNous allons traiter votre demande afin, si possible, de la r\u00e9soudre au plus vite. Vous recevrez des mise \u00e0 jour ou la r\u00e9ponse au ticket \u00e0 cette adresse mail.", "subject": "(Ouvert)", @@ -760,7 +760,7 @@ "pk": 64, "fields": { "heading": "Votre ticket a \u00e9t\u00e9 mis \u00e0 jour", - "html": "

Bonjour,

\r\n\r\n

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

\r\n\r\n

Le commentaire suivant a \u00e9t\u00e9 ajout\u00e9 au ticket {{ ticket.ticket }}:

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

{{ ticket.ticket_url }}.

", + "html": "

Bonjour,

\r\n\r\n

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

\r\n\r\n

Le commentaire suivant a \u00e9t\u00e9 ajout\u00e9 au ticket {{ ticket.ticket }}:

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

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

", "locale": "fr", "plain_text": "Bonjour,\r\n\r\nVous avez r\u00e9cemment ouvert chez nous un ticket dont le sujet est \"{{ ticket.title }}\". Ce message vous informe d'une mise \u00e0 jour du ticket.\r\n\r\nLe commentaire suivant a \u00e9t\u00e9 ajout\u00e9 au ticket {{ ticket.ticket }}\u00a0:\r\n\r\n{{ comment }}\r\n\r\nSi vous voulez nous fournir d'autres informations, merci de r\u00e9pondre \u00e0 ce mail en conservant le sujet tel-quel. Vous pouvez \u00e9galement voir et mettre \u00e0 jour ce ticket en ligne \u00e0 l'adresse {{ ticket.ticket_url }}", "subject": "(Mis \u00e0 jour)", From a6f7bd8a25cfc0c4421decfe65859a2218b9e10d Mon Sep 17 00:00:00 2001 From: Alex Garel Date: Thu, 10 Nov 2011 18:10:17 +0100 Subject: [PATCH 09/11] added css class on ticket actions in ticket_desc_table --- helpdesk/templates/helpdesk/ticket_desc_table.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helpdesk/templates/helpdesk/ticket_desc_table.html b/helpdesk/templates/helpdesk/ticket_desc_table.html index 01239590..b135a6b1 100644 --- a/helpdesk/templates/helpdesk/ticket_desc_table.html +++ b/helpdesk/templates/helpdesk/ticket_desc_table.html @@ -1,6 +1,6 @@ {% load i18n %} - + From b74f6914b28833d27e10c4add5766a3d63f4a19d Mon Sep 17 00:00:00 2001 From: demo Date: Mon, 28 Nov 2011 18:13:07 +0100 Subject: [PATCH 10/11] handle the case when recipients is not str but unicode --- helpdesk/lib.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/helpdesk/lib.py b/helpdesk/lib.py index e1f83e70..287906e8 100644 --- a/helpdesk/lib.py +++ b/helpdesk/lib.py @@ -61,6 +61,7 @@ def send_templated_mail(template_name, email_context, recipients, sender=None, b t = None try: + import pdb;pdb.set_trace() t = EmailTemplate.objects.get(template_name__iexact=template_name, locale=locale) except EmailTemplate.DoesNotExist: pass @@ -101,9 +102,8 @@ def send_templated_mail(template_name, email_context, recipients, sender=None, b "{{ ticket.ticket }} {{ ticket.title|safe }} %s" % t.subject ).render(context) - if type(recipients) == str: - if recipients.find(','): - recipients = recipients.split(',') + if isinstance(recipients,(str,unicode)): + recipients = recipients.split(',') elif type(recipients) != list: recipients = [recipients,] From 049b75182b02988731d394a49e580eef96f2c9d5 Mon Sep 17 00:00:00 2001 From: demo Date: Mon, 28 Nov 2011 18:53:01 +0100 Subject: [PATCH 11/11] removed forgotten pdb --- helpdesk/lib.py | 1 - 1 file changed, 1 deletion(-) diff --git a/helpdesk/lib.py b/helpdesk/lib.py index 287906e8..5a3960f5 100644 --- a/helpdesk/lib.py +++ b/helpdesk/lib.py @@ -61,7 +61,6 @@ def send_templated_mail(template_name, email_context, recipients, sender=None, b t = None try: - import pdb;pdb.set_trace() t = EmailTemplate.objects.get(template_name__iexact=template_name, locale=locale) except EmailTemplate.DoesNotExist: pass
{{ ticket.id }}. {{ ticket.title }} [{{ ticket.get_status }}] EditDelete{% if ticket.on_hold %}{% trans "Unhold" %}{% else %}{% trans "Hold" %}{% endif %}
{{ ticket.id }}. {{ ticket.title }} [{{ ticket.get_status }}] EditDelete{% if ticket.on_hold %}{% trans "Unhold" %}{% else %}{% trans "Hold" %}{% endif %}
{% blocktrans with ticket.queue as queue %}Queue: {{ queue }}{% endblocktrans %}