Merge pull request #1 from django-helpdesk/0.2.x

sync 0.2.x
This commit is contained in:
nitr0man 2020-10-19 22:47:09 +03:00 committed by GitHub
commit b126ccc7b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 2764 additions and 1681 deletions

View File

@ -7,7 +7,7 @@ django-helpdesk - A Django powered ticket tracker for small businesses.
.. image:: https://codecov.io/gh/django-helpdesk/django-helpdesk/branch/master/graph/badge.svg .. image:: https://codecov.io/gh/django-helpdesk/django-helpdesk/branch/master/graph/badge.svg
:target: https://codecov.io/gh/django-helpdesk/django-helpdesk :target: https://codecov.io/gh/django-helpdesk/django-helpdesk
Copyright 2009-2019 Ross Poulton and django-helpdesk contributors. All Rights Reserved. Copyright 2009-2020 Ross Poulton and django-helpdesk contributors. All Rights Reserved.
See LICENSE for details. See LICENSE for details.
django-helpdesk was formerly known as Jutda Helpdesk, named after the django-helpdesk was formerly known as Jutda Helpdesk, named after the

View File

@ -13,7 +13,7 @@ project_root = os.path.dirname(here)
NAME = 'django-helpdesk-demodesk' NAME = 'django-helpdesk-demodesk'
DESCRIPTION = 'A demo Django project using django-helpdesk' DESCRIPTION = 'A demo Django project using django-helpdesk'
README = open(os.path.join(here, 'README.rst')).read() README = open(os.path.join(here, 'README.rst')).read()
VERSION = '0.2.19' VERSION = '0.2.22'
#VERSION = open(os.path.join(project_root, 'VERSION')).read().strip() #VERSION = open(os.path.join(project_root, 'VERSION')).read().strip()
AUTHOR = 'django-helpdesk team' AUTHOR = 'django-helpdesk team'
URL = 'https://github.com/django-helpdesk/django-helpdesk' URL = 'https://github.com/django-helpdesk/django-helpdesk'

View File

@ -1,12 +1,12 @@
Configuration 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. 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. 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``) 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. 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,7 +17,7 @@ Before django-helpdesk will be much use, you need to do some basic configuration
This will run the e-mail import every 5 minutes 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:: 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::
@ -42,3 +42,31 @@ 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 <https://github.com/django-helpdesk/django-helpdesk/issues/new>`_. 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 <https://github.com/django-helpdesk/django-helpdesk/issues/new>`_.
You're now up and running! Happy ticketing. 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.
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``.
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*.

View File

@ -100,11 +100,11 @@ errors with trying to create User settings.
(substitute www-data for the user / group that your web server runs as, eg 'apache' or 'httpd') (substitute www-data for the user / group that your web server runs as, eg 'apache' or 'httpd')
If all else fails ensure all users can write to it:: If all else fails, you could ensure all users can write to it::
chmod 777 attachments/ chmod 777 attachments/
This is NOT recommended, especially if you're on a shared server. But this is NOT recommended, especially if you're on a shared server.
6. Ensure that your ``attachments`` folder has directory listings turned off, to ensure users don't download files that they are not specifically linked to from their tickets. 6. Ensure that your ``attachments`` folder has directory listings turned off, to ensure users don't download files that they are not specifically linked to from their tickets.

View File

@ -82,6 +82,10 @@ These changes are visible throughout django-helpdesk
**Default:** ``HELPDESK_EMAIL_FALLBACK_LOCALE = "en"`` **Default:** ``HELPDESK_EMAIL_FALLBACK_LOCALE = "en"``
- **HELPDESK_MAX_EMAIL_ATTACHMENT_SIZE** Maximum size, in bytes, of file attachments that will be sent via email
**Default:** ``HELPDESK_MAX_EMAIL_ATTACHMENT_SIZE = 512000``
- **QUEUE_EMAIL_BOX_UPDATE_ONLY** Only process mail with a valid tracking ID; all other mail will be ignored instead of creating a new ticket. - **QUEUE_EMAIL_BOX_UPDATE_ONLY** Only process mail with a valid tracking ID; all other mail will be ignored instead of creating a new ticket.
**Default:** ``QUEUE_EMAIL_BOX_UPDATE_ONLY = False`` **Default:** ``QUEUE_EMAIL_BOX_UPDATE_ONLY = False``

View File

@ -157,8 +157,8 @@ class Akismet(object):
``Akismet`` instance. ``Akismet`` instance.
""" """
if key is None and isfile('apikey.txt'): if key is None and isfile('apikey.txt'):
the_file = [l.strip() for l in open('apikey.txt').readlines() the_file = [line.strip() for line in open('apikey.txt').readlines()
if l.strip() and not l.strip().startswith('#')] if line.strip() and not line.strip().startswith('#')]
try: try:
self.key = the_file[0] self.key = the_file[0]
self.blog_url = the_file[1] self.blog_url = the_file[1]

View File

