Skip to content

Commit

Permalink
[#246] WIP DEM data set validation (#251)
Browse files Browse the repository at this point in the history
* First pass, DEM data set validation

* Validate DEM data set with additional schematrons

* Fix naming collision and test

* Refactor xsd/schematron validation for reuse in SOAP webservice implementation, consistency

* Finishing setup for schematron error conversion to json

* First pass, convert schematron errors to JSON

* Deprecated code cleanup, fix validation issue with employment/personnel record

* Always show validation errors

* First pass, linking to validation errors

* Fix test
  • Loading branch information
francisli authored Oct 3, 2023
1 parent 59a4c64 commit f934b19
Show file tree
Hide file tree
Showing 38 changed files with 372 additions and 707 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,10 @@ import { ActivatedRoute } from '@angular/router';
import { HttpResponse } from '@angular/common/http';
import { AgencyService, ApiService, NavigationService } from 'shared';

import { SchemaListComponent } from '../schema/schema-list.component';

@Component({
templateUrl: './configurations-list-demographics.component.html',
})
export class ConfigurationsListDemographicsComponent {
@ViewChild('list') list?: SchemaListComponent;

sectionColumns = [{ name: 'State ID', attr: ['dConfiguration.01'], class: 'col-3' }];

constructor(public agency: AgencyService, private api: ApiService, private navigation: NavigationService, public route: ActivatedRoute) {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,11 @@ import { Component, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

import { AgencyService } from 'shared';
import { SchemaListComponent } from '../schema/schema-list.component';

@Component({
templateUrl: './contacts-list-demographics.component.html',
})
export class ContactsListDemographicsComponent {
@ViewChild('list') list?: SchemaListComponent;

sectionColumns = [
{ name: 'Last name', attr: ['dContact.02'], class: 'col-6' },
{ name: 'First name', attr: ['dContact.03'], class: 'col-5' },
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
import { Component, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { HttpResponse } from '@angular/common/http';
import { AgencyService, ApiService } from 'shared';

import { SchemaListComponent } from '../schema/schema-list.component';
import { AgencyService, ApiService, XsdListComponent } from 'shared';

@Component({
templateUrl: './custom-configurations-list-demographics.component.html',
})
export class CustomConfigurationsListDemographicsComponent {
@ViewChild('list') list?: SchemaListComponent;
@ViewChild('list') list?: XsdListComponent;

sectionColumns = [{ name: 'Title', attr: ['dCustomConfiguration.01'], class: 'col-9' }];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap';

import { SharedModule } from 'shared';

import { SchemaModule } from '../schema/schema.module';

import { FormsDemographicsModule } from './forms/forms-demographics.module';
import { VersionsDemographicsModule } from './versions/versions-demographics.module';

Expand Down Expand Up @@ -58,7 +56,6 @@ import { VehiclesRecordDemographicsComponent } from './vehicles-record-demograph
CommonModule,
FormsModule,
NgbModule,
SchemaModule,
SharedModule,
FormsDemographicsModule,
VersionsDemographicsModule,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import { Component, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

import { SchemaListComponent } from '../schema/schema-list.component';
import { AgencyService } from 'shared';

@Component({
templateUrl: './devices-list-demographics.component.html',
})
export class DevicesListDemographicsComponent {
@ViewChild('list') list?: SchemaListComponent;

sectionColumns = [
{ name: 'Serial No', attr: ['dDevice.01'], class: 'col-5' },
{ name: 'Name', attr: ['dDevice.02'], class: 'col-6' },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@ import { HttpParams, HttpResponse } from '@angular/common/http';
import { ActivatedRoute } from '@angular/router';
import { Subscription } from 'rxjs';

import { AgencyService, ApiService } from 'shared';

import { SchemaListComponent } from '../schema/schema-list.component';
import { AgencyService, ApiService, XsdListComponent } from 'shared';

@Component({
templateUrl: './facilities-list-demographics.component.html',
})
export class FacilitiesListDemographicsComponent implements OnInit {
@ViewChild('list') list?: SchemaListComponent;
@ViewChild('list') list?: XsdListComponent;

sectionColumns = [
{ name: 'Type', attr: ['dFacility.01'], class: 'col-5' },
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import { Component, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

import { SchemaListComponent } from '../schema/schema-list.component';
import { AgencyService } from 'shared';

@Component({
templateUrl: './locations-list-demographics.component.html',
})
export class LocationsListDemographicsComponent {
@ViewChild('list') list?: SchemaListComponent;

sectionColumns = [
{ name: 'Name', attr: ['dLocation.02'], class: 'col-3' },
{ name: 'Number', attr: ['dLocation.03'], class: 'col-3' },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@ import { ActivatedRoute } from '@angular/router';

import { assign } from 'lodash';

import { AgencyService, ApiService, ModalComponent, NotificationService } from 'shared';

import { SchemaListComponent } from '../schema/schema-list.component';
import { AgencyService, ApiService, ModalComponent, NotificationService, XsdListComponent } from 'shared';

@Component({
templateUrl: './personnel-list-demographics.component.html',
})
export class PersonnelListDemographicsComponent {
@ViewChild('list') list?: SchemaListComponent;
@ViewChild('list') list?: XsdListComponent;
@ViewChild('refuseConfirmation') refuseConfirmation?: ModalComponent;

sectionColumns = [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import { Component, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

import { SchemaListComponent } from '../schema/schema-list.component';
import { AgencyService } from 'shared';

@Component({
templateUrl: './vehicles-list-demographics.component.html',
})
export class VehiclesListDemographicsComponent {
@ViewChild('list') list?: SchemaListComponent;

sectionColumns = [
{ name: 'Unit/Vehicle Number', attr: ['dVehicle.01'], class: 'col-3' },
{ name: 'VIN', attr: ['dVehicle.02'], class: 'col-3' },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ <h1 class="h2">Version</h1>
<ul class="nav">
<li class="nav__item"><a tabIndex="0" class="nav__link nav__link--active" routerLink="">Details</a></li>
<li class="nav__item"><a tabIndex="0" class="nav__link" routerLink="preview">XML</a></li>
<li class="nav__item"><a tabIndex="0" class="nav__link" routerLink="validate">Validation</a></li>
</ul>
<shared-form
*ngIf="id"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ <h1 class="h2">Version</h1>
<ul class="nav">
<li class="nav__item"><a tabIndex="0" class="nav__link" routerLink="..">Details</a></li>
<li class="nav__item"><a tabIndex="0" class="nav__link nav__link--active">XML</a></li>
<li class="nav__item"><a tabIndex="0" class="nav__link" routerLink="../validate">Validation</a></li>
</ul>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3">
<h1 class="h2">Version</h1>
</div>
<div class="row">
<div class="col-md-6">
<ul class="nav">
<li class="nav__item"><a tabIndex="0" class="nav__link" routerLink="..">Details</a></li>
<li class="nav__item"><a tabIndex="0" class="nav__link" routerLink="../preview">XML</a></li>
<li class="nav__item"><a tabIndex="0" class="nav__link nav__link--active">Validation</a></li>
</ul>
</div>
</div>
<div>
<div *ngIf="validationErrors === undefined"><shared-loader></shared-loader></div>
<div *ngIf="validationErrors === null">No validation errors!</div>
<div *ngIf="validationErrors">
<div *ngFor="let error of validationErrors.errors">
{{ error.value }}: {{ error.message }} <a [routerLink]="['/demographics', error.section, error.id]">Fix</a>
</div>
</div>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { HttpResponse } from '@angular/common/http';
import { ApiService } from 'shared';

@Component({
templateUrl: './validate-version-demographics.component.html',
})
export class ValidateVersionDemographicsComponent implements OnInit {
id: string = '';
validationErrors: any;

constructor(private api: ApiService, private route: ActivatedRoute) {}

ngOnInit() {
this.id = this.route.snapshot.params['id'];
this.api.versions.validate(this.id).subscribe((response: HttpResponse<any>) => (this.validationErrors = response.body));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { AgencyService, UserService } from 'shared';
import { EditVersionDemographicsComponent } from './edit-version-demographics.component';
import { ListVersionsDemographicsComponent } from './list-versions-demographics.component';
import { PreviewVersionDemographicsComponent } from './preview-version-demographics.component';
import { ValidateVersionDemographicsComponent } from './validate-version-demographics.component';

const appRoutes: Routes = [
{
Expand All @@ -20,6 +21,10 @@ const appRoutes: Routes = [
path: ':id/preview',
component: PreviewVersionDemographicsComponent,
},
{
path: ':id/validate',
component: ValidateVersionDemographicsComponent,
},
{
path: ':id',
component: EditVersionDemographicsComponent,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,15 @@ import { VersionsDemographicsRoutingModule } from './versions-demographics-routi
import { EditVersionDemographicsComponent } from './edit-version-demographics.component';
import { ListVersionsDemographicsComponent } from './list-versions-demographics.component';
import { PreviewVersionDemographicsComponent } from './preview-version-demographics.component';
import { ValidateVersionDemographicsComponent } from './validate-version-demographics.component';

@NgModule({
declarations: [EditVersionDemographicsComponent, ListVersionsDemographicsComponent, PreviewVersionDemographicsComponent],
declarations: [
EditVersionDemographicsComponent,
ListVersionsDemographicsComponent,
PreviewVersionDemographicsComponent,
ValidateVersionDemographicsComponent,
],
imports: [CommonModule, FormsModule, NgbModule, SharedModule, VersionsDemographicsRoutingModule],
providers: [],
})
Expand Down
73 changes: 0 additions & 73 deletions angular/projects/admin/src/app/schema/base-schema.component.ts

This file was deleted.

49 changes: 0 additions & 49 deletions angular/projects/admin/src/app/schema/schema-list.component.html

This file was deleted.

Loading

0 comments on commit f934b19

Please sign in to comment.