Add a source mode param, pass from frontend detail

This commit is contained in:
shamoon
2026-03-04 15:59:12 -08:00
parent 24a2cfd957
commit 384980e0c5
7 changed files with 82 additions and 7 deletions
+17
View File
@@ -1517,6 +1517,11 @@ class DocumentListSerializer(serializers.Serializer):
return documents
class SourceModeChoices:
LATEST_VERSION = "latest_version"
EXPLICIT_SELECTION = "explicit_selection"
class BulkEditSerializer(
SerializerWithPerms,
DocumentListSerializer,
@@ -1723,6 +1728,15 @@ class BulkEditSerializer(
except ValueError:
raise serializers.ValidationError("invalid rotation degrees")
def _validate_source_mode(self, parameters) -> None:
source_mode = parameters.get("source_mode", SourceModeChoices.LATEST_VERSION)
if source_mode not in {
SourceModeChoices.LATEST_VERSION,
SourceModeChoices.EXPLICIT_SELECTION,
}:
raise serializers.ValidationError("Invalid source_mode")
parameters["source_mode"] = source_mode
def _validate_parameters_split(self, parameters) -> None:
if "pages" not in parameters:
raise serializers.ValidationError("pages not specified")
@@ -1823,6 +1837,9 @@ class BulkEditSerializer(
method = attrs["method"]
parameters = attrs["parameters"]
if "source_mode" in parameters:
self._validate_source_mode(parameters)
if method == bulk_edit.set_correspondent:
self._validate_parameters_correspondent(parameters)
elif method == bulk_edit.set_document_type: