Repairing Date & Datetime components

This commit is contained in:
2023-01-25 21:02:07 +01:00
parent b02c8cc365
commit ac744604ed
5 changed files with 23 additions and 15 deletions

View File

@@ -1,6 +1,6 @@
from enum import Enum
from datetime import datetime, date
from typing import List, Literal
from typing import List, Literal, Optional
from pymongo import TEXT, IndexModel
from pydantic import Field, BaseModel, validator
@@ -64,8 +64,8 @@ class Institution(BaseModel):
class Entity(Document):
_id: str
address: Indexed(str, index_type=TEXT)
entity_data: Individual | Corporation | Institution = Field(..., discriminator='type')
address: Optional[str] = ""
label: str = None
@validator("label", always=True)
@@ -79,7 +79,7 @@ class Entity(Document):
bson_encoders = {
date: lambda dt: dt if hasattr(dt, 'hour')
else datetime(year=dt.year, month=dt.month, day=dt.day,
hour=0, minute=0, second=0)
hour=0, minute=0, second=0)
}
fulltext_search = ['label']

View File

@@ -1,6 +1,4 @@
import uuid
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, Field
from .models import Entity, EntityType, Individual, Corporation
@@ -12,10 +10,10 @@ class EntityRead(Entity):
class EntityCreate(Writer):
address: str
entity_data: Individual | Corporation = Field(..., discriminator='type')
address: Optional[str] = ""
class EntityUpdate(BaseModel):
address: str
entity_data: Individual | Corporation = Field(..., discriminator='type')
address: Optional[str] = ""

View File

@@ -59,8 +59,8 @@ export class CardComponent implements OnInit {
this._loading$.next(true);
if (this.isCreateForm()) {
this.crudService.create(this.resource!, model).subscribe((response: any) => {
this._loading$.next(false);
this.router.navigateByUrl(response.id);
this._loading$.next(false);
this.router.navigate([`../${response.id}`], {relativeTo: this.route});
});
} else {
this.crudService.update(this.resource!, model).subscribe((model: any) => {

View File

@@ -39,16 +39,20 @@ import { FieldType, FieldTypeConfig } from '@ngx-formly/core';
})
export class DateTypeComponent extends FieldType<FieldTypeConfig> implements OnInit
{
public time : NgbTimeStruct = { hour: 12, minute: 0, second: 0 }
public date : NgbDateStruct = { year: 2023, month: 1, day: 9 }
public datetime : Date = new Date()
public date : NgbDateStruct;
public datetime : Date = new Date();
constructor() {
super();
this.date = this.getDateStruct(new Date());
}
ngOnInit() {
if (this.formControl.value === undefined) {
this.changeDatetime({});
}
this.formControl.valueChanges.subscribe(value => {
this.datetime = new Date(value)
this.date = this.getDateStruct(this.datetime);

View File

@@ -41,16 +41,22 @@ import { FieldType, FieldTypeConfig } from '@ngx-formly/core';
})
export class DatetimeTypeComponent extends FieldType<FieldTypeConfig> implements OnInit
{
public time : NgbTimeStruct = { hour: 12, minute: 0, second: 0 }
public date : NgbDateStruct = { year: 2023, month: 1, day: 9 }
public time : NgbTimeStruct;
public date : NgbDateStruct;
public datetime : Date = new Date()
constructor() {
super();
this.time = this.getTimeStruct(new Date());
this.date = this.getDateStruct(new Date());
}
ngOnInit() {
if (this.formControl.value === undefined) {
this.changeDatetime({});
}
this.formControl.valueChanges.subscribe(value => {
this.datetime = new Date(value)
this.date = this.getDateStruct(this.datetime);