mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-31 10:37:12 -04:00 
			
		
		
		
	Fix: Handling of Nones when using custom fields in filepath templating (#7933)
This commit is contained in:
		
							parent
							
								
									6292296876
								
							
						
					
					
						commit
						c2cfaaf8af
					
				| @ -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() | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user