Add actix-admin to entities
This commit is contained in:
parent
d48b39c5c3
commit
05c1a9abb0
@ -3,4 +3,5 @@ members = [
|
||||
'./crates/oswilno-server',
|
||||
'./crates/oswilno-contract',
|
||||
'./crates/migration',
|
||||
'./crates/oswilno-actix-admin',
|
||||
]
|
||||
|
@ -1,8 +1,8 @@
|
||||
use sea_orm::{EnumIter, Iterable};
|
||||
use sea_orm_migration::prelude::*;
|
||||
|
||||
use crate::{create_enum, drop_enum};
|
||||
use crate::m20220101_000001_create_table::Account;
|
||||
use crate::{create_enum, drop_enum};
|
||||
|
||||
#[derive(DeriveMigrationName)]
|
||||
pub struct Migration;
|
||||
|
9
crates/oswilno-actix-admin/Cargo.toml
Normal file
9
crates/oswilno-actix-admin/Cargo.toml
Normal file
@ -0,0 +1,9 @@
|
||||
[package]
|
||||
name = "oswilno-actix-admin"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
proc-macro=true
|
||||
|
||||
[dependencies]
|
||||
|
14
crates/oswilno-actix-admin/src/lib.rs
Normal file
14
crates/oswilno-actix-admin/src/lib.rs
Normal file
@ -0,0 +1,14 @@
|
||||
pub fn add(left: usize, right: usize) -> usize {
|
||||
left + right
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn it_works() {
|
||||
let result = add(2, 2);
|
||||
assert_eq!(result, 4);
|
||||
}
|
||||
}
|
@ -11,3 +11,4 @@ askama = "0.12.0"
|
||||
chrono = "0.4.26"
|
||||
tera = "1.19.0"
|
||||
uuid = { version = "1.4.1", features = ["v4"] }
|
||||
oswilno-contract = { path = "../oswilno-contract" }
|
||||
|
@ -13,8 +13,19 @@ impl EntityName for Entity {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, DeriveModel, DeriveActiveModel, Eq)]
|
||||
#[derive(
|
||||
Clone,
|
||||
Debug,
|
||||
PartialEq,
|
||||
DeriveModel,
|
||||
DeriveActiveModel,
|
||||
Eq,
|
||||
DeriveActixAdmin,
|
||||
DeriveActixAdminModel,
|
||||
DeriveActixAdminViewModel,
|
||||
)]
|
||||
pub struct Model {
|
||||
#[actix_admin(primary_key)]
|
||||
pub id: i32,
|
||||
pub login: String,
|
||||
pub pass_hash: String,
|
||||
@ -96,3 +107,6 @@ impl Related<super::parking_spaces::Entity> for Entity {
|
||||
}
|
||||
|
||||
impl ActiveModelBehavior for ActiveModel {}
|
||||
use actix_admin::prelude::*;
|
||||
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||
|
@ -13,8 +13,19 @@ impl EntityName for Entity {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, DeriveModel, DeriveActiveModel, Eq)]
|
||||
#[derive(
|
||||
Clone,
|
||||
Debug,
|
||||
PartialEq,
|
||||
DeriveModel,
|
||||
DeriveActiveModel,
|
||||
Eq,
|
||||
DeriveActixAdmin,
|
||||
DeriveActixAdminModel,
|
||||
DeriveActixAdminViewModel,
|
||||
)]
|
||||
pub struct Model {
|
||||
#[actix_admin(primary_key)]
|
||||
pub id: i32,
|
||||
pub local_path: String,
|
||||
pub public_path: String,
|
||||
@ -85,3 +96,6 @@ impl Related<super::accounts::Entity> for Entity {
|
||||
}
|
||||
|
||||
impl ActiveModelBehavior for ActiveModel {}
|
||||
use actix_admin::prelude::*;
|
||||
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||
|
@ -56,7 +56,7 @@ impl ColumnTrait for Column {
|
||||
fn def(&self) -> ColumnDef {
|
||||
match self {
|
||||
Self::Id => ColumnType::Integer.def(),
|
||||
Self::State => ParkingSpaceState::db_type(),
|
||||
Self::State => ParkingSpaceState::db_type().def(),
|
||||
Self::Location => ColumnType::String(None).def(),
|
||||
Self::AccountId => ColumnType::Integer.def(),
|
||||
Self::CreatedAt => ColumnType::DateTime.def(),
|
||||
|
@ -2,6 +2,19 @@ set -ex
|
||||
|
||||
sea-orm-cli generate entity -v -l --expanded-format -o ./crates/oswilno-contract/src -u postgres://postgres@localhost/oswilno
|
||||
|
||||
|
||||
for f in $( ls ./crates/oswilno-contract/src/*.rs ); do
|
||||
# bad generated code patch
|
||||
sed -i 's/db_type().def()/db_type()/g' $f
|
||||
|
||||
# actix-admin patch
|
||||
sed -i 's/pub struct Model {/#[derive(DeriveActixAdmin,DeriveActixAdminModel,DeriveActixAdminViewModel)]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
|
||||
|
||||
cargo fmt
|
||||
|
Loading…
Reference in New Issue
Block a user