implement date
This commit is contained in:
parent
fb4cd9f7d7
commit
e79ae0a592
@ -264,6 +264,11 @@ pub fn get_fields_for_validate_model(fields: &Vec<ModelField>) -> Vec<TokenStrea
|
|||||||
model.get_datetime(#ident_name, #is_option_or_string).map_err(|err| errors.insert(#ident_name.to_string(), err)).ok()
|
model.get_datetime(#ident_name, #is_option_or_string).map_err(|err| errors.insert(#ident_name.to_string(), err)).ok()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
(_, "Date") => {
|
||||||
|
quote! {
|
||||||
|
model.get_date(#ident_name, #is_option_or_string).map_err(|err| errors.insert(#ident_name.to_string(), err)).ok()
|
||||||
|
}
|
||||||
|
},
|
||||||
(_, "bool") => {
|
(_, "bool") => {
|
||||||
quote! {
|
quote! {
|
||||||
model.get_bool(#ident_name, #is_option_or_string).map_err(|err| errors.insert(#ident_name.to_string(), err)).ok()
|
model.get_bool(#ident_name, #is_option_or_string).map_err(|err| errors.insert(#ident_name.to_string(), err)).ok()
|
||||||
@ -313,6 +318,16 @@ pub fn get_fields_for_create_model(fields: &Vec<ModelField>) -> Vec<TokenStream>
|
|||||||
#ident: Set(model.get_datetime(#ident_name, #is_option_or_string).unwrap().unwrap())
|
#ident: Set(model.get_datetime(#ident_name, #is_option_or_string).unwrap().unwrap())
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
(true , _, "Date") => {
|
||||||
|
quote! {
|
||||||
|
#ident: Set(model.get_date(#ident_name, #is_option_or_string).unwrap())
|
||||||
|
}
|
||||||
|
},
|
||||||
|
(false , _, "Date") => {
|
||||||
|
quote! {
|
||||||
|
#ident: Set(model.get_date(#ident_name, #is_option_or_string).unwrap().unwrap())
|
||||||
|
}
|
||||||
|
},
|
||||||
(_ , _, "bool") => {
|
(_ , _, "bool") => {
|
||||||
quote! {
|
quote! {
|
||||||
#ident: Set(model.get_bool(#ident_name, #is_option_or_string).unwrap().unwrap())
|
#ident: Set(model.get_bool(#ident_name, #is_option_or_string).unwrap().unwrap())
|
||||||
@ -373,6 +388,16 @@ pub fn get_fields_for_edit_model(fields: &Vec<ModelField>) -> Vec<TokenStream> {
|
|||||||
entity.#ident = Set(model.get_datetime(#ident_name, #is_option_or_string).unwrap().unwrap())
|
entity.#ident = Set(model.get_datetime(#ident_name, #is_option_or_string).unwrap().unwrap())
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
(true , _, "Date") => {
|
||||||
|
quote! {
|
||||||
|
entity.#ident = Set(model.get_date(#ident_name, #is_option_or_string).unwrap())
|
||||||
|
}
|
||||||
|
},
|
||||||
|
(false , _, "Date") => {
|
||||||
|
quote! {
|
||||||
|
entity.#ident = Set(model.get_date(#ident_name, #is_option_or_string).unwrap().unwrap())
|
||||||
|
}
|
||||||
|
},
|
||||||
(true, _, _) => {
|
(true, _, _) => {
|
||||||
let inner_ty = model_field.inner_type.to_owned().unwrap();
|
let inner_ty = model_field.inner_type.to_owned().unwrap();
|
||||||
quote! {
|
quote! {
|
||||||
|
@ -7,8 +7,6 @@ use actix_multipart:: {Multipart, MultipartError} ;
|
|||||||
use futures_util::stream::StreamExt as _;
|
use futures_util::stream::StreamExt as _;
|
||||||
use chrono::{NaiveDateTime, NaiveDate};
|
use chrono::{NaiveDateTime, NaiveDate};
|
||||||
use sea_orm::prelude::*;
|
use sea_orm::prelude::*;
|
||||||
use std::str::FromStr;
|
|
||||||
|
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
pub trait ActixAdminModelTrait {
|
pub trait ActixAdminModelTrait {
|
||||||
@ -77,6 +75,10 @@ impl ActixAdminModel {
|
|||||||
self.get_value_by_closure(key, is_option_or_string, |val| NaiveDateTime::parse_from_str(val, "%Y-%m-%dT%H:%M"))
|
self.get_value_by_closure(key, is_option_or_string, |val| NaiveDateTime::parse_from_str(val, "%Y-%m-%dT%H:%M"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_date(&self, key: &str, is_option_or_string: bool) -> Result<Option<Date>, String> {
|
||||||
|
self.get_value_by_closure(key, is_option_or_string, |val| NaiveDate::parse_from_str(val, "%Y-%m-%d"))
|
||||||
|
}
|
||||||
|
|
||||||
pub fn get_bool(&self, key: &str, is_option_or_string: bool) -> Result<Option<bool>, String> {
|
pub fn get_bool(&self, key: &str, is_option_or_string: bool) -> Result<Option<bool>, String> {
|
||||||
let val = self.get_value_by_closure(key, is_option_or_string, |val| if !val.is_empty() { Ok(true) } else { Ok(false) });
|
let val = self.get_value_by_closure(key, is_option_or_string, |val| if !val.is_empty() { Ok(true) } else { Ok(false) });
|
||||||
// not selected bool field equals to false and not to missing
|
// not selected bool field equals to false and not to missing
|
||||||
|
@ -59,7 +59,6 @@ pub struct ActixAdminViewModelField {
|
|||||||
impl ActixAdminViewModelFieldType {
|
impl ActixAdminViewModelFieldType {
|
||||||
pub fn get_field_type(type_path: &str, select_list: String) -> ActixAdminViewModelFieldType {
|
pub fn get_field_type(type_path: &str, select_list: String) -> ActixAdminViewModelFieldType {
|
||||||
if !select_list.is_empty() {
|
if !select_list.is_empty() {
|
||||||
println!("field_type {} {}", type_path, select_list);
|
|
||||||
return ActixAdminViewModelFieldType::SelectList;
|
return ActixAdminViewModelFieldType::SelectList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BIN
database.db-wal
BIN
database.db-wal
Binary file not shown.
@ -27,6 +27,7 @@ pub async fn create_post_table(db: &DbConn) -> Result<ExecResult, DbErr> {
|
|||||||
.col(ColumnDef::new(post::Column::Text).string().not_null())
|
.col(ColumnDef::new(post::Column::Text).string().not_null())
|
||||||
.col(ColumnDef::new(post::Column::TeaMandatory).string().not_null())
|
.col(ColumnDef::new(post::Column::TeaMandatory).string().not_null())
|
||||||
.col(ColumnDef::new(post::Column::TeaOptional).string())
|
.col(ColumnDef::new(post::Column::TeaOptional).string())
|
||||||
|
.col(ColumnDef::new(post::Column::InsertDate).date())
|
||||||
.to_owned();
|
.to_owned();
|
||||||
|
|
||||||
let _result = create_table(db, &stmt).await;
|
let _result = create_table(db, &stmt).await;
|
||||||
|
@ -21,6 +21,7 @@ pub struct Model {
|
|||||||
pub tea_mandatory: Tea,
|
pub tea_mandatory: Tea,
|
||||||
#[actix_admin(select_list="Tea")]
|
#[actix_admin(select_list="Tea")]
|
||||||
pub tea_optional: Option<Tea>,
|
pub tea_optional: Option<Tea>,
|
||||||
|
pub insert_date: Date,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
||||||
|
Loading…
Reference in New Issue
Block a user