@ -28,9 +28,9 @@
"heading" : "Ticket Closed", "heading" : "Ticket Closed",
"subject" : "(Closed)", "subject" : "(Closed)",
"template_name" : "closed_cc", "template_name" : "closed_cc",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Hello,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ticket <i>{{ ticket.title }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, assigned to {{ ticket.get_assigned_to }}{% endif %} has been closed.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Queue</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Opened</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Submitter</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priority</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Status</b>: {{ ticket.get_status }}<br>\r\n<b>Assigned to</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>View Online</a></b> to update this ticket (login required)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Just for reference, the original ticket description was:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">The resolution provided was:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">If you wish to view this ticket online, you can visit <a href='{{ ticket.staff_url }}'>{{ ticket.staff_url }}</a>.</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Hello,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ticket <i>{{ ticket.ticket }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, assigned to {{ ticket.get_assigned_to }}{% endif %} has been closed.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Queue</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Opened</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Submitter</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priority</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Status</b>: {{ ticket.get_status }}<br>\r\n<b>Assigned to</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>View Online</a></b> to update this ticket (login required)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Just for reference, the original ticket description was:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">The resolution provided was:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">If you wish to view this ticket online, you can visit <a href='{{ ticket.staff_url }}'>{{ ticket.staff_url }}</a>.</p>",
"locale" : "en", "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, "pk" : 3,
"model" : "helpdesk.emailtemplate" "model" : "helpdesk.emailtemplate"
@ -222,7 +222,7 @@
"template_name" : "closed_cc", "template_name" : "closed_cc",
"subject" : " ", "subject" : " ",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Здравствуйте,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Заявка <i>{{ ticket.title }}</i> (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, присвоенная {{ ticket.get_assigned_to }}{% endif %} была закрыта.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>ID заявки</b>: {{ ticket.ticket }}<br>\r\n<b>Очередь</b>: {{ queue.title }}<br>\r\n<b>Заголовок</b>: {{ ticket.title }}<br>\r\n<b>Создана</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Автор заявки</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Приоритет</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Статус</b>: {{ ticket.get_status }}<br>\r\n<b>Присвоена</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href=\"{{ ticket.staff_url }}\">Перейти к заявке</a></b> to оставить комментарий (требуется авторизация)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Изначальное описание:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;>{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=font-family: sans-serif; font-size: 1em;\">Было принято следующее решение:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Перейти к заявке <a href=\"{{ ticket.staff_url }}\">{{ ticket.staff_url }}</a>.</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Здравствуйте,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Заявка <i>{{ ticket.title }}</i> (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, присвоенная {{ ticket.get_assigned_to }}{% endif %} была закрыта.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>ID заявки</b>: {{ ticket.ticket }}<br>\r\n<b>Очередь</b>: {{ queue.title }}<br>\r\n<b>Заголовок</b>: {{ ticket.title }}<br>\r\n<b>Создана</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Автор заявки</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Приоритет</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Статус</b>: {{ ticket.get_status }}<br>\r\n<b>Присвоена</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href=\"{{ ticket.staff_url }}\">Перейти к заявке</a></b> to оставить комментарий (требуется авторизация)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Изначальное описание:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;>{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=font-family: sans-serif; font-size: 1em;\">Было принято следующее решение:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Перейти к заявке <a href=\"{{ ticket.staff_url }}\">{{ ticket.staff_url }}</a>.</p>",
"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" "locale" : "ru"
}, },
"pk" : 19 "pk" : 19
@ -413,9 +413,9 @@
"template_name" : "closed_cc", "template_name" : "closed_cc",
"heading" : "Ticket geschlossen", "heading" : "Ticket geschlossen",
"subject" : "(Geschlossen)", "subject" : "(Geschlossen)",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Hallo,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ticket <i>{{ ticket.title }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, zugewiesen an {{ ticket.get_assigned_to }}{% endif %} wurde geschlossen.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Ticketsammlung</b>: {{ queue.title }}<br>\r\n<b>Titel</b>: {{ ticket.title }}<br>\r\n<b>Eröffnet</b>: {{ ticket.created|date:\"l, j. N Y, \\u\\m H:i\" }}<br>\r\n<b>Ersteller</b>: {{ ticket.submitter_email|default:\"Unbekannt\" }}<br>\r\n<b>Priorität</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Status</b>: {{ ticket.get_status }}<br>\r\n<b>Zugewiesen an</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Online ansehen</a></b> um dieses Ticket zu aktualisieren (Login erforderlich)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Die ursprüngliche Ticketbeschreibung war:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Die Lösung war:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Sie können dieses Ticket unter folgendem Link online ansehen: <a href='{{ ticket.staff_url }}'>{{ ticket.staff_url }}</a>.</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Hallo,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ticket <i>{{ ticket.ticket }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, zugewiesen an {{ ticket.get_assigned_to }}{% endif %} wurde geschlossen.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Ticketsammlung</b>: {{ queue.title }}<br>\r\n<b>Titel</b>: {{ ticket.title }}<br>\r\n<b>Eröffnet</b>: {{ ticket.created|date:\"l, j. N Y, \\u\\m H:i\" }}<br>\r\n<b>Ersteller</b>: {{ ticket.submitter_email|default:\"Unbekannt\" }}<br>\r\n<b>Priorität</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Status</b>: {{ ticket.get_status }}<br>\r\n<b>Zugewiesen an</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Online ansehen</a></b> um dieses Ticket zu aktualisieren (Login erforderlich)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Die ursprüngliche Ticketbeschreibung war:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Die Lösung war:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Sie können dieses Ticket unter folgendem Link online ansehen: <a href='{{ ticket.staff_url }}'>{{ ticket.staff_url }}</a>.</p>",
"locale" : "de", "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 "pk" : 35
}, },
@ -579,11 +579,11 @@
"model" : "helpdesk.emailtemplate", "model" : "helpdesk.emailtemplate",
"fields" : { "fields" : {
"locale" : "fr", "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é", "heading" : "Ticket Assigné",
"subject" : "(Assigné)", "subject" : "(Assigné)",
"template_name" : "assigned_cc", "template_name" : "assigned_cc",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ce courriel indicatif permet de vous prévenir que le ticket <a href=\"{{ ticket.staff_url }}\"><b>{{ ticket.ticket }}</b></a> (<em>{{ ticket.title }}</em>) par {{ ticket.submitter_email }} {% if ticket.assigned_to %}a été assigné à {{ ticket.assigned_to }}{% else %} n'est plus assigné à personne{% endif %}.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>" "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ce courriel indicatif permet de vous prévenir que le ticket <a href=\"{{ ticket.staff_url }}\"><b>{{ ticket.ticket }}</b></a> (<em>{{ ticket.title }}</em>) par {{ ticket.submitter_email }} {% if ticket.assigned_to %}a été assigné à {{ ticket.assigned_to }}{% else %} n'est plus assigné à personne{% endif %}.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l j F Y à H:i\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Inconnu\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>"
}, },
"pk" : 49 "pk" : 49
}, },
@ -591,22 +591,22 @@
"pk" : 50, "pk" : 50,
"fields" : { "fields" : {
"locale" : "fr", "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", "template_name" : "assigned_owner",
"heading" : "Le ticket vous est assigné", "heading" : "Le ticket vous est assigné",
"subject" : "(Pour vous)", "subject" : "(Pour vous)",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ce courriel indicatif permet de vous prévenir que le ticket <a href=\"{{ ticket.staff_url }}\"><b>{{ ticket.ticket }}</b></a> (<em>{{ ticket.title }}</em>) pour {{ ticket.submitter_email }} <b>vous</b> a été assigné.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>" "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ce courriel indicatif permet de vous prévenir que le ticket <a href=\"{{ ticket.staff_url }}\"><b>{{ ticket.ticket }}</b></a> (<em>{{ ticket.title }}</em>) pour {{ ticket.submitter_email }} <b>vous</b> a été assigné.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l j F Y à H:i\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Inconnu\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>"
}, },
"model" : "helpdesk.emailtemplate" "model" : "helpdesk.emailtemplate"
}, },
{ {
"pk" : 51, "pk" : 51,
"fields" : { "fields" : {
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Le ticket <i>{{ ticket.title }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, assigné à {{ ticket.get_assigned_to }}{% endif %} a été fermé.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La motivation de résolution est:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Le ticket <i>{{ ticket.ticket }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, assigné à {{ ticket.get_assigned_to }}{% endif %} a été fermé.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l j F Y à H:i\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Inconnu\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La résolution est :</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>",
"heading" : "Ticket Fermé", "heading" : "Ticket Fermé",
"subject" : "(Fermé)", "subject" : "(Fermé)",
"template_name" : "closed_cc", "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" "locale" : "fr"
}, },
"model" : "helpdesk.emailtemplate" "model" : "helpdesk.emailtemplate"
@ -615,18 +615,18 @@
"model" : "helpdesk.emailtemplate", "model" : "helpdesk.emailtemplate",
"pk" : 52, "pk" : 52,
"fields" : { "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", "locale" : "fr",
"subject" : "(Fermé - à vous)", "subject" : "(Fermé - à vous)",
"heading" : "Ticket Fermé", "heading" : "Ticket Fermé",
"template_name" : "closed_owner", "template_name" : "closed_owner",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\nLe ticket suivant qui vous est actuellement assigné a été fermé.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La motivation de résolution est:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n" "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\nLe ticket suivant qui vous est actuellement assigné a été fermé.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l j F Y à H:i\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Inconnu\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La résolution est :</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n"
} }
}, },
{ {
"model" : "helpdesk.emailtemplate", "model" : "helpdesk.emailtemplate",
"fields" : { "fields" : {
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Vous avez récemment ouvert chez nous un ticket dont le sujet est <i>{{ ticket.title }}</i>. Ce courriel vous confirme que ce ticket a été fermé.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;>\"La résolution a été motivée ainsi&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Vous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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..</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Vous avez récemment ouvert chez nous un ticket dont le sujet est <i>{{ ticket.title }}</i>. Ce courriel vous confirme que ce ticket a été fermé.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La résolution a été motivée ainsi&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Vous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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..</p>",
"heading" : "Ticket Fermé", "heading" : "Ticket Fermé",
"subject" : "(Fermé)", "subject" : "(Fermé)",
"template_name" : "closed_submitter", "template_name" : "closed_submitter",
@ -639,12 +639,12 @@
"model" : "helpdesk.emailtemplate", "model" : "helpdesk.emailtemplate",
"pk" : 54, "pk" : 54,
"fields" : { "fields" : {
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ce courriel indicatif permet de vous prévenir que le ticket <i>{{ ticket.ticket }}</i> ('{{ ticket.title }}') a vu sa priorité augmenté de manière automatique.</p>\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ce courriel indicatif permet de vous prévenir que le ticket <i>{{ ticket.ticket }}</i> ('{{ ticket.title }}') a vu sa priorité augmenté de manière automatique.</p>\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l j F Y à H:i\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Inconnu\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>",
"heading" : "Priorité du ticket augmentée", "heading" : "Priorité du ticket augmentée",
"subject" : "(Priorité augmentée)", "subject" : "(Priorité augmentée)",
"template_name" : "escalated_cc", "template_name" : "escalated_cc",
"locale" : "fr", "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"
} }
}, },
{ {
@ -665,20 +665,20 @@
"template_name" : "escalated_owner", "template_name" : "escalated_owner",
"heading" : "Priorité de votre ticket augmentée", "heading" : "Priorité de votre ticket augmentée",
"subject" : "(Priorité augmentée - à vous)", "subject" : "(Priorité augmentée - à vous)",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Un ticket qui vous est assigné a vu sa priorité augmenté vu son délai de résolution plus long que prévu.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Merci de reprendre ce ticket afin d'essayer de le résoudre le plus vite possible..</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Un ticket qui vous est assigné a vu sa priorité augmenté vu son délai de résolution plus long que prévu.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l j F Y à H:i\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Inconnu\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Merci de reprendre ce ticket afin d'essayer de le résoudre le plus vite possible..</p>",
"locale" : "fr", "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" "model" : "helpdesk.emailtemplate"
}, },
{ {
"fields" : { "fields" : {
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ce courriel indicatif permet de vous prévenir qu'un nouveau ticket a été ouvert.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Description&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ce courriel indicatif permet de vous prévenir qu'un nouveau ticket a été ouvert.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l j F Y à H:i\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Inconnu\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Description&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>",
"heading" : "Nouveau ticket ouvert", "heading" : "Nouveau ticket ouvert",
"subject" : "(Ouvert)", "subject" : "(Ouvert)",
"template_name" : "newticket_cc", "template_name" : "newticket_cc",
"locale" : "fr", "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, "pk" : 57,
"model" : "helpdesk.emailtemplate" "model" : "helpdesk.emailtemplate"
@ -686,11 +686,11 @@
{ {
"model" : "helpdesk.emailtemplate", "model" : "helpdesk.emailtemplate",
"fields" : { "fields" : {
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ce courriel permet de vous informer que nous avons reçu votre demande de support dont le sujet est <i>{{ ticket.title }}</i>.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;>\"Vous n'avez rien de plus à faire pour le moment. Votre ticket porte l'identifiant <b>{{ ticket.ticket }}</b> et sera traité rapidement.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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 <b>{{ ticket.ticket }}</b> dans le sujet du message. Le plus simple étant d'utiliser la fonction 'répondre' de votre logiciel de messagerie.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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 <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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.</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ce courriel permet de vous informer que nous avons reçu votre demande de support dont le sujet est <i>{{ ticket.title }}</i>.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Vous n'avez rien de plus à faire pour le moment. Votre ticket porte l'identifiant <b>{{ ticket.ticket }}</b> et sera traité rapidement.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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 <b>{{ ticket.ticket }}</b> dans le sujet du message. Le plus simple étant d'utiliser la fonction 'répondre' de votre logiciel de messagerie.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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 <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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.</p>",
"heading" : "Votre ticket est désormais ouvert", "heading" : "Votre ticket est désormais ouvert",
"subject" : "(Ouvert)", "subject" : "(Ouvert)",
"template_name" : "newticket_submitter", "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" "locale" : "fr"
}, },
"pk" : 58 "pk" : 58
@ -702,9 +702,9 @@
"template_name" : "resolved_cc", "template_name" : "resolved_cc",
"heading" : "Ticket résolu", "heading" : "Ticket résolu",
"subject" : "(Résolu)", "subject" : "(Résolu)",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Le ticket suivant a été résolu.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La motivation de résolution est:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\nCette information a été envoyé au créateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Le ticket suivant a été résolu.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l j F Y à H:i\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Inconnu\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La résolution est :</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\nCette information a été envoyée au créateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.</p>",
"locale" : "fr", "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)", "subject" : "(Résolu - à vous)",
"heading" : "Ticket résolu", "heading" : "Ticket résolu",
"template_name" : "resolved_owner", "template_name" : "resolved_owner",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Un ticket qui vous est assigné a été résolu.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La motivation de résolution est:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\nCette information a été envoyé au créateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Un ticket qui vous est assigné a été résolu.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l j F Y à H:i\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Inconnu\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La résolution est :</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\nCette information a été envoyée au créateur de ce ticket, qui la confirmera avant que vous puissiez fermer ce ticket.</p>",
"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", "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" "locale" : "fr"
} }
}, },
@ -723,23 +723,23 @@
"model" : "helpdesk.emailtemplate", "model" : "helpdesk.emailtemplate",
"pk" : 61, "pk" : 61,
"fields" : { "fields" : {
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Vous avez récemment ouvert chez nous un ticket dont le sujet est <i>{{ ticket.title }}</i>. Ce message vous informe d'une résolution de la demande.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La solution suivante a été donnée au ticket <b>{{ ticket.ticket }}</b>:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Vous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Vous avez récemment ouvert chez nous un ticket dont le sujet est <i>{{ ticket.title }}</i>. Ce message vous informe d'une résolution de la demande.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La solution suivante a été donnée au ticket <b>{{ ticket.ticket }}</b>:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Vous pouvez visualiser ce ticket en ligne, en vous rendant à l'adresse <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>",
"heading" : "Votre ticket a été résolu", "heading" : "Votre ticket a été résolu",
"template_name" : "resolved_submitter", "template_name" : "resolved_submitter",
"subject" : "(Résolu)", "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" "locale" : "fr"
} }
}, },
{ {
"model" : "helpdesk.emailtemplate", "model" : "helpdesk.emailtemplate",
"fields" : { "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", "locale" : "fr",
"heading" : "Ticket mis à jour", "heading" : "Ticket mis à jour",
"subject" : "(Mis à jour)", "subject" : "(Mis à jour)",
"template_name" : "updated_cc", "template_name" : "updated_cc",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ce courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} a été mis à jour.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Le commentaire suivant a été ajouté :</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ comment }}</blockquote>\r\n\r\n<p style=\"font-family: Tahoma, Arial, sans-serif; font-size: 11pt;\">Cette information {% if private %} n' a pas {% else %} a {% endif %} été envoyé par mail à l'émetteur.</p>" "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ce courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} a été mis à jour.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l j F Y à H:i\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Inconnu\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Le commentaire suivant a été ajouté :</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ comment }}</blockquote>\r\n\r\n<p style=\"font-family: Tahoma, Arial, sans-serif; font-size: 11pt;\">Cette information{% if private %}n' a pas{% else %}a{% endif %}été envoyé par mail à l'émetteur.</p>"
}, },
"pk" : 62 "pk" : 62
}, },
@ -750,8 +750,8 @@
"heading" : "Ticket mis à jour", "heading" : "Ticket mis à jour",
"template_name" : "updated_owner", "template_name" : "updated_owner",
"subject" : "(Mis à jour - à vous)", "subject" : "(Mis à jour - à vous)",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Le commentaire suivant a été ajouté :</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ comment }}</blockquote>\r\n\r\n<p style=\"font-family: Tahoma, Arial, sans-serif; font-size: 11pt;\">Cette information {% if private %} n' a pas {% else %} a {% endif %} été envoyé par mail à l'émetteur.</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>File d'attente</b>&nbsp;: {{ ticket.ticket }}<br>\r\n<b>Queue</b>&nbsp;: {{ queue.title }}<br>\r\n<b>Titre</b>&nbsp;: {{ ticket.title }}<br>\r\n<b>Ouvert le</b>&nbsp;: {{ ticket.created|date:\"l j F Y à H:i\" }}<br>\r\n<b>Soumis par</b>&nbsp;: {{ ticket.submitter_email|default:\"Inconnu\" }}<br>\r\n<b>Priorité</b>&nbsp;: {{ ticket.get_priority_display }}<br>\r\n<b>Statut</b>&nbsp;: {{ ticket.get_status }}<br>\r\n<b>Assigné à</b>&nbsp;: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Voir le ticket en ligne</a></b> pour le mettre à jour (après authentification)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Pour mémoire, la description originelle était&nbsp;:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Le commentaire suivant a été ajouté :</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ comment }}</blockquote>\r\n\r\n<p style=\"font-family: Tahoma, Arial, sans-serif; font-size: 11pt;\">Cette information{% if private %}n' a pas{% else %}a{% endif %}été envoyé par mail à l'émetteur.</p>",
"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", "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" "locale" : "fr"
} }
}, },
@ -760,8 +760,8 @@
"heading" : "Votre ticket a été mis à jour", "heading" : "Votre ticket a été mis à jour",
"template_name" : "updated_submitter", "template_name" : "updated_submitter",
"subject" : "(Mis à jour)", "subject" : "(Mis à jour)",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Vous avez récemment ouvert chez nous un ticket dont le sujet est <i>{{ ticket.title }}</i> . Ce message vous informe d'une mise à jour du ticket.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Le commentaire suivant a été ajouté au ticket <b>{{ ticket.ticket }}</b>:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ comment }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;>\"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 <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Bonjour,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Vous avez récemment ouvert chez nous un ticket dont le sujet est <i>{{ ticket.title }}</i> . Ce message vous informe d'une mise à jour du ticket.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Le commentaire suivant a été ajouté au ticket <b>{{ ticket.ticket }}</b>:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ comment }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">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 <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>",
"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" "locale" : "fr"
}, },
"pk" : 64, "pk" : 64,
@ -793,11 +793,11 @@
}, },
{ {
"fields" : { "fields" : {
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Salve,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Il ticket <i>{{ ticket.title }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, assegnato a {{ ticket.get_assigned_to }}{% endif %} è stato chiuso.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Coda</b>: {{ queue.title }}<br>\r\n<b>Titolo</b>: {{ ticket.title }}<br>\r\n<b>Aperto</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Inserito da</b>: {{ ticket.submitter_email|default:\"Sconosciuto\" }}<br>\r\n<b>Priorità</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Stato</b>: {{ ticket.get_status }}<br>\r\n<b>Assegnato a</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Vedi Online</a></b> per aggiornare questo ticket (richiede login)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La descrizione del ticket è:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La soluzione fornita è:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Se vuoi vedere questo ticket online, puoi visitare l'indirizzo <a href='{{ ticket.staff_url }}'>{{ ticket.staff_url }}</a>.</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Salve,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Il ticket <i>{{ ticket.ticket }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, assegnato a {{ ticket.get_assigned_to }}{% endif %} è stato chiuso.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Coda</b>: {{ queue.title }}<br>\r\n<b>Titolo</b>: {{ ticket.title }}<br>\r\n<b>Aperto</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Inserito da</b>: {{ ticket.submitter_email|default:\"Sconosciuto\" }}<br>\r\n<b>Priorità</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Stato</b>: {{ ticket.get_status }}<br>\r\n<b>Assegnato a</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Vedi Online</a></b> per aggiornare questo ticket (richiede login)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La descrizione del ticket è:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La soluzione fornita è:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Se vuoi vedere questo ticket online, puoi visitare l'indirizzo <a href='{{ ticket.staff_url }}'>{{ ticket.staff_url }}</a>.</p>",
"heading" : "Ticket Chiuso", "heading" : "Ticket Chiuso",
"subject" : "(Closed)", "subject" : "(Closed)",
"template_name" : "closed_cc", "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" "locale" : "it"
}, },
"pk" : 67, "pk" : 67,
@ -989,9 +989,9 @@
"heading" : "Ticket cerrado", "heading" : "Ticket cerrado",
"template_name" : "closed_cc", "template_name" : "closed_cc",
"subject" : "(Cerrado)", "subject" : "(Cerrado)",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Hola,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">El Ticket <i>{{ ticket.title }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, asignado a {{ ticket.get_assigned_to }}{% endif %} ha sido cerrado.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Cola</b>: {{ queue.title }}<br>\r\n<b>Título</b>: {{ ticket.title }}<br>\r\n<b>Creado</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Remitente</b>: {{ ticket.submitter_email|default:\"Desconocido\" }}<br>\r\n<b>Prioridad</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Estado</b>: {{ ticket.get_status }}<br>\r\n<b>Asignado a</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Ver online</a></b> para actualizar este Ticket (login requerido)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La descripción original es:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La solución dada fue:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Para ver este Ticket online, por favor visite <a href='{{ ticket.staff_url }}'>{{ ticket.staff_url }}</a>.</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Hola,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">El Ticket <i>{{ ticket.ticket }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, asignado a {{ ticket.get_assigned_to }}{% endif %} ha sido cerrado.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Cola</b>: {{ queue.title }}<br>\r\n<b>Título</b>: {{ ticket.title }}<br>\r\n<b>Creado</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Remitente</b>: {{ ticket.submitter_email|default:\"Desconocido\" }}<br>\r\n<b>Prioridad</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Estado</b>: {{ ticket.get_status }}<br>\r\n<b>Asignado a</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Ver online</a></b> para actualizar este Ticket (login requerido)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La descripción original es:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">La solución dada fue:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Para ver este Ticket online, por favor visite <a href='{{ ticket.staff_url }}'>{{ ticket.staff_url }}</a>.</p>",
"locale" : "es", "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 "pk" : 83
}, },
@ -1178,9 +1178,9 @@
{ {
"model" : "helpdesk.emailtemplate", "model" : "helpdesk.emailtemplate",
"fields" : { "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", "locale" : "zh",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">您好,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">工单 <i>{{ ticket.title }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, 分配给 {{ ticket.get_assigned_to }}{% endif %} 已经 关闭</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>工单 ID</b>: {{ ticket.ticket }}<br>\r\n<b>待办</b>: {{ queue.title }}<br>\r\n<b>标题</b>: {{ ticket.title }}<br>\r\n<b>已打开</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>提交人</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>优先级</b>: {{ ticket.get_priority_display }}<br>\r\n<b>状态</b>: {{ ticket.get_status }}<br>\r\n<b>已分配给</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>在线查看</a></b> 更新此工单 (需要登录)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">原工单描述参考::</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">提供的解决方案为:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">如果您想在线查看, 可以访问 <a href='{{ ticket.staff_url }}'>{{ ticket.staff_url }}</a>.</p>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">您好,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">工单 <i>{{ ticket.ticket }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, 分配给 {{ ticket.get_assigned_to }}{% endif %} 已经 关闭</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>工单 ID</b>: {{ ticket.ticket }}<br>\r\n<b>待办</b>: {{ queue.title }}<br>\r\n<b>标题</b>: {{ ticket.title }}<br>\r\n<b>已打开</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>提交人</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>优先级</b>: {{ ticket.get_priority_display }}<br>\r\n<b>状态</b>: {{ ticket.get_status }}<br>\r\n<b>已分配给</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>在线查看</a></b> 更新此工单 (需要登录)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">原工单描述参考::</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">提供的解决方案为:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">如果您想在线查看, 可以访问 <a href='{{ ticket.staff_url }}'>{{ ticket.staff_url }}</a>.</p>",
"template_name" : "closed_cc", "template_name" : "closed_cc",
"heading" : "工单已关闭", "heading" : "工单已关闭",
"subject" : "(已关闭)" "subject" : "(已关闭)"
@ -1467,11 +1467,11 @@
"pk" : 123, "pk" : 123,
"fields" : { "fields" : {
"locale" : "pl", "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", "template_name" : "closed_cc",
"heading" : "Zgłoszenie zamknięte", "heading" : "Zgłoszenie zamknięte",
"subject" : "(Zamknięte)", "subject" : "(Zamknięte)",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Dzień dobry,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Zgłoszenie <i>{{ ticket.title }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, przypisane {{ ticket.get_assigned_to }}{% endif %} zostało zamknięte.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Identyfikator Zgłoszenia:</b>: {{ ticket.ticket }}<br>\r\n<b>Kolejka</b>: {{ queue.title }}<br>\r\n<b>Tytuł</b>: {{ ticket.title }}<br>\r\n<b>Data Zgłoszenia</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Zgłaszający</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorytet</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Status</b>: {{ ticket.get_status }}<br>\r\n<b>Przypisane Do</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Zobacz Online</a></b> aby zaktualizować zgłoszenie (wymagana autoryzacja)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Oryginalny opis zgłoszenia:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Rozwiązanie problemu:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Jeśli chcesz zobaczyć Twoje zgłoszenie online, proszę wejdź na stronę <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>" "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Dzień dobry,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Zgłoszenie <i>{{ ticket.ticket }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, przypisane {{ ticket.get_assigned_to }}{% endif %} zostało zamknięte.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Identyfikator Zgłoszenia:</b>: {{ ticket.ticket }}<br>\r\n<b>Kolejka</b>: {{ queue.title }}<br>\r\n<b>Tytuł</b>: {{ ticket.title }}<br>\r\n<b>Data Zgłoszenia</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Zgłaszający</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorytet</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Status</b>: {{ ticket.get_status }}<br>\r\n<b>Przypisane Do</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Zobacz Online</a></b> aby zaktualizować zgłoszenie (wymagana autoryzacja)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Oryginalny opis zgłoszenia:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Rozwiązanie problemu:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Jeśli chcesz zobaczyć Twoje zgłoszenie online, proszę wejdź na stronę <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>"
}, },
"model" : "helpdesk.emailtemplate" "model" : "helpdesk.emailtemplate"
}, },
@ -1561,24 +1561,24 @@
}, },
{ {
"fields" : { "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", "locale" : "cs",
"heading" : "Ticket Closed", "heading" : "Ticket Closed",
"subject" : "(Uzavřeno)", "subject" : "(Uzavřeno)",
"template_name" : "closed_cc", "template_name" : "closed_cc",
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Dobrý den,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ticket {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, přiřazený {{ ticket.assigned_to }}{% endif %} byl uzavřen.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Fronta</b>: {{ queue.title }}<br>\r\n<b>Nadpis</b>: {{ ticket.title }}<br>\r\n<b>Otevřeno</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Zadavatel</b>: {{ ticket.submitter_email|default:\"Neznámý\" }}<br>\r\n<b>Priorita</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Stav</b>: {{ ticket.get_status }}<br>\r\n<b>Přiřazeno</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Prohlédnout online</a></b> nebo aktualizovat (nutné přihlášení)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Původní popis:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Důvod uzavření:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>" "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Dobrý den,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ticket {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, přiřazený {{ ticket.assigned_to }}{% endif %} byl uzavřen.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Fronta</b>: {{ queue.title }}<br>\r\n<b>Nadpis</b>: {{ ticket.title }}<br>\r\n<b>Otevřeno</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Zadavatel</b>: {{ ticket.submitter_email|default:\"Neznámý\" }}<br>\r\n<b>Priorita</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Stav</b>: {{ ticket.get_status }}<br>\r\n<b>Přiřazeno</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Prohlédnout online</a></b> nebo aktualizovat (nutné přihlášení)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Původní popis:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Důvod uzavření:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>"
}, },
"pk" : 131, "pk" : 131,
"model" : "helpdesk.emailtemplate" "model" : "helpdesk.emailtemplate"
}, },
{ {
"fields" : { "fields" : {
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Dobrý den,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ticket {{ ticket.title }} (\"{{ ticket.title }}\") přiřazený <b>Vám</b> byl uzavřen.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Fronta</b>: {{ queue.title }}<br>\r\n<b>Nadpis</b>: {{ ticket.title }}<br>\r\n<b>Otevřeno</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Zadavatel</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorita</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Stav</b>: {{ ticket.get_status }}<br>\r\n<b>Přiřazeno</b>: Vám<br>\r\n<b><a href='{{ ticket.staff_url }}'>Prohlédnout online</a></b> nebo aktualizovat (nutné přihlášení)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Původní popis:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Důvod uzavření:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Dobrý den,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") přiřazený <b>Vám</b> byl uzavřen.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Fronta</b>: {{ queue.title }}<br>\r\n<b>Nadpis</b>: {{ ticket.title }}<br>\r\n<b>Otevřeno</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Zadavatel</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>Priorita</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Stav</b>: {{ ticket.get_status }}<br>\r\n<b>Přiřazeno</b>: Vám<br>\r\n<b><a href='{{ ticket.staff_url }}'>Prohlédnout online</a></b> nebo aktualizovat (nutné přihlášení)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Původní popis:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Důvod uzavření:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>",
"heading" : "Ticket uzavřen", "heading" : "Ticket uzavřen",
"template_name" : "closed_owner", "template_name" : "closed_owner",
"subject" : "(Uzavřeno)", "subject" : "(Uzavřeno)",
"locale" : "cs", "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, "pk" : 132,
"model" : "helpdesk.emailtemplate" "model" : "helpdesk.emailtemplate"
@ -1598,12 +1598,12 @@
{ {
"model" : "helpdesk.emailtemplate", "model" : "helpdesk.emailtemplate",
"fields" : { "fields" : {
"html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Dobrý den,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ticket {{ ticket.title }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, přiřazený {{ ticket.assigned_to }}{% endif %} automaticky vyhrocen.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Fronta</b>: {{ queue.title }}<br>\r\n<b>Nadpis</b>: {{ ticket.title }}<br>\r\n<b>Otevřeno</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Zadavatel</b>: {{ ticket.submitter_email|default:\"Neznámý\" }}<br>\r\n<b>Priorita</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Stav</b>: {{ ticket.get_status }}<br>\r\n<b>Přiřazeno</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Prohlédnout online</a></b> nebo aktualizovat (nutné přihlášení)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Původní popis:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>", "html" : "<p style=\"font-family: sans-serif; font-size: 1em;\">Dobrý den,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Ticket {{ ticket.ticket }} (\"{{ ticket.title }}\"){% if ticket.assigned_to %}, přiřazený {{ ticket.assigned_to }}{% endif %} automaticky vyhrocen.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Ticket ID</b>: {{ ticket.ticket }}<br>\r\n<b>Fronta</b>: {{ queue.title }}<br>\r\n<b>Nadpis</b>: {{ ticket.title }}<br>\r\n<b>Otevřeno</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>Zadavatel</b>: {{ ticket.submitter_email|default:\"Neznámý\" }}<br>\r\n<b>Priorita</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Stav</b>: {{ ticket.get_status }}<br>\r\n<b>Přiřazeno</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Prohlédnout online</a></b> nebo aktualizovat (nutné přihlášení)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Původní popis:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>",
"heading" : "Ticket vyhrocen", "heading" : "Ticket vyhrocen",
"template_name" : "escalated_cc", "template_name" : "escalated_cc",
"subject" : "(Vyhroceno)", "subject" : "(Vyhroceno)",
"locale" : "cs", "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 "pk" : 134
}, },
@ -1726,5 +1726,198 @@
"template_name" : "updated_submitter" "template_name" : "updated_submitter"
}, },
"model" : "helpdesk.emailtemplate" "model" : "helpdesk.emailtemplate"
},
{
"model": "helpdesk.emailtemplate",
"pk": 145,
"fields": {
"template_name": "assigned_cc",
"subject": "(Asiakaspalvelijan vaihto)",
"heading": "Palvelupyynn\u00f6n asiakaspalvelija muuttunut",
"plain_text": "Hei,\r\n\r\nSaat t\u00e4m\u00e4n s\u00e4hk\u00f6postin tiedoksi siit\u00e4 ett\u00e4 palvelupyynt\u00f6 {{ ticket.ticket }} (\"{{ ticket.title }}\") jonka j\u00e4tti {{ ticket.submitter_email }} on {% if ticket.assigned_to %}ohjattu {{ ticket.assigned_to }}{% else %}ilman asiakaspalvelijaa{% endif %}.\r\n\r\nPalvelupyynn\u00f6n tunniste: {{ ticket.ticket }}\r\nJono: {{ queue.title }}\r\nOtsikko: {{ ticket.title }}\r\nVastaanotettu: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nL\u00e4hett\u00e4j\u00e4: {{ ticket.submitter_email|default:\"Tuntematon\" }}\r\nT\u00e4rkeysj\u00e4rjestys: {{ ticket.get_priority_display }}\r\nTila: {{ ticket.get_status }}\r\nAsiakaspalvelija: {{ ticket.get_assigned_to }}\r\nKatso netiss\u00e4: {{ ticket.staff_url }}\r\n\r\nPalvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:\r\n\r\n{{ ticket.description }}",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Saat t\u00e4m\u00e4n s\u00e4hk\u00f6postin tiedoksi siit\u00e4 ett\u00e4 palvelupyynt\u00f6 <a href=\"{{ ticket.staff_url }}\"><b>{{ ticket.ticket }}</b></a> (<em>{{ ticket.title }}</em>) jonka j\u00e4tti {{ ticket.submitter_email }} on {% if ticket.assigned_to %}ohjattu {{ ticket.assigned_to }}{% else %}ilman asiakaspalvelijaa{% endif %}.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Palvelupyynn\u00f6n tunniste</b>: {{ ticket.ticket }}<br>\r\n<b>Jono</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Vastaanotettu</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>L\u00e4hett\u00e4j\u00e4</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>T\u00e4rkeysj\u00e4rjestys</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Tila</b>: {{ ticket.get_status }}<br>\r\n<b>Asiakaspalvelija</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Katso netiss\u00e4</a></b> p\u00e4ivitt\u00e4\u00e4ksesi palvelupyynt\u00f6\u00e4 (kirjautuminen vaaditaan)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Palvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 146,
"fields": {
"template_name": "assigned_owner",
"subject": "(Osoitettu sinulle)",
"heading": "Palvelupyynt\u00f6 osoitettu sinulle",
"plain_text": "Hei,\r\n\r\nSaat t\u00e4m\u00e4n s\u00e4hk\u00f6postin tiedoksi siit\u00e4 ett\u00e4 palvelupyynt\u00f6 {{ ticket.ticket }} (\"{{ ticket.title }}\") jonka j\u00e4tti {{ ticket.submitter_email }} on osoitettu sinulle.\r\n\r\nPalvelupyynn\u00f6n tunniste: {{ ticket.ticket }}\r\nJono: {{ queue.title }}\r\nOtsikko: {{ ticket.title }}\r\nVastaanotettu: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nL\u00e4hett\u00e4j\u00e4: {{ ticket.submitter_email|default:\"Tuntematon\" }}\r\nT\u00e4rkeysj\u00e4rjestys: {{ ticket.get_priority_display }}\r\nTila: {{ ticket.get_status }}\r\nAsiakaspalvelija: SIN\u00c4\r\nKatso netiss\u00e4: {{ ticket.staff_url }} (kirjautuminen vaaditaan)\r\n\r\nPalvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:\r\n\r\n{{ ticket.description }}",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Saat t\u00e4m\u00e4n s\u00e4hk\u00f6postin tiedoksi siit\u00e4 ett\u00e4 palvelupyynt\u00f6 <a href=\"{{ ticket.staff_url }}\"><b>{{ ticket.ticket }}</b></a> (<em>{{ ticket.title }}</em>) jonka j\u00e4tti {{ ticket.submitter_email }} on osoitettu sinulle.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Palvelupyynn\u00f6n tunniste</b>: {{ ticket.ticket }}<br>\r\n<b>Jono</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Vastaanotettu</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>L\u00e4hett\u00e4j\u00e4</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>T\u00e4rkeysj\u00e4rjestys</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Tila</b>: {{ ticket.get_status }}<br>\r\n<b>Asiakaspalvelija</b>: SIN\u00c4<br>\r\n<b><a href='{{ ticket.staff_url }}'>Katso netiss\u00e4</a></b> p\u00e4ivitt\u00e4\u00e4ksesi palvelupyynt\u00f6\u00e4 (kirjautuminen vaaditaan)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Palvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 147,
"fields": {
"template_name": "closed_cc",
"subject": "(Valmistunut)",
"heading": "Palvelupyynt\u00f6 valmistunut",
"plain_text": "Hei,\r\n\r\nPalvelupyynt\u00f6 {{ ticket.title }} ('{{ ticket.title }}') {% if ticket.assigned_to %}, joka on osoitettu {{ ticket.get_assigned_to }}{% endif %} on valmistunut.\r\n\r\nPalvelupyynn\u00f6n tunniste: {{ ticket.ticket }}\r\nJono: {{ queue.title }}\r\nOtsikko: {{ ticket.title }}\r\nVastaanotettu: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nL\u00e4hett\u00e4j\u00e4: {{ ticket.submitter_email|default:\"Tuntematon\" }}\r\nT\u00e4rkeysj\u00e4rjestys: {{ ticket.get_priority_display }}\r\nTila: {{ ticket.get_status }}\r\nAsiakaspalvelija: {{ ticket.get_assigned_to }}\r\nKatso netiss\u00e4: {{ ticket.staff_url }} (kirjautuminen vaaditaan)\r\n\r\nPalvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:\r\n\r\n{{ ticket.description }}\r\n\r\nAsiakaspalvelijamme kommentit liittyen palvelupyynn\u00f6n valmistumiseen:\r\n\r\n{{ resolution }}",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hello,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Palvelupyynt\u00f6 <i>{{ ticket.title }}</i> ('{{ ticket.title }}'){% if ticket.assigned_to %}, joka on osoitettu {{ ticket.get_assigned_to }}{% endif %} on valmistunut.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Palvelupyynn\u00f6n tunniste</b>: {{ ticket.ticket }}<br>\r\n<b>Jono</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Vastaanotettu</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>L\u00e4hett\u00e4j\u00e4</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>T\u00e4rkeysj\u00e4rjestys</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Tila</b>: {{ ticket.get_status }}<br>\r\n<b>Asiakaspalvelija</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Katso netiss\u00e4</a></b> p\u00e4ivitt\u00e4\u00e4ksesi palvelupyynt\u00f6\u00e4 (kirjautuminen vaaditaan)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Palvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Asiakaspalvelijamme kommentit liittyen palvelupyynn\u00f6n valmistumiseen:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Voit tutkia palvelupyynt\u00f6\u00e4 netiss\u00e4 <a href='{{ ticket.staff_url }}'>{{ ticket.staff_url }}</a>.</p>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 148,
"fields": {
"template_name": "closed_owner",
"subject": "(Valmistunut)",
"heading": "Palvelupyynt\u00f6 valmistunut",
"plain_text": "Hei,\r\n\r\nAlla oleva sinulle osoitettu palvelupyynt\u00f6 on valmistunut.\r\n\r\nPalvelupyynn\u00f6n tunniste: {{ ticket.ticket }}\r\nJono: {{ queue.title }}\r\nOtsikko: {{ ticket.title }}\r\nVastaanotettu: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nL\u00e4hett\u00e4j\u00e4: {{ ticket.submitter_email|default:\"Tuntematon\" }}\r\nT\u00e4rkeysj\u00e4rjestys: {{ ticket.get_priority_display }}\r\nTila: {{ ticket.get_status }}\r\nAsiakaspalvelija: {{ ticket.get_assigned_to }}\r\n\r\nVoit katsoa palvelupyynt\u00f6\u00e4 netiss\u00e4 linkist\u00e4 {{ ticket.staff_url }}",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Alla oleva sinulle osoitettu palvelupyynt\u00f6 on valmistunut.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Palvelupyynn\u00f6n tunniste</b>: {{ ticket.ticket }}<br>\r\n<b>Jono</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Vastaanotettu</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>L\u00e4hett\u00e4j\u00e4</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>T\u00e4rkeysj\u00e4rjestys</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Tila</b>: {{ ticket.get_status }}<br>\r\n<b>Asiakaspalvelija</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Katso netiss\u00e4</a></b> p\u00e4ivitt\u00e4\u00e4ksesi palvelupyynt\u00f6\u00e4 (kirjautuminen vaaditaan)</p>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 149,
"fields": {
"template_name": "closed_submitter",
"subject": "(Valmistunut)",
"heading": "Palvelupyynt\u00f6si on merkitty valmistuneeksi",
"plain_text": "Hei,\r\n\r\nOlit j\u00e4tt\u00e4nyt palvelupyynn\u00f6n aiheesta \"{{ticket.title}}\". Palvelupyynt\u00f6 on nyt merkitty valmistuneeksi.\r\n\r\nJos uskot, ett\u00e4 palvelupyynt\u00f6 tarvitsee viel\u00e4 lis\u00e4selvityst\u00e4, ota meihin yhteytt\u00e4 vastaamalla t\u00e4h\u00e4n s\u00e4hk\u00f6postiin ja pit\u00e4m\u00e4ll\u00e4 otsikko ennallaan.\r\n\r\nJos haluat tutkia palvelupyynn\u00f6n sis\u00e4lt\u00f6\u00e4 netiss\u00e4: {{ ticket.ticket_url }}.\r\n\r\nAsiakaspalvelijamme kommentit liittyen palvelupyynn\u00f6n valmistumiseen:\r\n\r\n{{ ticket.resolution }}",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Olit j\u00e4tt\u00e4nyt palvelupyynn\u00f6n aiheesta <i>{{ ticket.title }}</i>. Palvelupyynt\u00f6 on nyt merkitty valmistuneeksi.</p>\r\n\r\n<p>Jos uskot, ett\u00e4 palvelupyynt\u00f6 tarvitsee viel\u00e4 lis\u00e4selvityst\u00e4, ota meihin yhteytt\u00e4 vastaamalla t\u00e4h\u00e4n s\u00e4hk\u00f6postiin ja pit\u00e4m\u00e4ll\u00e4 otsikko ennallaan.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Asiakaspalvelijamme kommentit liittyen palvelupyynn\u00f6n valmistumiseen:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Jos haluat tutkia palvelupyynn\u00f6n sis\u00e4lt\u00f6\u00e4 netiss\u00e4: <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a></p>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 150,
"fields": {
"template_name": "escalated_cc",
"subject": "(Eskaloitu)",
"heading": "Palvelupyynt\u00f6 eskaloitu",
"plain_text": "Hei,\r\n\r\nSaat t\u00e4m\u00e4n s\u00e4hk\u00f6postin tiedoksi siit\u00e4 ett\u00e4 palvelupyynt\u00f6 {{ ticket.ticket }} (\"{{ ticket.title }}\") on eskaloitu automaattisesti.\r\n\r\nPalvelupyynn\u00f6n tunniste: {{ ticket.ticket }}\r\nJono: {{ queue.title }}\r\nOtsikko: {{ ticket.title }}\r\nVastaanotettu: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nL\u00e4hett\u00e4j\u00e4: {{ ticket.submitter_email|default:\"Tuntematon\" }}\r\nT\u00e4rkeysj\u00e4rjestys: {{ ticket.get_priority_display }}\r\nTila: {{ ticket.get_status }}\r\nAsiakaspalvelija: {{ ticket.get_assigned_to }}\r\nKatso netiss\u00e4: {{ ticket.staff_url }} (kirjautuminen vaaditaan)\r\n\r\nPalvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:\r\n\r\n{{ ticket.description }}",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Saat t\u00e4m\u00e4n s\u00e4hk\u00f6postin tiedoksi siit\u00e4 ett\u00e4 palvelupyynt\u00f6 <i>{{ ticket.ticket }}</i> ('{{ ticket.title }}') on eskaloitu automaattisesti.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Palvelupyynn\u00f6n tunniste</b>: {{ ticket.ticket }}<br>\r\n<b>Jono</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Vastaanotettu</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>L\u00e4hett\u00e4j\u00e4</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>T\u00e4rkeysj\u00e4rjestys</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Tila</b>: {{ ticket.get_status }}<br>\r\n<b>Asiakaspalvelija</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Katso netiss\u00e4</a></b> p\u00e4ivitt\u00e4\u00e4ksesi palvelupyynt\u00f6\u00e4 (kirjautuminen vaaditaan)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Palvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 151,
"fields": {
"template_name": "escalated_owner",
"subject": "(Eskaloitu)",
"heading": "Sinulle osoitettu palvelupyynt\u00f6 eskaloitu",
"plain_text": "Hei,\r\n\r\nSinulle ohjattu palvelupyynt\u00f6 on automaattisesti eskaloitu koska sen ratkaisu on kest\u00e4nyt pidemp\u00e4\u00e4n mit\u00e4 odotettu.\r\n\r\nPalvelupyynn\u00f6n tunniste: {{ ticket.ticket }}\r\nJono: {{ queue.title }}\r\nOtsikko: {{ ticket.title }}\r\nVastaanotettu: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nL\u00e4hett\u00e4j\u00e4: {{ ticket.submitter_email|default:\"Tuntematon\" }}\r\nT\u00e4rkeysj\u00e4rjestys: {{ ticket.get_priority_display }}\r\nTila: {{ ticket.get_status }}\r\nAsiakaspalvelija: {{ ticket.get_assigned_to }}\r\nKatso netiss\u00e4: {{ ticket.staff_url }} (kirjautuminen vaaditaan)\r\n\r\nPalvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:\r\n\r\n{{ ticket.description }}\r\n\r\nPlease review this ticket and attempt to provide a resolution as soon as possible.",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Sinulle ohjattu palvelupyynt\u00f6 on automaattisesti eskaloitu koska sen ratkaisu on kest\u00e4nyt pidemp\u00e4\u00e4n mit\u00e4 odotettu.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Palvelupyynn\u00f6n tunniste</b>: {{ ticket.ticket }}<br>\r\n<b>Jono</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Vastaanotettu</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>L\u00e4hett\u00e4j\u00e4</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>T\u00e4rkeysj\u00e4rjestys</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Tila</b>: {{ ticket.get_status }}<br>\r\n<b>Asiakaspalvelija</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Katso netiss\u00e4</a></b> p\u00e4ivitt\u00e4\u00e4ksesi palvelupyynt\u00f6\u00e4 (kirjautuminen vaaditaan)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Palvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 152,
"fields": {
"template_name": "escalated_submitter",
"subject": "(Escalated)",
"heading": "Palvelupyynt\u00f6si on eskaloitu",
"plain_text": "Hei,\r\n\r\nOlit j\u00e4tt\u00e4nyt meille palvelupyynn\u00f6n otsikolla \"{{ ticket.title }}\". T\u00e4m\u00e4 s\u00e4hk\u00f6posti on tiedoksi siit\u00e4 ett\u00e4 palvelupyynt\u00f6si on eskaloitu koska sen ratkaisu on kest\u00e4nyt pidemp\u00e4\u00e4n mit\u00e4 odotettu.\r\n\r\nSelvittelemme palvelupyynt\u00f6\u00e4si ja palaamme asiaan niin pian kuin mahdollista.\r\n\r\nJos haluat katsella palvelupyynt\u00f6\u00e4 netiss\u00e4 n\u00e4et sen linkin {{ ticket.ticket_url }} kautta.",
"html": "<p style=\"font-family: sans-serif; font-size: 11pt;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 11pt;\">Olit j\u00e4tt\u00e4nyt meille palvelupyynn\u00f6n otsikolla <i>{{ ticket.title }}</i> with us. T\u00e4m\u00e4 s\u00e4hk\u00f6posti on tiedoksi siit\u00e4 ett\u00e4 palvelupyynt\u00f6si on eskaloitu koska sen ratkaisu on kest\u00e4nyt pidemp\u00e4\u00e4n mit\u00e4 odotettu.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 11pt;\">Selvittelemme palvelupyynt\u00f6\u00e4si ja palaamme asiaan niin pian kuin mahdollista.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 11pt;\">Jos haluat katsella palvelupyynt\u00f6\u00e4 netiss\u00e4 n\u00e4et sen linkin <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a> kautta.</p>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 153,
"fields": {
"template_name": "newticket_cc",
"subject": "(Avattu)",
"heading": "Uusi palvelupyynt\u00f6 avattu",
"plain_text": "Hei,\r\n\r\nUusi palvelupyynt\u00f6 on avattu.\r\n\r\nPalvelupyynn\u00f6n tunniste: {{ ticket.ticket }}\r\nJono: {{ queue.title }}\r\nOtsikko: {{ ticket.title }}\r\nVastaanotettu: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nL\u00e4hett\u00e4j\u00e4: {{ ticket.submitter_email|default:\"Tuntematon\" }}\r\nT\u00e4rkeysj\u00e4rjestys: {{ ticket.get_priority_display }}\r\nTila: {{ ticket.get_status }}\r\nAsiakaspalvelija: {{ ticket.get_assigned_to }}\r\nKatso netiss\u00e4: {{ ticket.staff_url }} (kirjautuminen vaaditaan)\r\n\r\nPalvelupyynn\u00f6n kuvaus:\r\n\r\n{{ ticket.description }}",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Uusi palvelupyynt\u00f6 on avattu.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Palvelupyynn\u00f6n tunniste</b>: {{ ticket.ticket }}<br>\r\n<b>Jono</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Vastaanotettu</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>L\u00e4hett\u00e4j\u00e4</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>T\u00e4rkeysj\u00e4rjestys</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Tila</b>: {{ ticket.get_status }}<br>\r\n<b>Asiakaspalvelija</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Katso netiss\u00e4</a></b> p\u00e4ivitt\u00e4\u00e4ksesi palvelupyynt\u00f6\u00e4 (kirjautuminen vaaditaan)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Palvelupyynn\u00f6n kuvaus:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 154,
"fields": {
"template_name": "newticket_submitter",
"subject": "(Avattu)",
"heading": "Palvelupyynt\u00f6si vastaanotettu",
"plain_text": "Hei,\r\n\r\nOlemme vastaanottaneet palvelupyynt\u00f6si jonka otsikko oli \"{{ ticket.title }}\". \r\n\r\nSinun ei tarvitse tehd\u00e4 mit\u00e4\u00e4n enemm\u00e4n t\u00e4ss\u00e4 vaiheessa. Lipullesi on annettu numero {{ticket.ticket}}, ja siihen vastataan pian.\r\n\r\nJos haluat l\u00e4hett\u00e4\u00e4 meille lis\u00e4tietoja tai jos sinulla on kysytt\u00e4v\u00e4\u00e4 t\u00e4st\u00e4 palvelupyynn\u00f6st\u00e4, lis\u00e4\u00e4 s\u00e4hk\u00f6postin otsikkoon palvelupyynn\u00f6n tunniste '{{ticket.ticket}}'. Helpoin tapa tehd\u00e4 t\u00e4m\u00e4 on vain painamalla \"Vastaa\" (\"Reply\") t\u00e4h\u00e4n viestiin.\r\n\r\nJos haluat katsoa t\u00e4t\u00e4 palvelupyynt\u00f6\u00e4 tarjotaksesi lis\u00e4tietoja, liitt\u00e4\u00e4ksesi tiedostoja tai tarkastellaksesi viimeisimpi\u00e4 p\u00e4ivityksi\u00e4, voit k\u00e4yd\u00e4 {{ticket.ticket_url}}.\r\n\r\nTutkimme palvelupyynt\u00f6\u00e4si ja yrit\u00e4mme ratkaista sen mahdollisimman pian. Saat lis\u00e4tietoja p\u00e4ivityksist\u00e4 ja ratkaisusta t\u00e4h\u00e4n s\u00e4hk\u00f6postiosoitteeseen.",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Olemme vastaanottaneet palvelupyynt\u00f6si jonka otsikko oli <i>{{ ticket.title }}</i>.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Sinun ei tarvitse tehd\u00e4 mit\u00e4\u00e4n enemm\u00e4n t\u00e4ss\u00e4 vaiheessa. Lipullesi on annettu numero <b>{{ ticket.ticket }}</b> ja siihen vastataan pian.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Jos haluat l\u00e4hett\u00e4\u00e4 meille lis\u00e4tietoja tai jos sinulla on kysytt\u00e4v\u00e4\u00e4 t\u00e4st\u00e4 palvelupyynn\u00f6st\u00e4, lis\u00e4\u00e4 s\u00e4hk\u00f6postin otsikkoon palvelupyynn\u00f6n tunniste <b>{{ticket.ticket}}</b>. Helpoin tapa tehd\u00e4 t\u00e4m\u00e4 on vain painamalla \"Vastaa\" (\"Reply\") t\u00e4h\u00e4n viestiin.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Jos haluat katsoa t\u00e4t\u00e4 palvelupyynt\u00f6\u00e4 tarjotaksesi lis\u00e4tietoja, liitt\u00e4\u00e4ksesi tiedostoja tai tarkastellaksesi viimeisimpi\u00e4 p\u00e4ivityksi\u00e4, voit k\u00e4yd\u00e4 <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Tutkimme palvelupyynt\u00f6\u00e4si ja yrit\u00e4mme ratkaista sen mahdollisimman pian. Saat lis\u00e4tietoja p\u00e4ivityksist\u00e4 ja ratkaisusta t\u00e4h\u00e4n s\u00e4hk\u00f6postiosoitteeseen.</p>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 155,
"fields": {
"template_name": "resolved_cc",
"subject": "(Ratkaistu)",
"heading": "Palvelupyynt\u00f6 ratkaistu",
"plain_text": "Hello,\r\n\r\nSeuraava palvelupyynt\u00f6 on ratkaistu:\r\n\r\nPalvelupyynn\u00f6n tunniste: {{ ticket.ticket }}\r\nJono: {{ queue.title }}\r\nOtsikko: {{ ticket.title }}\r\nVastaanotettu: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nL\u00e4hett\u00e4j\u00e4: {{ ticket.submitter_email|default:\"Tuntematon\" }}\r\nT\u00e4rkeysj\u00e4rjestys: {{ ticket.get_priority_display }}\r\nTila: {{ ticket.get_status }}\r\nAsiakaspalvelija: {{ ticket.get_assigned_to }}\r\nKatso netiss\u00e4: {{ ticket.staff_url }} (kirjautuminen vaaditaan)\r\n\r\nPalvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:\r\n\r\n{{ ticket.description }}\r\n\r\nAsiakaspalvelijan kommentit liittyen ratkaisuun:\r\n\r\n{{ ticket.resolution }}\r\n\r\nT\u00e4m\u00e4 tiedote on my\u00f6s l\u00e4hetetty s\u00e4hk\u00f6postitse palvelupyynn\u00f6n l\u00e4hett\u00e4j\u00e4lle, joka tarkistaa sen ennen kuin voit sulkea palvelupyynn\u00f6n.",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hello,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Seuraava palvelupyynt\u00f6 on ratkaistu:</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Palvelupyynn\u00f6n tunniste</b>: {{ ticket.ticket }}<br>\r\n<b>Jono</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Vastaanotettu</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>L\u00e4hett\u00e4j\u00e4</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>T\u00e4rkeysj\u00e4rjestys</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Tila</b>: {{ ticket.get_status }}<br>\r\n<b>Asiakaspalvelija</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Katso netiss\u00e4</a></b> p\u00e4ivitt\u00e4\u00e4ksesi palvelupyynt\u00f6\u00e4 (kirjautuminen vaaditaan)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Just for reference, the original ticket description was:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Asiakaspalvelijan kommentit liittyen ratkaisuun:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">T\u00e4m\u00e4 tiedote on my\u00f6s l\u00e4hetetty s\u00e4hk\u00f6postitse palvelupyynn\u00f6n l\u00e4hett\u00e4j\u00e4lle, joka tarkistaa sen ennen kuin voit sulkea palvelupyynn\u00f6n.</p>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 156,
"fields": {
"template_name": "resolved_owner",
"subject": "(Ratkaistu)",
"heading": "Palvelupyynt\u00f6 ratkaistu",
"plain_text": "Hello,\r\n\r\nSeuraava sinulle ohjattu palvelupyynt\u00f6 on ratkaistu:\r\n\r\nPalvelupyynn\u00f6n tunniste: {{ ticket.ticket }}\r\nJono: {{ queue.title }}\r\nOtsikko: {{ ticket.title }}\r\nVastaanotettu: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nL\u00e4hett\u00e4j\u00e4: {{ ticket.submitter_email|default:\"Tuntematon\" }}\r\nT\u00e4rkeysj\u00e4rjestys: {{ ticket.get_priority_display }}\r\nTila: {{ ticket.get_status }}\r\nAsiakaspalvelija: {{ ticket.get_assigned_to }}\r\nKatso netiss\u00e4: {{ ticket.staff_url }} (kirjautuminen vaaditaan)\r\n\r\nPalvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:\r\n\r\n{{ ticket.description }}\r\n\r\nAsiakaspalvelijamme kommentit ratkaisuun liittyen:\r\n\r\n{{ ticket.resolution }}\r\n\r\nT\u00e4m\u00e4 tiedote on my\u00f6s l\u00e4hetetty s\u00e4hk\u00f6postitse palvelupyynn\u00f6n l\u00e4hett\u00e4j\u00e4lle, joka tarkistaa sen ennen kuin voit sulkea palvelupyynn\u00f6n.",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hello,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Seuraava sinulle ohjattu palvelupyynt\u00f6 on ratkaistu:</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Palvelupyynn\u00f6n tunniste</b>: {{ ticket.ticket }}<br>\r\n<b>Jono</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Vastaanotettu</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>L\u00e4hett\u00e4j\u00e4</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>T\u00e4rkeysj\u00e4rjestys</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Tila</b>: {{ ticket.get_status }}<br>\r\n<b>Asiakaspalvelija</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Katso netiss\u00e4</a></b> p\u00e4ivitt\u00e4\u00e4ksesi palvelupyynt\u00f6\u00e4 (kirjautuminen vaaditaan)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Palvelupyynn\u00f6n alkuper\u00e4inen kuvaus oli:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Asiakaspalvelijamme kommentit ratkaisuun liittyen:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">T\u00e4m\u00e4 tiedote on my\u00f6s l\u00e4hetetty s\u00e4hk\u00f6postitse palvelupyynn\u00f6n l\u00e4hett\u00e4j\u00e4lle, joka tarkistaa sen ennen kuin voit sulkea palvelupyynn\u00f6n.</p>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 157,
"fields": {
"template_name": "resolved_submitter",
"subject": "(Ratkaistu)",
"heading": "Palvelupyynt\u00f6si on merkitty ratkaistuksi",
"plain_text": "Hei,\r\n\r\nOlit j\u00e4tt\u00e4nyt meille palvelupyynn\u00f6n otsikolla \"{{ ticket.title }}\". T\u00e4m\u00e4 s\u00e4hk\u00f6posti on tiedote siit\u00e4 ett\u00e4 palvelupyynt\u00f6 on merkitty ratkaistuksi.\r\n\r\nAlla asiakaspalvelijamme kommentit liittyen palvelupyynn\u00f6n {{ ticket.ticket }} ratkaisuun:\r\n\r\n{{ resolution }}\r\n\r\nVoitteko tarkistaa, ett\u00e4 t\u00e4m\u00e4 ratkaisu vastaa tarpeitasi, jotta voimme sulkea t\u00e4m\u00e4n lipun? Jos sinulla on kysytt\u00e4v\u00e4\u00e4 tai et usko t\u00e4m\u00e4n ratkaisun olevan riitt\u00e4v\u00e4, vastaa t\u00e4h\u00e4n s\u00e4hk\u00f6postiin ja pid\u00e4 s\u00e4hk\u00f6postin otsikko ennallaan.\r\n\r\nJos haluat n\u00e4hd\u00e4 t\u00e4m\u00e4n palvelupyynn\u00f6n verkossa, voit k\u00e4yd\u00e4 t\u00e4\u00e4ll\u00e4 {{ ticket.ticket_url }}",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Olit j\u00e4tt\u00e4nyt meille palvelupyynn\u00f6n otsikolla <i>{{ ticket.title }}</i>. T\u00e4m\u00e4 s\u00e4hk\u00f6posti on tiedote siit\u00e4 ett\u00e4 palvelupyynt\u00f6 on merkitty ratkaistuksi.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Alla asiakaspalvelijamme kommentit liittyen palvelupyynn\u00f6n <b>{{ ticket.ticket }}</b> ratkaisuun:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ resolution }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Voitteko tarkistaa, ett\u00e4 t\u00e4m\u00e4 ratkaisu vastaa tarpeitasi, jotta voimme sulkea t\u00e4m\u00e4n lipun? Jos sinulla on kysytt\u00e4v\u00e4\u00e4 tai et usko t\u00e4m\u00e4n ratkaisun olevan riitt\u00e4v\u00e4, vastaa t\u00e4h\u00e4n s\u00e4hk\u00f6postiin ja pid\u00e4 s\u00e4hk\u00f6postin otsikko ennallaan.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Jos haluat n\u00e4hd\u00e4 t\u00e4m\u00e4n palvelupyynn\u00f6n verkossa, voit k\u00e4yd\u00e4 t\u00e4\u00e4ll\u00e4 <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 158,
"fields": {
"template_name": "updated_cc",
"subject": "(Muokattu)",
"heading": "Palvelupyynt\u00f6\u00e4 muokattu",
"plain_text": "Hei,\r\n\r\nT\u00e4m\u00e4 on s\u00e4hk\u00f6postitiedote siit\u00e4 ett\u00e4 palvelupyynt\u00f6\u00e4 {{ ticket.ticket }} (\"{{ ticket.title }}\") jonka j\u00e4tti {{ ticket.submitter_email }} on p\u00e4ivitetty.\r\n\r\nPalvelupyynn\u00f6n tunniste: {{ ticket.ticket }}\r\nJono: {{ queue.title }}\r\nOtsikko: {{ ticket.title }}\r\nVastaanotettu: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nL\u00e4hett\u00e4j\u00e4: {{ ticket.submitter_email|default:\"Tuntematon\" }}\r\nT\u00e4rkeysj\u00e4rjestys: {{ ticket.get_priority_display }}\r\nTila: {{ ticket.get_status }}\r\nAsiakaspalvelija: {{ ticket.get_assigned_to }}\r\nKatso netiss\u00e4: {{ ticket.staff_url }} (kirjautuminen vaaditaan)\r\n\r\nAlkuper\u00e4inen kuvaus:\r\n\r\n{{ ticket.description }}\r\n\r\nSeuraava kommentti lis\u00e4ttiin:\r\n\r\n{{ comment }}\r\n\r\n{% if private%}N\u00e4it\u00e4 tietoja ei{% else %}N\u00e4m\u00e4 tiedot on{% endif%} l\u00e4hetetty s\u00e4hk\u00f6postitse palvelupyynn\u00f6n l\u00e4hett\u00e4j\u00e4lle.",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">T\u00e4m\u00e4 on s\u00e4hk\u00f6postitiedote siit\u00e4 ett\u00e4 palvelupyynt\u00f6\u00e4 {{ ticket.ticket }} (\"{{ ticket.title }}\") jonka j\u00e4tti {{ ticket.submitter_email }} on p\u00e4ivitetty.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Palvelupyynn\u00f6n tunniste</b>: {{ ticket.ticket }}<br>\r\n<b>Jono</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Vastaanotettu</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>L\u00e4hett\u00e4j\u00e4</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>T\u00e4rkeysj\u00e4rjestys</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Tila</b>: {{ ticket.get_status }}<br>\r\n<b>Asiakaspalvelija</b>: {{ ticket.get_assigned_to }}<br>\r\n<b><a href='{{ ticket.staff_url }}'>Katso netiss\u00e4</a></b> p\u00e4ivitt\u00e4\u00e4ksesi palvelupyynt\u00f6\u00e4 (kirjautuminen vaaditaan)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Alkuper\u00e4inen kuvaus:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Seuraava kommentti lis\u00e4ttiin:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ comment }}</blockquote>\r\n\r\n<p style=\"font-family: Tahoma, Arial, sans-serif; font-size: 11pt;\">{% if private%}N\u00e4it\u00e4 tietoja ei{% else %}N\u00e4m\u00e4 tiedot on{% endif%} l\u00e4hetetty s\u00e4hk\u00f6postitse palvelupyynn\u00f6n l\u00e4hett\u00e4j\u00e4lle.</p>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 159,
"fields": {
"template_name": "updated_owner",
"subject": "(Muokattu)",
"heading": "Palvelupyynt\u00f6\u00e4 muokattu",
"plain_text": "Hei,\r\n\r\nT\u00e4m\u00e4 on s\u00e4hk\u00f6postitiedote siit\u00e4 ett\u00e4 sinulle osoitettua palvelupyynt\u00f6\u00e4 {{ ticket.ticket }} (\"{{ ticket.title }}\") jonka j\u00e4tti {{ ticket.submitter_email }} on p\u00e4ivitetty.\r\n\r\nPalvelupyynn\u00f6n tunniste: {{ ticket.ticket }}\r\nJono: {{ queue.title }}\r\nOtsikko: {{ ticket.title }}\r\nVastaanotettu: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}\r\nL\u00e4hett\u00e4j\u00e4: {{ ticket.submitter_email|default:\"Tuntematon\" }}\r\nT\u00e4rkeysj\u00e4rjestys: {{ ticket.get_priority_display }}\r\nTila: {{ ticket.get_status }}\r\nAsiakaspalvelija: SIN\u00c4\r\nKatso netiss\u00e4: {{ ticket.staff_url }} (kirjautuminen vaaditaan)\r\n\r\nAlkuper\u00e4inen kuvaus:\r\n\r\n{{ ticket.description }}\r\n\r\nSeuraava kommentti lis\u00e4ttiin:\r\n\r\n{{ comment }}\r\n\r\n{% if private%}N\u00e4it\u00e4 tietoja ei{% else %}N\u00e4m\u00e4 tiedot on{% endif%} l\u00e4hetetty s\u00e4hk\u00f6postitse palvelupyynn\u00f6n l\u00e4hett\u00e4j\u00e4lle.",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">T\u00e4m\u00e4 on s\u00e4hk\u00f6postitiedote siit\u00e4 ett\u00e4 sinulle osoitettua palvelupyynt\u00f6\u00e4 {{ ticket.ticket }} (\"{{ ticket.title }}\") jonka j\u00e4tti {{ ticket.submitter_email }} on p\u00e4ivitetty</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">\r\n<b>Palvelupyynn\u00f6n tunniste</b>: {{ ticket.ticket }}<br>\r\n<b>Jono</b>: {{ queue.title }}<br>\r\n<b>Title</b>: {{ ticket.title }}<br>\r\n<b>Vastaanotettu</b>: {{ ticket.created|date:\"l N jS Y, \\a\\t P\" }}<br>\r\n<b>L\u00e4hett\u00e4j\u00e4</b>: {{ ticket.submitter_email|default:\"Unknown\" }}<br>\r\n<b>T\u00e4rkeysj\u00e4rjestys</b>: {{ ticket.get_priority_display }}<br>\r\n<b>Tila</b>: {{ ticket.get_status }}<br>\r\n<b>Asiakaspalvelija</b>: SIN\u00c4<br>\r\n<b><a href='{{ ticket.staff_url }}'>Katso netiss\u00e4</a></b> p\u00e4ivitt\u00e4\u00e4ksesi palvelupyynt\u00f6\u00e4 (kirjautuminen vaaditaan)</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Alkuper\u00e4inen kuvaus:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ ticket.description|linebreaksbr }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Seuraava kommentti lis\u00e4ttiin:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ comment }}</blockquote>\r\n\r\n<p style=\"font-family: Tahoma, Arial, sans-serif; font-size: 11pt;\">{% if private%}N\u00e4it\u00e4 tietoja ei{% else %}N\u00e4m\u00e4 tiedot on{% endif%} l\u00e4hetetty s\u00e4hk\u00f6postitse palvelupyynn\u00f6n l\u00e4hett\u00e4j\u00e4lle.</p>",
"locale": "fi"
}
},
{
"model": "helpdesk.emailtemplate",
"pk": 160,
"fields": {
"template_name": "updated_submitter",
"subject": "(Muokattu)",
"heading": "Palvelupyynt\u00f6\u00e4si muokattu",
"plain_text": "Hei,\r\n\r\nT\u00e4m\u00e4 on s\u00e4hk\u00f6postitiedote siit\u00e4 ett\u00e4 j\u00e4tt\u00e4m\u00e4\u00e4si palvelupyynt\u00f6\u00e4 \"{{ ticket.title }}\" on p\u00e4ivitetty.\r\n\r\nSeuraava kommentti lis\u00e4ttiin palvelupyynt\u00f6\u00f6n {{ ticket.ticket }}:\r\n\r\n{{ comment }}\r\n\r\nJos sinun on annettava meille lis\u00e4tietoja, vastaa t\u00e4h\u00e4n s\u00e4hk\u00f6postiin ja pid\u00e4 otsikko ennallaan. Voit my\u00f6s tarkastella ja p\u00e4ivitt\u00e4\u00e4 lippua verkossa k\u00e4ym\u00e4ll\u00e4 {{ ticket.ticket_url }}",
"html": "<p style=\"font-family: sans-serif; font-size: 1em;\">Hei,</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">T\u00e4m\u00e4 on s\u00e4hk\u00f6postitiedote siit\u00e4 ett\u00e4 j\u00e4tt\u00e4m\u00e4\u00e4si palvelupyynt\u00f6\u00e4 <i>{{ ticket.title }}</i> on p\u00e4ivitetty.</p>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Seuraava kommentti lis\u00e4ttiin palvelupyynt\u00f6\u00f6n <b>{{ ticket.ticket }}</b>:</p>\r\n\r\n<blockquote style=\"font-family: sans-serif; font-size: 1em;\">{{ comment }}</blockquote>\r\n\r\n<p style=\"font-family: sans-serif; font-size: 1em;\">Jos sinun on annettava meille lis\u00e4tietoja, vastaa t\u00e4h\u00e4n s\u00e4hk\u00f6postiin ja pid\u00e4 otsikko ennallaan. Voit my\u00f6s tarkastella ja p\u00e4ivitt\u00e4\u00e4 lippua verkossa k\u00e4ym\u00e4ll\u00e4 <a href=\"{{ ticket.ticket_url }}\">{{ ticket.ticket_url }}</a>.</p>",
"locale": "fi"
}
} }
] ]

View File

@ -311,7 +311,7 @@ def text_is_spam(text, request):
def process_attachments(followup, attached_files): def process_attachments(followup, attached_files):
max_email_attachment_size = getattr(settings, 'MAX_EMAIL_ATTACHMENT_SIZE', 512000) max_email_attachment_size = getattr(settings, 'HELPDESK_MAX_EMAIL_ATTACHMENT_SIZE', 512000)
attachments = [] attachments = []
for attached in attached_files: for attached in attached_files:
@ -330,7 +330,7 @@ def process_attachments(followup, attached_files):
if attached.size < max_email_attachment_size: if attached.size < max_email_attachment_size:
# Only files smaller than 512kb (or as defined in # Only files smaller than 512kb (or as defined in
# settings.MAX_EMAIL_ATTACHMENT_SIZE) are sent via email. # settings.HELPDESK_MAX_EMAIL_ATTACHMENT_SIZE) are sent via email.
attachments.append([filename, att.file]) attachments.append([filename, att.file])
return attachments return attachments

File diff suppressed because it is too large Load Diff

View File

@ -101,6 +101,8 @@ def process_email(quiet=False):
if quiet: if quiet:
logger.propagate = False # do not propagate to root logger that would log to console logger.propagate = False # do not propagate to root logger that would log to console
logdir = q.logging_dir or '/var/log/helpdesk/' logdir = q.logging_dir or '/var/log/helpdesk/'
try:
handler = logging.FileHandler(join(logdir, q.slug + '_get_email.log')) handler = logging.FileHandler(join(logdir, q.slug + '_get_email.log'))
logger.addHandler(handler) logger.addHandler(handler)
@ -113,6 +115,15 @@ def process_email(quiet=False):
process_queue(q, logger=logger) process_queue(q, logger=logger)
q.email_box_last_check = timezone.now() q.email_box_last_check = timezone.now()
q.save() q.save()
finally:
try:
handler.close()
except Exception as e:
logging.exception(e)
try:
logger.removeHandler(handler)
except Exception as e:
logging.exception(e)
def process_queue(q, logger): def process_queue(q, logger):
@ -314,7 +325,13 @@ def ticket_from_message(message, queue, logger):
sender = message.get('from', _('Unknown Sender')) sender = message.get('from', _('Unknown Sender'))
sender = decode_mail_headers(decodeUnknown(message.get_charset(), sender)) sender = decode_mail_headers(decodeUnknown(message.get_charset(), sender))
sender_email = email.utils.parseaddr(sender)[1] # to address bug #832, we wrap all the text in front of the email address in
# double quotes by using replace() on the email string. Then,
# take first item of list, second item of tuple is the actual email address.
# Note that the replace won't work on just an email with no real name,
# but the getaddresses() function seems to be able to handle just unclosed quotes
# correctly. Not ideal, but this seems to work for now.
sender_email = email.utils.getaddresses(['\"' + sender.replace('<', '\" <')])[0][1]
cc = message.get_all('cc', None) cc = message.get_all('cc', None)
if cc: if cc:
@ -551,7 +568,7 @@ def ticket_from_message(message, queue, logger):
# copy email to all those CC'd to this particular ticket # copy email to all those CC'd to this particular ticket
for cc in t.ticketcc_set.all(): for cc in t.ticketcc_set.all():
# don't duplicate email to assignee # don't duplicate email to assignee
if t.assigned_to.email != cc.email_address: if not t.assigned_to or (t.assigned_to.email != cc.email_address):
send_templated_mail( send_templated_mail(
'updated_cc', 'updated_cc',
context, context,

View File

@ -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?'),
),
]

View File

@ -763,7 +763,8 @@ def attachment_path(instance, filename):
att_path = os.path.join(settings.MEDIA_ROOT, path) att_path = os.path.join(settings.MEDIA_ROOT, path)
if settings.DEFAULT_FILE_STORAGE == "django.core.files.storage.FileSystemStorage": if settings.DEFAULT_FILE_STORAGE == "django.core.files.storage.FileSystemStorage":
if not os.path.exists(att_path): if not os.path.exists(att_path):
os.makedirs(att_path, 0o777) # TODO: is there a better way to handle directory permissions more consistently?
os.makedirs(att_path, 0o700)
return os.path.join(path, filename) return os.path.join(path, filename)
@ -1031,8 +1032,9 @@ class KBItem(models.Model):
return super(KBItem, self).save(*args, **kwargs) return super(KBItem, self).save(*args, **kwargs)
def _score(self): def _score(self):
""" Return a score out of 10 or Unrated if no votes """
if self.votes > 0: if self.votes > 0:
return int(self.recommendations / self.votes) return (self.recommendations / self.votes) * 10
else: else:
return _('Unrated') return _('Unrated')
score = property(_score) score = property(_score)

View File

@ -122,6 +122,10 @@ if HELPDESK_EMAIL_SUBJECT_TEMPLATE.find("ticket.ticket") < 0:
# default fallback locale when queue locale not found # default fallback locale when queue locale not found
HELPDESK_EMAIL_FALLBACK_LOCALE = getattr(settings, 'HELPDESK_EMAIL_FALLBACK_LOCALE', 'en') HELPDESK_EMAIL_FALLBACK_LOCALE = getattr(settings, 'HELPDESK_EMAIL_FALLBACK_LOCALE', 'en')
# default maximum email attachment size, in bytes
# only attachments smaller than this size will be sent via email
HELPDESK_MAX_EMAIL_ATTACHMENT_SIZE = getattr(settings, 'HELPDESK_MAX_EMAIL_ATTACHMENT_SIZE', 512000)
######################################## ########################################
# options for staff.create_ticket view # # options for staff.create_ticket view #

View File

@ -28,7 +28,10 @@ $(document).on('change', ':file', function() {
</div> </div>
<!-- /.panel-heading --> <!-- /.panel-heading -->
<div class="panel-body"> <div class="panel-body">
<p>{% trans "Unless otherwise stated, all fields are required." %} {% trans "Please provide as descriptive a title and description as possible." %}</p> <p>
{% trans "Unless otherwise stated, all fields are required." %}
{% trans "Please provide as descriptive a title and description as possible." %}
</p>
<form method='post' action='./' enctype='multipart/form-data'> <form method='post' action='./' enctype='multipart/form-data'>
<fieldset class='col-xs-8'> <fieldset class='col-xs-8'>
{% comment %}{{ form|bootstrap }}{% endcomment %} {% comment %}{{ form|bootstrap }}{% endcomment %}
@ -37,7 +40,10 @@ $(document).on('change', ':file', function() {
{{ field }} {{ field }}
{% else %} {% else %}
<div class="form-group"> <div class="form-group">
<dt><label for='id_{{ field.name }}'>{% trans field.label %}</label>{% if not field.field.required %} <span class='form_optional'>{% trans "(Optional)" %}</span>{% endif %}</dt> <dt>
<label for='id_{{ field.name }}'>{{ field.label }}</label>
{% if not field.field.required %} <span class='form_optional'>{% trans "(Optional)" %}</span>{% endif %}
</dt>
<dd>{{ field }}</dd> <dd>{{ field }}</dd>
{% if field.errors %}<dd class='error'>{{ field.errors }}</dd>{% endif %} {% if field.errors %}<dd class='error'>{{ field.errors }}</dd>{% endif %}
{% if field.help_text %}<dd class='form_help_text help-block'>{% trans field.help_text %}</dd>{% endif %} {% if field.help_text %}<dd class='form_help_text help-block'>{% trans field.help_text %}</dd>{% endif %}

View File

@ -16,18 +16,21 @@
{% if all_tickets_reported_by_current_user %} {% if all_tickets_reported_by_current_user %}
{% trans "All Tickets submitted by you" as ticket_list_caption %} {% trans "All Tickets submitted by you" as ticket_list_caption %}
{% include 'helpdesk/include/tickets.html' with ticket_list=all_tickets_reported_by_current_user ticket_list_empty_message="" %} {% trans "atrbcu_page" as page_var %}
{% include 'helpdesk/include/tickets.html' with ticket_list=all_tickets_reported_by_current_user ticket_list_empty_message="" page_var=page_var %}
{% endif %} {% endif %}
{% trans "Open Tickets assigned to you (you are working on this ticket)" as ticket_list_caption %} {% trans "Open Tickets assigned to you (you are working on this ticket)" as ticket_list_caption %}
{% trans "You have no tickets assigned to you." as no_assigned_tickets %} {% trans "You have no tickets assigned to you." as no_assigned_tickets %}
{% include 'helpdesk/include/tickets.html' with ticket_list=user_tickets ticket_list_empty_message=no_assigned_tickets %} {% trans "ut_page" as page_var %}
{% include 'helpdesk/include/tickets.html' with ticket_list=user_tickets ticket_list_empty_message=no_assigned_tickets page_var=page_var %}
{% include 'helpdesk/include/unassigned.html' %} {% include 'helpdesk/include/unassigned.html' %}
{% if user_tickets_closed_resolved %} {% if user_tickets_closed_resolved %}
{% trans "Closed & resolved Tickets you used to work on" as ticket_list_caption %} {% trans "Closed & resolved Tickets you used to work on" as ticket_list_caption %}
{% include 'helpdesk/include/tickets.html' with ticket_list=user_tickets_closed_resolved ticket_list_empty_message="" %} {% trans "utcr_page" as page_var %}
{% include 'helpdesk/include/tickets.html' with ticket_list=user_tickets_closed_resolved ticket_list_empty_message="" page_var=page_var %}
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -37,6 +37,36 @@
</table> </table>
</div> </div>
<!-- /.table-responsive --> <!-- /.table-responsive -->
{% if ticket_list.has_other_pages %}
<ul class="pagination">
<!-- if we aren't on page one, go back to start and go back one controls -->
{% if ticket_list.has_previous %}
<li><a href="?{{ page_var }}=1">&laquo;&laquo;</a></li>
<li><a href="?{{ page_var }}={{ ticket_list.previous_page_number }}">&laquo;</a></li>
{% else %}
<li class="disabled"><span>&laquo;&laquo;</span></li>
<li class="disabled"><span>&laquo;</span></li>
{% endif %}
<!-- other pages, set thresh to the number to show before and after active -->
{% with 5 as thresh %}
{% for i in ticket_list.paginator.page_range %}
{% if ticket_list.number == i %}
<li class="active"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
{% elif i <= ticket_list.number|add:5 and i >= ticket_list.number|add:-5 %}
<li><a href="?{{ page_var }}={{ i }}">{{ i }}</a></li>
{% endif %}
{% endfor %}
{% endwith %}
<!-- if we aren't on the last page, go forward one and go to end controls -->
{% if ticket_list.has_next %}
<li><a href="?{{ page_var }}={{ ticket_list.next_page_number }}">&raquo;</a></li>
<li><a href="?{{ page_var }}={{ ticket_list.paginator.num_pages }}">&raquo;&raquo;</a></li>
{% else %}
<li class="disabled"><span>&raquo;</span></li>
<li class="disabled"><span>&raquo;&raquo;</span></li>
{% endif %}
</ul>
{% endif %}
</div> </div>
<!-- /.panel-body --> <!-- /.panel-body -->
</div> </div>

View File

@ -1,7 +1,7 @@
{% extends "helpdesk/public_base.html" %}{% load i18n humanize %} {% extends "helpdesk/public_base.html" %}{% load i18n humanize %}
{% block helpdesk_body %} {% block helpdesk_body %}
<h2>{% trans 'Knowledgebase Category' %}:{% blocktrans with category.title as kbcat %}{{ kbcat }}{% endblocktrans %}</h2> <h2>{% trans 'Knowledgebase Category' %}: {% blocktrans with category.title as kbcat %}{{ kbcat }}{% endblocktrans %}</h2>
<div class="col-lg-12"> <div class="col-lg-12">
<div class="well well-sm"> <div class="well well-sm">
@ -26,7 +26,13 @@
{% blocktrans with item.get_absolute_url as url %}View <a href='{{ url }}'>Answer <i class="fa fa-arrow-right"></i></a>{% endblocktrans %} {% blocktrans with item.get_absolute_url as url %}View <a href='{{ url }}'>Answer <i class="fa fa-arrow-right"></i></a>{% endblocktrans %}
</p> </p>
<div class="well well-sm"> <div class="well well-sm">
<p>{% trans 'Rating' %}: {{ item.score }}</p> <p>{% trans 'Rating' %}:
{% if item.votes > 0 %}
{{ item.score|floatformat }}/10
{% else %}
{% trans 'no score yet' %}
{% endif %}
</p>
<p>{% trans 'Last Update' %}: {{ item.last_updated|naturaltime }}</p> <p>{% trans 'Last Update' %}: {{ item.last_updated|naturaltime }}</p>
</div> </div>
</div> </div>

View File

@ -1,7 +1,7 @@
{% extends "helpdesk/public_base.html" %}{% load i18n %}{% load markdown_deux_tags %} {% extends "helpdesk/public_base.html" %}{% load i18n %}{% load markdown_deux_tags %}
{% block helpdesk_body %} {% block helpdesk_body %}
<h2>{% trans 'Knowledgebase' %}:{% blocktrans with item.title as item %}{{ item }}{% endblocktrans %}</h2> <h2>{% trans 'Knowledgebase' %}: {% blocktrans with item.title as item %}{{ item }}{% endblocktrans %}</h2>
<div class="col-lg-12"> <div class="col-lg-12">
<div class="panel panel-primary"> <div class="panel panel-primary">
@ -29,7 +29,12 @@
<ul> <ul>
<li>{% blocktrans with item.recommendations as recommendations %}Recommendations: {{ recommendations }}{% endblocktrans %}</li> <li>{% blocktrans with item.recommendations as recommendations %}Recommendations: {{ recommendations }}{% endblocktrans %}</li>
<li>{% blocktrans with item.votes as votes %}Votes: {{ votes }}{% endblocktrans %}</li> <li>{% blocktrans with item.votes as votes %}Votes: {{ votes }}{% endblocktrans %}</li>
<li>{% blocktrans with item.score as score %}Overall Rating: {{ score }}{% endblocktrans %}</li> <li>{% trans 'Rating' %}:
{% if item.votes > 0 %}
{{ item.score|floatformat }}/10
{% else %}
{% trans 'no score yet' %}
{% endif %}</li>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -26,7 +26,7 @@
</tr> </tr>
<tr> <tr>
<td>{% trans "Average number of days until ticket is closed (tickets opened in last 60 days): " %}</td> <td>{% trans "Average number of days until ticket is closed (tickets opened in last 60 days): " %}</td>
<td><strong style="color: red;">{{ basic_ticket_stats.average_nbr_days_until_ticket_closed_last_60_days }}</strong>. {% trans "Click" %} <strong><a href="{% url 'helpdesk:report_index' %}daysuntilticketclosedbymonth">here</a></strong> {% trans "for detailed average by month." %} </td> <td><strong style="color: red;">{{ basic_ticket_stats.average_nbr_days_until_ticket_closed_last_60_days }}</strong>. {% trans "Click" %} <strong><a href="{% url 'helpdesk:report_index' %}daysuntilticketclosedbymonth">{% trans "here" %}</a></strong> {% trans "for detailed average by month." %} </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@ -75,6 +75,10 @@
{% for d in data %}<tr class='row_{% cycle 'odd' 'even' %}'> {% for d in data %}<tr class='row_{% cycle 'odd' 'even' %}'>
{% for f in d %}<td class='report'>{{ f }}</td>{% endfor %} {% for f in d %}<td class='report'>{{ f }}</td>{% endfor %}
</tr>{% endfor %} </tr>{% endfor %}
{# Total row #}
<tr>
{% for f in total_data %}<td class='report'>{{ f }}</td>{% endfor %}
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -17,16 +17,16 @@ $(document).ready(function() {
}); });
$("#select_all").click(function() { $("#select_all").click(function() {
$(".ticket_multi_select").attr('checked', true); $(".ticket_multi_select").prop('checked', true);
return false; return false;
}); });
$("#select_none").click(function() { $("#select_none").click(function() {
$(".ticket_multi_select").attr('checked', false); $(".ticket_multi_select").prop('checked', false);
return false; return false;
}); });
$("#select_inverse").click(function() { $("#select_inverse").click(function() {
$(".ticket_multi_select").each(function() { $(".ticket_multi_select").each(function() {
$(this).attr('checked', !$(this).attr('checked')); $(this).prop('checked', !$(this).prop('checked'));
}); });
return false; return false;
}); });
@ -129,8 +129,8 @@ $(document).ready(function() {
<button class='filterBuilderRemove btn btn-danger btn-xs'><i class="fa fa-trash-o"></i></button> <button class='filterBuilderRemove btn btn-danger btn-xs'><i class="fa fa-trash-o"></i></button>
</div> </div>
<div class='thumbnail filterBox{% if query %} filterBoxShow{% endif %}' id='filterBoxKeywords'> <div class='thumbnail filterBox{% if query_params.search_string %} filterBoxShow{% endif %}' id='filterBoxKeywords'>
<label for='id_query'>{% trans "Keywords" %}</label><input type='text' name='q' value='{{ query }}' id='id_query' /> <label for='id_query'>{% trans "Keywords" %}</label><input type='text' name='q' value='{{ query_params.search_string|default:"" }}' id='id_query' />
<p class='filterHelp'>{% trans "Keywords are case-insensitive, and will be looked for in the title, body and submitter fields." %}</p> <p class='filterHelp'>{% trans "Keywords are case-insensitive, and will be looked for in the title, body and submitter fields." %}</p>
<button class='filterBuilderRemove btn btn-danger btn-xs'><i class="fa fa-trash-o"></i></button> <button class='filterBuilderRemove btn btn-danger btn-xs'><i class="fa fa-trash-o"></i></button>
</div> </div>
@ -184,7 +184,7 @@ $(document).ready(function() {
<form method='get' action='{% url 'helpdesk:list' %}'> <form method='get' action='{% url 'helpdesk:list' %}'>
<p><label for='id_query_selector'>{% trans "Query" %}</label> <select name='saved_query' id='id_query_selector'> <p><label for='id_query_selector'>{% trans "Query" %}</label> <select name='saved_query' id='id_query_selector'>
{% for q in user_saved_queries %} {% for q in user_saved_queries %}
<option value='{{ q.id }}'>{{ q.title }}{% if q.shared %} (Shared{% ifnotequal user q.user %} by {{ q.user.get_username }}{% endifnotequal %}){% endif %}</option> <option value='{{ q.id }}'>{{ q.title }}{% if q.shared %} ({% trans "Shared" %}{% ifnotequal user q.user %} by {{ q.user.get_username }}{% endifnotequal %}){% endif %}</option>
{% endfor %} {% endfor %}
</select></p> </select></p>
<input class="btn btn-primary" type='submit' value='{% trans "Run Query" %}'> <input class="btn btn-primary" type='submit' value='{% trans "Run Query" %}'>

View File

@ -150,6 +150,79 @@ class GetEmailParametricTemplate(object):
self.assertEqual(ticket2.title, test_email_subject) self.assertEqual(ticket2.title, test_email_subject)
self.assertEqual(ticket2.description, test_email_body) self.assertEqual(ticket2.description, test_email_body)
def test_commas_in_mail_headers(self):
"""Tests correctly decoding mail headers when a comma is encoded into
UTF-8. See bug report #832."""
# example email text from Django docs: https://docs.djangoproject.com/en/1.10/ref/unicode/
test_email_from = "Bernard-Bouissières, Benjamin <bbb@example.com>"
test_email_subject = "Commas in From lines"
test_email_body = "Testing commas in from email UTF-8."
test_email = "To: helpdesk@example.com\nFrom: " + test_email_from + "\nSubject: " + test_email_subject + "\n\n" + test_email_body
test_mail_len = len(test_email)
if self.socks:
from socks import ProxyConnectionError
with self.assertRaisesRegex(ProxyConnectionError, '%s:%s' % (unrouted_socks_server, unused_port)):
call_command('get_email')
else:
# Test local email reading
if self.method == 'local':
with mock.patch('helpdesk.management.commands.get_email.listdir') as mocked_listdir, \
mock.patch('helpdesk.management.commands.get_email.isfile') as mocked_isfile, \
mock.patch('builtins.open' if six.PY3 else '__builtin__.open', mock.mock_open(read_data=test_email)):
mocked_isfile.return_value = True
mocked_listdir.return_value = ['filename1', 'filename2']
call_command('get_email')
mocked_listdir.assert_called_with('/var/lib/mail/helpdesk/')
mocked_isfile.assert_any_call('/var/lib/mail/helpdesk/filename1')
mocked_isfile.assert_any_call('/var/lib/mail/helpdesk/filename2')
elif self.method == 'pop3':
# mock poplib.POP3's list and retr methods to provide responses as per RFC 1939
pop3_emails = {
'1': ("+OK", test_email.split('\n')),
'2': ("+OK", test_email.split('\n')),
}
pop3_mail_list = ("+OK 2 messages", ("1 %d" % test_mail_len, "2 %d" % test_mail_len))
mocked_poplib_server = mock.Mock()
mocked_poplib_server.list = mock.Mock(return_value=pop3_mail_list)
mocked_poplib_server.retr = mock.Mock(side_effect=lambda x: pop3_emails[x])
with mock.patch('helpdesk.management.commands.get_email.poplib', autospec=True) as mocked_poplib:
mocked_poplib.POP3 = mock.Mock(return_value=mocked_poplib_server)
call_command('get_email')
elif self.method == 'imap':
# mock imaplib.IMAP4's search and fetch methods with responses from RFC 3501
imap_emails = {
"1": ("OK", (("1", test_email),)),
"2": ("OK", (("2", test_email),)),
}
imap_mail_list = ("OK", ("1 2",))
mocked_imaplib_server = mock.Mock()
mocked_imaplib_server.search = mock.Mock(return_value=imap_mail_list)
# we ignore the second arg as the data item/mime-part is constant (RFC822)
mocked_imaplib_server.fetch = mock.Mock(side_effect=lambda x, _: imap_emails[x])
with mock.patch('helpdesk.management.commands.get_email.imaplib', autospec=True) as mocked_imaplib:
mocked_imaplib.IMAP4 = mock.Mock(return_value=mocked_imaplib_server)
call_command('get_email')
ticket1 = get_object_or_404(Ticket, pk=1)
self.assertEqual(ticket1.ticket_for_url, "QQ-%s" % ticket1.id)
self.assertEqual(ticket1.submitter_email, 'bbb@example.com')
self.assertEqual(ticket1.title, test_email_subject)
self.assertEqual(ticket1.description, test_email_body)
ticket2 = get_object_or_404(Ticket, pk=2)
self.assertEqual(ticket2.ticket_for_url, "QQ-%s" % ticket2.id)
self.assertEqual(ticket2.submitter_email, 'bbb@example.com')
self.assertEqual(ticket2.title, test_email_subject)
self.assertEqual(ticket2.description, test_email_body)
def test_read_email_with_template_tag(self): def test_read_email_with_template_tag(self):
"""Tests reading plain text emails from a queue and creating tickets, """Tests reading plain text emails from a queue and creating tickets,
except this time the email body contains a Django template tag. except this time the email body contains a Django template tag.

View File

@ -15,6 +15,7 @@ from django.conf import settings
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.urls import reverse from django.urls import reverse
from django.core.exceptions import ValidationError, PermissionDenied from django.core.exceptions import ValidationError, PermissionDenied
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.db.models import Q from django.db.models import Q
from django.http import HttpResponseRedirect, Http404, HttpResponse from django.http import HttpResponseRedirect, Http404, HttpResponse
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render, get_object_or_404
@ -78,7 +79,7 @@ def _has_access_to_queue(user, queue):
def _is_my_ticket(user, ticket): def _is_my_ticket(user, ticket):
"""Check to see if the user has permission to access """Check to see if the user has permission to access
a ticket. If not then deny 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 return True
else: else:
return False return False
@ -91,6 +92,15 @@ def dashboard(request):
showing ticket counts by queue/status, and a list of unassigned tickets showing ticket counts by queue/status, and a list of unassigned tickets
with options for them to 'Take' ownership of said 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)
# open & reopened tickets, assigned to current user # open & reopened tickets, assigned to current user
tickets = Ticket.objects.select_related('queue').filter( tickets = Ticket.objects.select_related('queue').filter(
assigned_to=request.user, assigned_to=request.user,
@ -141,6 +151,41 @@ def dashboard(request):
else: else:
where_clause = """WHERE q.id = t.queue_id""" where_clause = """WHERE q.id = t.queue_id"""
# get user assigned tickets page
paginator = Paginator(
tickets, tickets_per_page)
try:
tickets = paginator.page(user_tickets_page)
except PageNotAnInteger:
tickets = paginator.page(1)
except EmptyPage:
tickets = paginator.page(
paginator.num_pages)
# get user completed tickets page
paginator = Paginator(
tickets_closed_resolved, tickets_per_page)
try:
tickets_closed_resolved = paginator.page(
user_tickets_closed_resolved_page)
except PageNotAnInteger:
tickets_closed_resolved = paginator.page(1)
except EmptyPage:
tickets_closed_resolved = paginator.page(
paginator.num_pages)
# get user submitted tickets page
paginator = Paginator(
all_tickets_reported_by_current_user, tickets_per_page)
try:
all_tickets_reported_by_current_user = paginator.page(
all_tickets_reported_by_current_user_page)
except PageNotAnInteger:
all_tickets_reported_by_current_user = paginator.page(1)
except EmptyPage:
all_tickets_reported_by_current_user = paginator.page(
paginator.num_pages)
return render(request, 'helpdesk/dashboard.html', { return render(request, 'helpdesk/dashboard.html', {
'user_tickets': tickets, 'user_tickets': tickets,
'user_tickets_closed_resolved': tickets_closed_resolved, 'user_tickets_closed_resolved': tickets_closed_resolved,
@ -1264,11 +1309,17 @@ def run_report(request, report):
column_headings = [col1heading] + possible_options 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 # Pivot the data so that 'header1' fields are always first column
# in the row, and 'possible_options' are always the 2nd - nth columns. # in the row, and 'possible_options' are always the 2nd - nth columns.
for item in header1: for item in header1:
data = [] data = []
for hdr in possible_options: 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]) data.append(summarytable[item, hdr])
table.append([item] + data) table.append([item] + data)
@ -1287,10 +1338,16 @@ def run_report(request, report):
for series in table: for series in table:
series_names.append(series[0]) series_names.append(series[0])
# Add total row to table
total_data = ['Total']
for hdr in possible_options:
total_data.append(str(totals[hdr]))
return render(request, 'helpdesk/report_output.html', { return render(request, 'helpdesk/report_output.html', {
'title': title, 'title': title,
'charttype': charttype, 'charttype': charttype,
'data': table, 'data': table,
'total_data': total_data,
'headings': column_headings, 'headings': column_headings,
'series_names': series_names, 'series_names': series_names,
'morrisjs_data': morrisjs_data, 'morrisjs_data': morrisjs_data,
@ -1430,16 +1487,17 @@ def ticket_dependency_add(request, ticket_id):
raise PermissionDenied() raise PermissionDenied()
if not _is_my_ticket(request.user, ticket): if not _is_my_ticket(request.user, ticket):
raise PermissionDenied() raise PermissionDenied()
if request.method == 'POST':
form = TicketDependencyForm(request.POST) form = TicketDependencyForm(request.POST or None)
# A ticket cannot depends on itself or on a ticket already depending on it
form.fields['depends_on'].queryset = Ticket.objects.exclude(
Q(id=ticket.id) | Q(ticketdependency__depends_on=ticket)
)
if form.is_valid(): if form.is_valid():
ticketdependency = form.save(commit=False) ticketdependency = form.save(commit=False)
ticketdependency.ticket = ticket ticketdependency.ticket = ticket
if ticketdependency.ticket != ticketdependency.depends_on:
ticketdependency.save() ticketdependency.save()
return HttpResponseRedirect(reverse('helpdesk:view', args=[ticket.id])) return HttpResponseRedirect(reverse('helpdesk:view', args=[ticket.id]))
else:
form = TicketDependencyForm()
return render(request, 'helpdesk/ticket_dependency_add.html', { return render(request, 'helpdesk/ticket_dependency_add.html', {
'ticket': ticket, 'ticket': ticket,
'form': form, 'form': form,

View File

@ -68,6 +68,7 @@ class QuickDjangoTest(object):
settings.configure( settings.configure(
DEBUG=True, DEBUG=True,
TIME_ZONE='UTC',
DATABASES={ DATABASES={
'default': { 'default': {
'ENGINE': 'django.db.backends.sqlite3', 'ENGINE': 'django.db.backends.sqlite3',

View File

@ -6,7 +6,7 @@ from distutils.util import convert_path
from fnmatch import fnmatchcase from fnmatch import fnmatchcase
from setuptools import setup, find_packages from setuptools import setup, find_packages
version = '0.2.19' version = '0.2.22'
# Provided as an attribute, so you can append to these instead # Provided as an attribute, so you can append to these instead
# of replicating them: # of replicating them: