Repairing Date & Datetime components
This commit is contained in:
@@ -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']
|
||||
|
||||
@@ -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] = ""
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user