mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-25 08:46:10 -06:00
adding conversion for ImageAttachment
This commit is contained in:
parent
48d57d3a35
commit
61391feb78
@ -15,7 +15,7 @@ from django.urls import reverse
|
|||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from pillow_heif import HeifImageFile, HeifImagePlugin
|
from pi_heif import HeifImageFile, HeifImagePlugin
|
||||||
except ImportError:
|
except ImportError:
|
||||||
HeifImagePlugin = HeifImageFile = None
|
HeifImagePlugin = HeifImageFile = None
|
||||||
|
|
||||||
@ -29,6 +29,7 @@ from utilities.choices import ColorChoices
|
|||||||
from utilities.fields import ColorField, NaturalOrderingField
|
from utilities.fields import ColorField, NaturalOrderingField
|
||||||
from .device_components import *
|
from .device_components import *
|
||||||
|
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'Device',
|
'Device',
|
||||||
'DeviceRole',
|
'DeviceRole',
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
import json
|
import json
|
||||||
|
import sys
|
||||||
import uuid
|
import uuid
|
||||||
|
from io import BytesIO
|
||||||
|
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.contrib.contenttypes.fields import GenericForeignKey
|
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
|
from django.core.files.uploadedfile import InMemoryUploadedFile
|
||||||
from django.core.validators import ValidationError
|
from django.core.validators import ValidationError
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
@ -15,6 +18,11 @@ from django.utils.formats import date_format
|
|||||||
from rest_framework.utils.encoders import JSONEncoder
|
from rest_framework.utils.encoders import JSONEncoder
|
||||||
import django_rq
|
import django_rq
|
||||||
|
|
||||||
|
try:
|
||||||
|
from pi_heif import HeifImageFile, HeifImagePlugin
|
||||||
|
except ImportError:
|
||||||
|
HeifImagePlugin = HeifImageFile = None
|
||||||
|
|
||||||
from extras.choices import *
|
from extras.choices import *
|
||||||
from extras.constants import *
|
from extras.constants import *
|
||||||
from extras.conditions import ConditionSet
|
from extras.conditions import ConditionSet
|
||||||
@ -386,6 +394,17 @@ class ImageAttachment(WebhooksMixin, ChangeLoggedModel):
|
|||||||
filename = self.image.name.rsplit('/', 1)[-1]
|
filename = self.image.name.rsplit('/', 1)[-1]
|
||||||
return filename.split('_', 2)[2]
|
return filename.split('_', 2)[2]
|
||||||
|
|
||||||
|
def save(self, *args, **kwargs):
|
||||||
|
if HeifImagePlugin is not None and self.image:
|
||||||
|
if isinstance(self.image.file, InMemoryUploadedFile) and isinstance(self.image.file.image, HeifImageFile):
|
||||||
|
output_stream = BytesIO()
|
||||||
|
self.image.file.image.save(output_stream, format="JPEG")
|
||||||
|
output_stream.seek(0)
|
||||||
|
self.image.name = "%s.jpg" % self.image.file.name.split('.')[0]
|
||||||
|
self.image.file = InMemoryUploadedFile(output_stream, 'ImageField', self.image.name,
|
||||||
|
'image/jpeg', sys.getsizeof(output_stream), None)
|
||||||
|
super().save(*args, **kwargs)
|
||||||
|
|
||||||
def delete(self, *args, **kwargs):
|
def delete(self, *args, **kwargs):
|
||||||
|
|
||||||
_name = self.image.name
|
_name = self.image.name
|
||||||
|
@ -24,6 +24,7 @@ import django
|
|||||||
from django.utils.encoding import force_str
|
from django.utils.encoding import force_str
|
||||||
django.utils.encoding.force_text = force_str
|
django.utils.encoding.force_text = force_str
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Environment setup
|
# Environment setup
|
||||||
#
|
#
|
||||||
|
@ -39,4 +39,4 @@ jsonschema==3.2.0
|
|||||||
swagger-spec-validator==2.7.6
|
swagger-spec-validator==2.7.6
|
||||||
|
|
||||||
# Pillow's plugin for HEIF image format
|
# Pillow's plugin for HEIF image format
|
||||||
pillow-heif==0.7.0
|
pi-heif==0.7.0
|
||||||
|
Loading…
Reference in New Issue
Block a user