mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	Fix: Handling of Nones when using custom fields in filepath templating (#7933)
This commit is contained in:
		| @@ -82,7 +82,7 @@ def get_cf_value( | ||||
|     name: str, | ||||
|     default: str | None = None, | ||||
| ) -> str | None: | ||||
|     if name in custom_field_data: | ||||
|     if name in custom_field_data and custom_field_data[name]["value"] is not None: | ||||
|         return custom_field_data[name]["value"] | ||||
|     elif default is not None: | ||||
|         return default | ||||
| @@ -235,8 +235,10 @@ def get_custom_fields_context( | ||||
|             field_instance.field.data_type, | ||||
|             replacement_text="-", | ||||
|         ) | ||||
|         if field_instance.value is None: | ||||
|             value = None | ||||
|         # String types need to be sanitized | ||||
|         if field_instance.field.data_type in { | ||||
|         elif field_instance.field.data_type in { | ||||
|             CustomField.FieldDataType.MONETARY, | ||||
|             CustomField.FieldDataType.STRING, | ||||
|             CustomField.FieldDataType.URL, | ||||
|   | ||||
| @@ -1322,7 +1322,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase): | ||||
|             extra_data={"select_options": ["ChoiceOne", "ChoiceTwo"]}, | ||||
|         ) | ||||
|  | ||||
|         CustomFieldInstance.objects.create( | ||||
|         cfi1 = CustomFieldInstance.objects.create( | ||||
|             document=doc_a, | ||||
|             field=cf2, | ||||
|             value_select=0, | ||||
| @@ -1351,7 +1351,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase): | ||||
|         with override_settings( | ||||
|             FILENAME_FORMAT=""" | ||||
|                  {% if "Select Field" in custom_fields %} | ||||
|                    {{ title }}_{{ custom_fields | get_cf_value('Select Field') }} | ||||
|                    {{ title }}_{{ custom_fields | get_cf_value('Select Field', 'Default Value') }} | ||||
|                  {% else %} | ||||
|                    {{ title }} | ||||
|                  {% endif %} | ||||
| @@ -1362,6 +1362,15 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase): | ||||
|                 "Some Title_ChoiceOne.pdf", | ||||
|             ) | ||||
|  | ||||
|             # Check for handling Nones well | ||||
|             cfi1.value_select = None | ||||
|             cfi1.save() | ||||
|  | ||||
|             self.assertEqual( | ||||
|                 generate_filename(doc_a), | ||||
|                 "Some Title_Default Value.pdf", | ||||
|             ) | ||||
|  | ||||
|         cf.name = "Invoice Number" | ||||
|         cfi.value_int = 4567 | ||||
|         cfi.save() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Trenton H
					Trenton H