Back to oficial actix-admin
This commit is contained in:
parent
6a3378a6b5
commit
1fc74988cf
1289
Cargo.lock
generated
1289
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -114,7 +114,7 @@ fn parse_enum_variant_macro(body_it: &mut Peekable<IntoIter>) -> Option<String>
|
|||||||
body_it.next().expect("No # for macro"),
|
body_it.next().expect("No # for macro"),
|
||||||
body_it.next().expect("No macro body"),
|
body_it.next().expect("No macro body"),
|
||||||
);
|
);
|
||||||
// eprintln!("{punc:#?} {group:#?}");
|
// eprintln!("punc {_punc:#?} group {group:#?}");
|
||||||
let mut it = if let TokenTree::Group(g) = group {
|
let mut it = if let TokenTree::Group(g) = group {
|
||||||
// parse #[sea_orm]
|
// parse #[sea_orm]
|
||||||
g.stream().into_iter().peekable()
|
g.stream().into_iter().peekable()
|
||||||
|
@ -4,9 +4,9 @@ version = "0.1.0"
|
|||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
# actix-admin = "0.5.0"
|
actix-admin = "0.5.0"
|
||||||
# actix-admin = { git = "https://github.com/Eraden/actix-admin.git", features = ['enable-tracing'] }
|
# actix-admin = { git = "https://github.com/Eraden/actix-admin.git", features = ['enable-tracing'] }
|
||||||
actix-admin = { git = "https://code.ita-prog.pl/Tsumanu/actix-admin.git", features = ['enable-tracing'] }
|
#actix-admin = { git = "https://code.ita-prog.pl/Tsumanu/actix-admin.git", features = ['enable-tracing'] }
|
||||||
actix-web = "4.3.1"
|
actix-web = "4.3.1"
|
||||||
actix-web-grants = "3.0.2"
|
actix-web-grants = "3.0.2"
|
||||||
askama = "0.12.0"
|
askama = "0.12.0"
|
||||||
|
@ -5,9 +5,9 @@ edition = "2021"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
actix = "0.13.0"
|
actix = "0.13.0"
|
||||||
# actix-admin = "0.5.0"
|
actix-admin = "0.5.0"
|
||||||
# actix-admin = { git = "https://github.com/Eraden/actix-admin.git", features = ['enable-tracing'] }
|
# actix-admin = { git = "https://github.com/Eraden/actix-admin.git", features = ['enable-tracing'] }
|
||||||
actix-admin = { git = "https://code.ita-prog.pl/Tsumanu/actix-admin.git", features = ['enable-tracing'] }
|
# actix-admin = { git = "https://code.ita-prog.pl/Tsumanu/actix-admin.git", features = ['enable-tracing'] }
|
||||||
actix-rt = { version = "2.8.0", features = [] }
|
actix-rt = { version = "2.8.0", features = [] }
|
||||||
chrono = "0.4.26"
|
chrono = "0.4.26"
|
||||||
oswilno-actix-admin = { path = "../oswilno-actix-admin" }
|
oswilno-actix-admin = { path = "../oswilno-actix-admin" }
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
||||||
|
|
||||||
use super::sea_orm_active_enums::Userrole;
|
use super::sea_orm_active_enums::Userrole;
|
||||||
|
use actix_admin::prelude::*;
|
||||||
use sea_orm::entity::prelude::*;
|
use sea_orm::entity::prelude::*;
|
||||||
|
use sea_orm::Iterable;
|
||||||
|
|
||||||
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
||||||
pub struct Entity;
|
pub struct Entity;
|
||||||
|
|
||||||
|
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||||
|
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||||
impl EntityName for Entity {
|
impl EntityName for Entity {
|
||||||
fn table_name(&self) -> &str {
|
fn table_name(&self) -> &str {
|
||||||
"accounts"
|
"accounts"
|
||||||
@ -22,7 +26,6 @@ impl EntityName for Entity {
|
|||||||
DeriveActixAdmin,
|
DeriveActixAdmin,
|
||||||
DeriveActixAdminModel,
|
DeriveActixAdminModel,
|
||||||
DeriveActixAdminViewModel,
|
DeriveActixAdminViewModel,
|
||||||
serde::Serialize,
|
|
||||||
)]
|
)]
|
||||||
pub struct Model {
|
pub struct Model {
|
||||||
#[actix_admin(primary_key)]
|
#[actix_admin(primary_key)]
|
||||||
@ -33,7 +36,9 @@ pub struct Model {
|
|||||||
pub banned: bool,
|
pub banned: bool,
|
||||||
pub confirmed: bool,
|
pub confirmed: bool,
|
||||||
pub verified: bool,
|
pub verified: bool,
|
||||||
|
#[actix_admin(list_hide_column)]
|
||||||
pub created_at: DateTime,
|
pub created_at: DateTime,
|
||||||
|
#[actix_admin(list_hide_column)]
|
||||||
pub updated_at: DateTime,
|
pub updated_at: DateTime,
|
||||||
pub email: String,
|
pub email: String,
|
||||||
}
|
}
|
||||||
@ -66,6 +71,7 @@ impl PrimaryKeyTrait for PrimaryKey {
|
|||||||
|
|
||||||
#[derive(Copy, Clone, Debug, EnumIter)]
|
#[derive(Copy, Clone, Debug, EnumIter)]
|
||||||
pub enum Relation {
|
pub enum Relation {
|
||||||
|
Images,
|
||||||
ParkingSpaces,
|
ParkingSpaces,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,11 +96,18 @@ impl ColumnTrait for Column {
|
|||||||
impl RelationTrait for Relation {
|
impl RelationTrait for Relation {
|
||||||
fn def(&self) -> RelationDef {
|
fn def(&self) -> RelationDef {
|
||||||
match self {
|
match self {
|
||||||
|
Self::Images => Entity::has_many(super::images::Entity).into(),
|
||||||
Self::ParkingSpaces => Entity::has_many(super::parking_spaces::Entity).into(),
|
Self::ParkingSpaces => Entity::has_many(super::parking_spaces::Entity).into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Related<super::images::Entity> for Entity {
|
||||||
|
fn to() -> RelationDef {
|
||||||
|
Relation::Images.def()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl Related<super::parking_spaces::Entity> for Entity {
|
impl Related<super::parking_spaces::Entity> for Entity {
|
||||||
fn to() -> RelationDef {
|
fn to() -> RelationDef {
|
||||||
Relation::ParkingSpaces.def()
|
Relation::ParkingSpaces.def()
|
||||||
@ -102,6 +115,3 @@ impl Related<super::parking_spaces::Entity> for Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl ActiveModelBehavior for ActiveModel {}
|
impl ActiveModelBehavior for ActiveModel {}
|
||||||
use actix_admin::prelude::*;
|
|
||||||
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
|
||||||
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
||||||
|
|
||||||
use super::sea_orm_active_enums::ImageState;
|
use super::sea_orm_active_enums::ImageState;
|
||||||
|
use actix_admin::prelude::*;
|
||||||
use sea_orm::entity::prelude::*;
|
use sea_orm::entity::prelude::*;
|
||||||
|
use sea_orm::Iterable;
|
||||||
|
|
||||||
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
||||||
pub struct Entity;
|
pub struct Entity;
|
||||||
|
|
||||||
|
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||||
|
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||||
impl EntityName for Entity {
|
impl EntityName for Entity {
|
||||||
fn table_name(&self) -> &str {
|
fn table_name(&self) -> &str {
|
||||||
"images"
|
"images"
|
||||||
@ -22,7 +26,6 @@ impl EntityName for Entity {
|
|||||||
DeriveActixAdmin,
|
DeriveActixAdmin,
|
||||||
DeriveActixAdminModel,
|
DeriveActixAdminModel,
|
||||||
DeriveActixAdminViewModel,
|
DeriveActixAdminViewModel,
|
||||||
serde::Serialize,
|
|
||||||
)]
|
)]
|
||||||
pub struct Model {
|
pub struct Model {
|
||||||
#[actix_admin(primary_key)]
|
#[actix_admin(primary_key)]
|
||||||
@ -31,7 +34,9 @@ pub struct Model {
|
|||||||
pub public_path: String,
|
pub public_path: String,
|
||||||
pub image_state: ImageState,
|
pub image_state: ImageState,
|
||||||
pub account_id: i32,
|
pub account_id: i32,
|
||||||
|
#[actix_admin(list_hide_column)]
|
||||||
pub created_at: DateTime,
|
pub created_at: DateTime,
|
||||||
|
#[actix_admin(list_hide_column)]
|
||||||
pub updated_at: DateTime,
|
pub updated_at: DateTime,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,7 +64,9 @@ impl PrimaryKeyTrait for PrimaryKey {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone, Debug, EnumIter)]
|
#[derive(Copy, Clone, Debug, EnumIter)]
|
||||||
pub enum Relation {}
|
pub enum Relation {
|
||||||
|
Accounts,
|
||||||
|
}
|
||||||
|
|
||||||
impl ColumnTrait for Column {
|
impl ColumnTrait for Column {
|
||||||
type EntityName = Entity;
|
type EntityName = Entity;
|
||||||
@ -78,11 +85,19 @@ impl ColumnTrait for Column {
|
|||||||
|
|
||||||
impl RelationTrait for Relation {
|
impl RelationTrait for Relation {
|
||||||
fn def(&self) -> RelationDef {
|
fn def(&self) -> RelationDef {
|
||||||
panic!("No RelationDef")
|
match self {
|
||||||
|
Self::Accounts => Entity::belongs_to(super::accounts::Entity)
|
||||||
|
.from(Column::AccountId)
|
||||||
|
.to(super::accounts::Column::Id)
|
||||||
|
.into(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Related<super::accounts::Entity> for Entity {
|
||||||
|
fn to() -> RelationDef {
|
||||||
|
Relation::Accounts.def()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ActiveModelBehavior for ActiveModel {}
|
impl ActiveModelBehavior for ActiveModel {}
|
||||||
use actix_admin::prelude::*;
|
|
||||||
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
|
||||||
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
||||||
|
|
||||||
|
use actix_admin::prelude::*;
|
||||||
use sea_orm::entity::prelude::*;
|
use sea_orm::entity::prelude::*;
|
||||||
|
use sea_orm::Iterable;
|
||||||
|
|
||||||
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
||||||
pub struct Entity;
|
pub struct Entity;
|
||||||
|
|
||||||
|
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||||
|
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||||
impl EntityName for Entity {
|
impl EntityName for Entity {
|
||||||
fn table_name(&self) -> &str {
|
fn table_name(&self) -> &str {
|
||||||
"parking_space_locations"
|
"parking_space_locations"
|
||||||
@ -21,7 +25,6 @@ impl EntityName for Entity {
|
|||||||
DeriveActixAdmin,
|
DeriveActixAdmin,
|
||||||
DeriveActixAdminModel,
|
DeriveActixAdminModel,
|
||||||
DeriveActixAdminViewModel,
|
DeriveActixAdminViewModel,
|
||||||
serde::Serialize,
|
|
||||||
)]
|
)]
|
||||||
pub struct Model {
|
pub struct Model {
|
||||||
#[actix_admin(primary_key)]
|
#[actix_admin(primary_key)]
|
||||||
@ -29,7 +32,9 @@ pub struct Model {
|
|||||||
pub name: String,
|
pub name: String,
|
||||||
pub number: i32,
|
pub number: i32,
|
||||||
pub stage: String,
|
pub stage: String,
|
||||||
|
#[actix_admin(list_hide_column)]
|
||||||
pub created_at: DateTime,
|
pub created_at: DateTime,
|
||||||
|
#[actix_admin(list_hide_column)]
|
||||||
pub updated_at: DateTime,
|
pub updated_at: DateTime,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,6 +94,3 @@ impl Related<super::parking_spaces::Entity> for Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl ActiveModelBehavior for ActiveModel {}
|
impl ActiveModelBehavior for ActiveModel {}
|
||||||
use actix_admin::prelude::*;
|
|
||||||
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
|
||||||
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
||||||
|
|
||||||
|
use actix_admin::prelude::*;
|
||||||
use sea_orm::entity::prelude::*;
|
use sea_orm::entity::prelude::*;
|
||||||
|
use sea_orm::Iterable;
|
||||||
|
|
||||||
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
||||||
pub struct Entity;
|
pub struct Entity;
|
||||||
|
|
||||||
|
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||||
|
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||||
impl EntityName for Entity {
|
impl EntityName for Entity {
|
||||||
fn table_name(&self) -> &str {
|
fn table_name(&self) -> &str {
|
||||||
"parking_space_rents"
|
"parking_space_rents"
|
||||||
@ -21,15 +25,17 @@ impl EntityName for Entity {
|
|||||||
DeriveActixAdmin,
|
DeriveActixAdmin,
|
||||||
DeriveActixAdminModel,
|
DeriveActixAdminModel,
|
||||||
DeriveActixAdminViewModel,
|
DeriveActixAdminViewModel,
|
||||||
serde::Serialize,
|
|
||||||
)]
|
)]
|
||||||
pub struct Model {
|
pub struct Model {
|
||||||
#[actix_admin(primary_key)]
|
#[actix_admin(primary_key)]
|
||||||
pub id: i32,
|
pub id: i32,
|
||||||
pub price: i32,
|
pub price: i32,
|
||||||
|
#[actix_admin(select_list=crate::parking_spaces::Entity)]
|
||||||
pub parking_space_id: i32,
|
pub parking_space_id: i32,
|
||||||
pub available: bool,
|
pub available: bool,
|
||||||
|
#[actix_admin(list_hide_column)]
|
||||||
pub created_at: DateTime,
|
pub created_at: DateTime,
|
||||||
|
#[actix_admin(list_hide_column)]
|
||||||
pub updated_at: DateTime,
|
pub updated_at: DateTime,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,6 +98,3 @@ impl Related<super::parking_spaces::Entity> for Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl ActiveModelBehavior for ActiveModel {}
|
impl ActiveModelBehavior for ActiveModel {}
|
||||||
use actix_admin::prelude::*;
|
|
||||||
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
|
||||||
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
||||||
|
|
||||||
use super::sea_orm_active_enums::ParkingSpaceState;
|
use super::sea_orm_active_enums::ParkingSpaceState;
|
||||||
|
use actix_admin::prelude::*;
|
||||||
use sea_orm::entity::prelude::*;
|
use sea_orm::entity::prelude::*;
|
||||||
|
use sea_orm::Iterable;
|
||||||
|
|
||||||
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
||||||
pub struct Entity;
|
pub struct Entity;
|
||||||
|
|
||||||
|
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||||
|
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||||
impl EntityName for Entity {
|
impl EntityName for Entity {
|
||||||
fn table_name(&self) -> &str {
|
fn table_name(&self) -> &str {
|
||||||
"parking_spaces"
|
"parking_spaces"
|
||||||
@ -22,16 +26,19 @@ impl EntityName for Entity {
|
|||||||
DeriveActixAdmin,
|
DeriveActixAdmin,
|
||||||
DeriveActixAdminModel,
|
DeriveActixAdminModel,
|
||||||
DeriveActixAdminViewModel,
|
DeriveActixAdminViewModel,
|
||||||
serde::Serialize,
|
|
||||||
)]
|
)]
|
||||||
pub struct Model {
|
pub struct Model {
|
||||||
#[actix_admin(primary_key)]
|
#[actix_admin(primary_key)]
|
||||||
pub id: i32,
|
pub id: i32,
|
||||||
|
#[actix_admin(select_list=crate::ParkingSpaceState)]
|
||||||
pub state: ParkingSpaceState,
|
pub state: ParkingSpaceState,
|
||||||
pub account_id: i32,
|
pub account_id: i32,
|
||||||
|
#[actix_admin(list_hide_column)]
|
||||||
pub created_at: DateTime,
|
pub created_at: DateTime,
|
||||||
|
#[actix_admin(list_hide_column)]
|
||||||
pub updated_at: DateTime,
|
pub updated_at: DateTime,
|
||||||
pub spot: Option<i32>,
|
pub spot: Option<i32>,
|
||||||
|
#[actix_admin(select_list=crate::parking_space_locations::Entity)]
|
||||||
pub location_id: Option<i32>,
|
pub location_id: Option<i32>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,6 +124,3 @@ impl Related<super::parking_space_rents::Entity> for Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl ActiveModelBehavior for ActiveModel {}
|
impl ActiveModelBehavior for ActiveModel {}
|
||||||
use actix_admin::prelude::*;
|
|
||||||
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
|
||||||
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
||||||
|
|
||||||
|
use actix_admin::prelude::*;
|
||||||
use sea_orm::entity::prelude::*;
|
use sea_orm::entity::prelude::*;
|
||||||
|
use sea_orm::Iterable;
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
|
#[derive(Debug, Clone, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
|
||||||
#[sea_orm(rs_type = "String", db_type = "Enum", enum_name = "image_state")]
|
#[sea_orm(rs_type = "String", db_type = "Enum", enum_name = "image_state")]
|
||||||
#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize)]
|
#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize, DeriveActixAdminEnumSelectList)]
|
||||||
pub enum ImageState {
|
pub enum ImageState {
|
||||||
#[sea_orm(string_value = "approved")]
|
#[sea_orm(string_value = "approved")]
|
||||||
Approved,
|
Approved,
|
||||||
@ -19,7 +21,7 @@ pub enum ImageState {
|
|||||||
db_type = "Enum",
|
db_type = "Enum",
|
||||||
enum_name = "parking_space_state"
|
enum_name = "parking_space_state"
|
||||||
)]
|
)]
|
||||||
#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize)]
|
#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize, DeriveActixAdminEnumSelectList)]
|
||||||
pub enum ParkingSpaceState {
|
pub enum ParkingSpaceState {
|
||||||
#[sea_orm(string_value = "Banned")]
|
#[sea_orm(string_value = "Banned")]
|
||||||
Banned,
|
Banned,
|
||||||
@ -30,7 +32,7 @@ pub enum ParkingSpaceState {
|
|||||||
}
|
}
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
|
#[derive(Debug, Clone, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
|
||||||
#[sea_orm(rs_type = "String", db_type = "Enum", enum_name = "userrole")]
|
#[sea_orm(rs_type = "String", db_type = "Enum", enum_name = "userrole")]
|
||||||
#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize)]
|
#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize, DeriveActixAdminEnumSelectList)]
|
||||||
pub enum Userrole {
|
pub enum Userrole {
|
||||||
#[sea_orm(string_value = "Admin")]
|
#[sea_orm(string_value = "Admin")]
|
||||||
Admin,
|
Admin,
|
||||||
|
@ -6,17 +6,48 @@ sea-orm-cli generate entity -v -l --expanded-format -o ./crates/oswilno-contract
|
|||||||
for f in $( ls ./crates/oswilno-contract/src/*.rs ); do
|
for f in $( ls ./crates/oswilno-contract/src/*.rs ); do
|
||||||
# bad generated code patch
|
# bad generated code patch
|
||||||
sed -i 's/db_type().def()/db_type()/g' $f
|
sed -i 's/db_type().def()/db_type()/g' $f
|
||||||
|
|
||||||
# actix-admin patch
|
|
||||||
sed -i 's/pub struct Model {/#[derive(DeriveActixAdmin,DeriveActixAdminModel,DeriveActixAdminViewModel,serde::Serialize)]pub struct Model {#[actix_admin(primary_key)]/g' $f
|
|
||||||
HAS_ENTITY=$(grep 'for Entity' $f)
|
|
||||||
if [[ "${HAS_ENTITY}" != "" ]]; then
|
|
||||||
echo "use actix_admin::prelude::*;" >> $f
|
|
||||||
echo "impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}" >> $f
|
|
||||||
echo "impl ActixAdminModelFilterTrait<Entity> for Entity {}" >> $f
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
sed -i 's/pub enum/#[derive(oswilno_actix_admin::ActixAdminEnum,serde::Serialize)] pub enum/g' ./crates/oswilno-contract/src/sea_orm_active_enums.rs
|
rm -Rf /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
for f in $(ls crates/oswilno-contract/src/*.rs); do
|
||||||
|
while read line; do
|
||||||
|
case $line in
|
||||||
|
"use sea_orm::entity::prelude::*;" )
|
||||||
|
echo "use actix_admin::prelude::*;" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
echo 'use sea_orm::Iterable;' >> /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
;;
|
||||||
|
*"EntityName for Entity"* )
|
||||||
|
echo "impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
echo "impl ActixAdminModelFilterTrait<Entity> for Entity {}" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
;;
|
||||||
|
"pub enum"* )
|
||||||
|
if [[ "$f" == "crates/oswilno-contract/src/sea_orm_active_enums.rs" ]]; then
|
||||||
|
echo "#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize, DeriveActixAdminEnumSelectList)]" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*"struct Model"* )
|
||||||
|
echo "#[derive(DeriveActixAdmin, DeriveActixAdminModel, DeriveActixAdminViewModel)]" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
;;
|
||||||
|
"pub id: i32," )
|
||||||
|
echo "#[actix_admin(primary_key)]" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
;;
|
||||||
|
"pub location_id"* )
|
||||||
|
echo "#[actix_admin(select_list="crate::parking_space_locations::Entity")]" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
;;
|
||||||
|
"pub state"* )
|
||||||
|
echo "#[actix_admin(select_list="crate::ParkingSpaceState")]" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
;;
|
||||||
|
*"_at: DateTime," )
|
||||||
|
echo "#[actix_admin(list_hide_column)]" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
;;
|
||||||
|
*"parking_space_id"* )
|
||||||
|
echo "#[actix_admin(select_list="crate::parking_spaces::Entity")]" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo $line >> /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
done < $f
|
||||||
|
cat /tmp/ajosdfjosdpjfojsdfjpajpfa
|
||||||
|
mv /tmp/ajosdfjosdpjfojsdfjpajpfa $f
|
||||||
|
done
|
||||||
|
|
||||||
cargo fmt
|
cargo fmt
|
||||||
|
Loading…
Reference in New Issue
Block a user