mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-28 03:46:06 -05:00 
			
		
		
		
	Merge pull request #3953 from paperless-ngx/fix/issue-3944
Handle very old date strings in correspondent list
This commit is contained in:
		| @@ -668,7 +668,7 @@ describe('DocumentDetailComponent', () => { | |||||||
|     const object = { |     const object = { | ||||||
|       id: 22, |       id: 22, | ||||||
|       name: 'Correspondent22', |       name: 'Correspondent22', | ||||||
|       last_correspondence: new Date(), |       last_correspondence: new Date().toISOString(), | ||||||
|     } as PaperlessCorrespondent |     } as PaperlessCorrespondent | ||||||
|     const qfSpy = jest.spyOn(documentListViewService, 'quickFilter') |     const qfSpy = jest.spyOn(documentListViewService, 'quickFilter') | ||||||
|     component.filterDocuments([object]) |     component.filterDocuments([object]) | ||||||
|   | |||||||
| @@ -31,8 +31,12 @@ describe('CorrespondentListComponent', () => { | |||||||
|         ReactiveFormsModule, |         ReactiveFormsModule, | ||||||
|       ], |       ], | ||||||
|     }).compileComponents() |     }).compileComponents() | ||||||
|  |  | ||||||
|     correspondentsService = TestBed.inject(CorrespondentService) |     correspondentsService = TestBed.inject(CorrespondentService) | ||||||
|  |   }) | ||||||
|  |  | ||||||
|  |   // Tests are included in management-list.compontent.spec.ts | ||||||
|  |  | ||||||
|  |   it('should use correct delete message', () => { | ||||||
|     jest.spyOn(correspondentsService, 'listFiltered').mockReturnValue( |     jest.spyOn(correspondentsService, 'listFiltered').mockReturnValue( | ||||||
|       of({ |       of({ | ||||||
|         count: 3, |         count: 3, | ||||||
| @@ -56,15 +60,30 @@ describe('CorrespondentListComponent', () => { | |||||||
|     fixture = TestBed.createComponent(CorrespondentListComponent) |     fixture = TestBed.createComponent(CorrespondentListComponent) | ||||||
|     component = fixture.componentInstance |     component = fixture.componentInstance | ||||||
|     fixture.detectChanges() |     fixture.detectChanges() | ||||||
|   }) |  | ||||||
|  |  | ||||||
|   // Tests are included in management-list.compontent.spec.ts |  | ||||||
|  |  | ||||||
|   it('should use correct delete message', () => { |  | ||||||
|     expect( |     expect( | ||||||
|       component.getDeleteMessage({ id: 1, name: 'Correspondent1' }) |       component.getDeleteMessage({ id: 1, name: 'Correspondent1' }) | ||||||
|     ).toEqual( |     ).toEqual( | ||||||
|       'Do you really want to delete the correspondent "Correspondent1"?' |       'Do you really want to delete the correspondent "Correspondent1"?' | ||||||
|     ) |     ) | ||||||
|   }) |   }) | ||||||
|  |  | ||||||
|  |   it('should support very old date strings', () => { | ||||||
|  |     jest.spyOn(correspondentsService, 'listFiltered').mockReturnValue( | ||||||
|  |       of({ | ||||||
|  |         count: 1, | ||||||
|  |         all: [1], | ||||||
|  |         results: [ | ||||||
|  |           { | ||||||
|  |             id: 1, | ||||||
|  |             name: 'Correspondent1', | ||||||
|  |             last_correspondence: '1832-12-31T15:32:54-07:52:58', | ||||||
|  |           }, | ||||||
|  |         ], | ||||||
|  |       }) | ||||||
|  |     ) | ||||||
|  |     fixture = TestBed.createComponent(CorrespondentListComponent) | ||||||
|  |     component = fixture.componentInstance | ||||||
|  |     fixture.detectChanges() | ||||||
|  |   }) | ||||||
| }) | }) | ||||||
|   | |||||||
| @@ -44,7 +44,19 @@ export class CorrespondentListComponent extends ManagementListComponent<Paperles | |||||||
|           key: 'last_correspondence', |           key: 'last_correspondence', | ||||||
|           name: $localize`Last used`, |           name: $localize`Last used`, | ||||||
|           valueFn: (c: PaperlessCorrespondent) => { |           valueFn: (c: PaperlessCorrespondent) => { | ||||||
|             return this.datePipe.transform(c.last_correspondence) |             if (c.last_correspondence) { | ||||||
|  |               let date = new Date(c.last_correspondence) | ||||||
|  |               if (date.toString() == 'Invalid Date') { | ||||||
|  |                 // very old date strings are unable to be parsed | ||||||
|  |                 date = new Date( | ||||||
|  |                   c.last_correspondence | ||||||
|  |                     ?.toString() | ||||||
|  |                     .replace(/-(\d\d):\d\d:\d\d/gm, `-$1:00`) | ||||||
|  |                 ) | ||||||
|  |               } | ||||||
|  |               return this.datePipe.transform(date) | ||||||
|  |             } | ||||||
|  |             return '' | ||||||
|           }, |           }, | ||||||
|         }, |         }, | ||||||
|       ] |       ] | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| import { MatchingModel } from './matching-model' | import { MatchingModel } from './matching-model' | ||||||
|  |  | ||||||
| export interface PaperlessCorrespondent extends MatchingModel { | export interface PaperlessCorrespondent extends MatchingModel { | ||||||
|   last_correspondence?: Date |   last_correspondence?: string // Date | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 shamoon
					shamoon