Updated API endpoints for NotesImage model
This commit is contained in:
parent
c2e18932db
commit
d93d5f9b2f
|
|
@ -465,17 +465,38 @@ class ConfigViewSet(viewsets.ReadOnlyModelViewSet):
|
|||
admin_router.register('config', ConfigViewSet, basename='api-config')
|
||||
|
||||
|
||||
class NotesImageFilter(FilterSet):
|
||||
"""Filterset for the NotesImage API endpoint."""
|
||||
|
||||
class Meta:
|
||||
"""Metaclass options."""
|
||||
|
||||
model = common.models.NotesImage
|
||||
fields = ['user', 'note']
|
||||
|
||||
model_id = rest_filters.NumberFilter(
|
||||
label=_('Model ID'), field_name='note__model_id'
|
||||
)
|
||||
|
||||
model_type = rest_filters.CharFilter(method='filter_model_type', label='Model Type')
|
||||
|
||||
def filter_model_type(self, queryset, name, value):
|
||||
"""Filter queryset to include only Parameters of the given model type."""
|
||||
return common.filters.filter_content_type(
|
||||
queryset, 'note__model_type', value, allow_null=False
|
||||
)
|
||||
|
||||
|
||||
class NotesImageList(ListCreateAPI):
|
||||
"""List view for all notes images."""
|
||||
|
||||
queryset = common.models.NotesImage.objects.all()
|
||||
serializer_class = common.serializers.NotesImageSerializer
|
||||
permission_classes = [IsAuthenticatedOrReadScope]
|
||||
filterset_class = NotesImageFilter
|
||||
|
||||
filter_backends = SEARCH_ORDER_FILTER
|
||||
|
||||
search_fields = ['user', 'model_type', 'model_id']
|
||||
|
||||
def perform_create(self, serializer):
|
||||
"""Create (upload) a new notes image."""
|
||||
image = serializer.save()
|
||||
|
|
@ -1501,7 +1522,7 @@ common_api_urls = [
|
|||
# Webhooks
|
||||
path('webhook/<slug:endpoint>/', WebhookView.as_view(), name='api-webhook'),
|
||||
# Uploaded images for notes
|
||||
path('notes-image-upload/', NotesImageList.as_view(), name='api-notes-image-list'),
|
||||
path('notes-image/', NotesImageList.as_view(), name='api-notes-image-list'),
|
||||
# Background task information
|
||||
path(
|
||||
'background-task/',
|
||||
|
|
|
|||
|
|
@ -3109,22 +3109,8 @@ class NotesImage(models.Model):
|
|||
|
||||
date = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
model_type = models.CharField(
|
||||
max_length=100,
|
||||
blank=True,
|
||||
null=True,
|
||||
help_text=_('Target model type for this image'),
|
||||
)
|
||||
|
||||
model_id = models.IntegerField(
|
||||
help_text=_('Target model ID for this image'),
|
||||
blank=True,
|
||||
null=True,
|
||||
default=None,
|
||||
)
|
||||
|
||||
note = models.ForeignKey(
|
||||
Note, on_delete=models.CASCADE, null=True, blank=True, related_name='images'
|
||||
Note, on_delete=models.CASCADE, null=False, blank=False, related_name='images'
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -400,7 +400,7 @@ class NotesImageSerializer(InvenTreeModelSerializer):
|
|||
"""Meta options for NotesImageSerializer."""
|
||||
|
||||
model = common_models.NotesImage
|
||||
fields = ['pk', 'image', 'user', 'date', 'model_type', 'model_id']
|
||||
fields = ['pk', 'image', 'user', 'date', 'note']
|
||||
|
||||
read_only_fields = ['date', 'user']
|
||||
|
||||
|
|
|
|||
|
|
@ -253,7 +253,7 @@ export enum ApiEndpoints {
|
|||
project_code_list = 'project-code/',
|
||||
custom_unit_list = 'units/',
|
||||
note_list = 'note/',
|
||||
notes_image_upload = 'notes-image-upload/',
|
||||
notes_image_list = 'notes-image/',
|
||||
email_list = 'admin/email/',
|
||||
email_test = 'admin/email/test/',
|
||||
config_list = 'admin/config/',
|
||||
|
|
|
|||
|
|
@ -120,11 +120,11 @@ export default function NotesEditor({
|
|||
const uploadFile = useCallback(
|
||||
(file: File) => {
|
||||
const formData = new FormData();
|
||||
formData.append('note', String(selectedNoteId));
|
||||
formData.append('note', selectedNoteId?.toString() ?? '');
|
||||
formData.append('image', file);
|
||||
|
||||
return api
|
||||
.post(apiUrl(ApiEndpoints.notes_image_upload), formData, {
|
||||
.post(apiUrl(ApiEndpoints.notes_image_list), formData, {
|
||||
headers: { 'Content-Type': 'multipart/form-data' }
|
||||
})
|
||||
.then((response) => response.data.image);
|
||||
|
|
|
|||
Loading…
Reference in New Issue