Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion demo/array_field/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@


class TestWithArrayField(models.Model):
images = ImageListField(blank=True, null=True, upload_to="admin_test")
images = ImageListField(blank=True, null=True, max_images=2, upload_to="admin_test")

class Meta:
verbose_name = "(Array Field) Default"
1 change: 1 addition & 0 deletions demo/inline/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

class InlineEditor(ImageUploaderInline):
model = models.InlineItem
max_num = 2


@admin.register(models.Inline)
Expand Down
3 changes: 3 additions & 0 deletions image_uploader_widget/postgres/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@ def __init__(
max_length: int = 150,
storage: Optional[Storage] = None,
upload_to: str = "",
max_images=1000,
**kwargs,
):
self.max_length = max_length or 150
self.storage = storage or default_storage
self.upload_to = upload_to or ""
self.max_images = max_images
kwargs["base_field"] = ImageField(
max_length=self.max_length, upload_to=upload_to
)
Expand Down Expand Up @@ -91,5 +93,6 @@ def formfield(self, **kwargs):
**{
"form_class": ImageListFormField,
**kwargs,
"max_images": self.max_images,
}
)
4 changes: 2 additions & 2 deletions image_uploader_widget/postgres/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ class ImageListFormField(forms.Field):
"item_invalid": _("Item %(name)s in the array did not validate:"),
}

def __init__(self, **kwargs):
def __init__(self, max_images=1000, **kwargs):
kwargs.pop("base_field")
self.max_length = kwargs.pop("max_length") or 150

self.required = False
self.base_field = forms.ImageField(max_length=self.max_length)
widget = ImageUploaderArrayWidget()
widget = ImageUploaderArrayWidget(max_images=max_images)
kwargs.setdefault("widget", widget)
super().__init__(**kwargs)

Expand Down
10 changes: 9 additions & 1 deletion image_uploader_widget/postgres/widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,15 @@ def get_drop_icon(self):
return self.drop_icon

def __init__(
self, drop_text="", empty_text="", empty_icon="", drop_icon="", **kwargs
self,
max_images=1000,
drop_text="",
empty_text="",
empty_icon="",
drop_icon="",
**kwargs,
):
self.max_images = max_images
self.drop_text = drop_text
self.empty_text = empty_text
self.empty_icon = empty_icon
Expand Down Expand Up @@ -73,6 +80,7 @@ def get_context(self, name, value, attrs=None):
"prefix": context["widget"]["name"],
},
},
"max_images": self.max_images,
"custom": {
"drop_text": self.get_drop_text(),
"empty_text": self.get_empty_text(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,9 @@ function handleAddNewImage(root, tempFileInput, inputFile = null) {
rowFileInput.files = dataTransferList.files;
}

tempFileInput.value = null
if (tempFileInput) {
tempFileInput.value = null
}
updateAllIndexes(root);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<input type="hidden" name="{{ inline_admin_formset.formset.prefix }}-TOTAL_FORMS" value="0" id="id_{{ inline_admin_formset.formset.prefix }}-TOTAL_FORMS" />
<input type="hidden" name="{{ inline_admin_formset.formset.prefix }}-INITIAL_FORMS" value="0" id="id_{{ inline_admin_formset.formset.prefix }}-INITIAL_FORMS" />
<input type="hidden" name="{{ inline_admin_formset.formset.prefix }}-MIN_NUM_FORMS" value="0" id="id_{{ inline_admin_formset.formset.prefix }}-MIN_NUM_FORMS" />
<input type="hidden" name="{{ inline_admin_formset.formset.prefix }}-MAX_NUM_FORMS" value="1000" id="id_{{ inline_admin_formset.formset.prefix }}-MAX_NUM_FORMS" />
<input type="hidden" name="{{ inline_admin_formset.formset.prefix }}-MAX_NUM_FORMS" value="{{ max_images }}" id="id_{{ inline_admin_formset.formset.prefix }}-MAX_NUM_FORMS" />

<div class="previews">
{% for item in widget.subwidgets %}
Expand Down