mirror of
https://github.com/django-helpdesk/django-helpdesk.git
synced 2025-02-01 19:09:26 +01:00
* On public updates, email any attachments to the submitter/queue CC/ticket owner if they're below the size threshold (512kb by default, but overridden with settings.MAX_EMAIL_ATTACHMENT_SIZE.
Resolves issue #44.
This commit is contained in:
parent
ed3250455a
commit
2432d61ad0
@ -9,6 +9,7 @@ views/staff.py - The bulk of the application - provides most business logic and
|
|||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.contrib.auth.decorators import login_required, user_passes_test
|
from django.contrib.auth.decorators import login_required, user_passes_test
|
||||||
from django.core.files.base import ContentFile
|
from django.core.files.base import ContentFile
|
||||||
@ -181,6 +182,26 @@ def update_ticket(request, ticket_id):
|
|||||||
|
|
||||||
f.save()
|
f.save()
|
||||||
|
|
||||||
|
files = []
|
||||||
|
if request.FILES:
|
||||||
|
import mimetypes, os
|
||||||
|
for file in request.FILES.getlist('attachment'):
|
||||||
|
filename = file.name.replace(' ', '_')
|
||||||
|
a = Attachment(
|
||||||
|
followup=f,
|
||||||
|
filename=filename,
|
||||||
|
mime_type=mimetypes.guess_type(filename)[0] or 'application/octet-stream',
|
||||||
|
size=file.size,
|
||||||
|
)
|
||||||
|
a.file.save(file.name, file, save=False)
|
||||||
|
a.save()
|
||||||
|
|
||||||
|
if file.size < getattr(settings, 'MAX_EMAIL_ATTACHMENT_SIZE', 512000):
|
||||||
|
# Only files smaller than 512kb (or as defined in
|
||||||
|
# settings.MAX_EMAIL_ATTACHMENT_SIZE) are sent via email.
|
||||||
|
files.append(a.file.path)
|
||||||
|
|
||||||
|
|
||||||
if title != ticket.title:
|
if title != ticket.title:
|
||||||
c = TicketChange(
|
c = TicketChange(
|
||||||
followup=f,
|
followup=f,
|
||||||
@ -225,6 +246,7 @@ def update_ticket(request, ticket_id):
|
|||||||
recipients=ticket.submitter_email,
|
recipients=ticket.submitter_email,
|
||||||
sender=ticket.queue.from_address,
|
sender=ticket.queue.from_address,
|
||||||
fail_silently=True,
|
fail_silently=True,
|
||||||
|
files=files,
|
||||||
)
|
)
|
||||||
|
|
||||||
if ticket.assigned_to and request.user != ticket.assigned_to and ticket.assigned_to.email:
|
if ticket.assigned_to and request.user != ticket.assigned_to and ticket.assigned_to.email:
|
||||||
@ -246,6 +268,7 @@ def update_ticket(request, ticket_id):
|
|||||||
recipients=ticket.assigned_to.email,
|
recipients=ticket.assigned_to.email,
|
||||||
sender=ticket.queue.from_address,
|
sender=ticket.queue.from_address,
|
||||||
fail_silently=True,
|
fail_silently=True,
|
||||||
|
files=files,
|
||||||
)
|
)
|
||||||
|
|
||||||
if ticket.queue.updated_ticket_cc:
|
if ticket.queue.updated_ticket_cc:
|
||||||
@ -264,21 +287,9 @@ def update_ticket(request, ticket_id):
|
|||||||
recipients=ticket.queue.updated_ticket_cc,
|
recipients=ticket.queue.updated_ticket_cc,
|
||||||
sender=ticket.queue.from_address,
|
sender=ticket.queue.from_address,
|
||||||
fail_silently=True,
|
fail_silently=True,
|
||||||
|
files=files,
|
||||||
)
|
)
|
||||||
|
|
||||||
if request.FILES:
|
|
||||||
import mimetypes
|
|
||||||
for file in request.FILES.getlist('attachment'):
|
|
||||||
filename = file.name.replace(' ', '_')
|
|
||||||
a = Attachment(
|
|
||||||
followup=f,
|
|
||||||
filename=filename,
|
|
||||||
mime_type=mimetypes.guess_type(filename)[0] or 'application/octet-stream',
|
|
||||||
size=file.size,
|
|
||||||
)
|
|
||||||
a.file.save(file.name, file, save=False)
|
|
||||||
a.save()
|
|
||||||
|
|
||||||
ticket.save()
|
ticket.save()
|
||||||
|
|
||||||
return HttpResponseRedirect(ticket.get_absolute_url())
|
return HttpResponseRedirect(ticket.get_absolute_url())
|
||||||
|
Loading…
Reference in New Issue
Block a user