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 macro body"),
|
||||
);
|
||||
// eprintln!("{punc:#?} {group:#?}");
|
||||
// eprintln!("punc {_punc:#?} group {group:#?}");
|
||||
let mut it = if let TokenTree::Group(g) = group {
|
||||
// parse #[sea_orm]
|
||||
g.stream().into_iter().peekable()
|
||||
|
@ -4,9 +4,9 @@ version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[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://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-grants = "3.0.2"
|
||||
askama = "0.12.0"
|
||||
|
@ -5,9 +5,9 @@ edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
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://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 = [] }
|
||||
chrono = "0.4.26"
|
||||
oswilno-actix-admin = { path = "../oswilno-actix-admin" }
|
||||
|
@ -1,11 +1,15 @@
|
||||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
||||
|
||||
use super::sea_orm_active_enums::Userrole;
|
||||
use actix_admin::prelude::*;
|
||||
use sea_orm::entity::prelude::*;
|
||||
use sea_orm::Iterable;
|
||||
|
||||
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
||||
pub struct Entity;
|
||||
|
||||
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||
impl EntityName for Entity {
|
||||
fn table_name(&self) -> &str {
|
||||
"accounts"
|
||||
@ -22,7 +26,6 @@ impl EntityName for Entity {
|
||||
DeriveActixAdmin,
|
||||
DeriveActixAdminModel,
|
||||
DeriveActixAdminViewModel,
|
||||
serde::Serialize,
|
||||
)]
|
||||
pub struct Model {
|
||||
#[actix_admin(primary_key)]
|
||||
@ -33,7 +36,9 @@ pub struct Model {
|
||||
pub banned: bool,
|
||||
pub confirmed: bool,
|
||||
pub verified: bool,
|
||||
#[actix_admin(list_hide_column)]
|
||||
pub created_at: DateTime,
|
||||
#[actix_admin(list_hide_column)]
|
||||
pub updated_at: DateTime,
|
||||
pub email: String,
|
||||
}
|
||||
@ -66,6 +71,7 @@ impl PrimaryKeyTrait for PrimaryKey {
|
||||
|
||||
#[derive(Copy, Clone, Debug, EnumIter)]
|
||||
pub enum Relation {
|
||||
Images,
|
||||
ParkingSpaces,
|
||||
}
|
||||
|
||||
@ -90,11 +96,18 @@ impl ColumnTrait for Column {
|
||||
impl RelationTrait for Relation {
|
||||
fn def(&self) -> RelationDef {
|
||||
match self {
|
||||
Self::Images => Entity::has_many(super::images::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 {
|
||||
fn to() -> RelationDef {
|
||||
Relation::ParkingSpaces.def()
|
||||
@ -102,6 +115,3 @@ 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 {}
|
||||
|
@ -1,11 +1,15 @@
|
||||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
||||
|
||||
use super::sea_orm_active_enums::ImageState;
|
||||
use actix_admin::prelude::*;
|
||||
use sea_orm::entity::prelude::*;
|
||||
use sea_orm::Iterable;
|
||||
|
||||
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
||||
pub struct Entity;
|
||||
|
||||
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||
impl EntityName for Entity {
|
||||
fn table_name(&self) -> &str {
|
||||
"images"
|
||||
@ -22,7 +26,6 @@ impl EntityName for Entity {
|
||||
DeriveActixAdmin,
|
||||
DeriveActixAdminModel,
|
||||
DeriveActixAdminViewModel,
|
||||
serde::Serialize,
|
||||
)]
|
||||
pub struct Model {
|
||||
#[actix_admin(primary_key)]
|
||||
@ -31,7 +34,9 @@ pub struct Model {
|
||||
pub public_path: String,
|
||||
pub image_state: ImageState,
|
||||
pub account_id: i32,
|
||||
#[actix_admin(list_hide_column)]
|
||||
pub created_at: DateTime,
|
||||
#[actix_admin(list_hide_column)]
|
||||
pub updated_at: DateTime,
|
||||
}
|
||||
|
||||
@ -59,7 +64,9 @@ impl PrimaryKeyTrait for PrimaryKey {
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, EnumIter)]
|
||||
pub enum Relation {}
|
||||
pub enum Relation {
|
||||
Accounts,
|
||||
}
|
||||
|
||||
impl ColumnTrait for Column {
|
||||
type EntityName = Entity;
|
||||
@ -78,11 +85,19 @@ impl ColumnTrait for Column {
|
||||
|
||||
impl RelationTrait for Relation {
|
||||
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 {}
|
||||
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
|
||||
|
||||
use actix_admin::prelude::*;
|
||||
use sea_orm::entity::prelude::*;
|
||||
use sea_orm::Iterable;
|
||||
|
||||
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
||||
pub struct Entity;
|
||||
|
||||
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||
impl EntityName for Entity {
|
||||
fn table_name(&self) -> &str {
|
||||
"parking_space_locations"
|
||||
@ -21,7 +25,6 @@ impl EntityName for Entity {
|
||||
DeriveActixAdmin,
|
||||
DeriveActixAdminModel,
|
||||
DeriveActixAdminViewModel,
|
||||
serde::Serialize,
|
||||
)]
|
||||
pub struct Model {
|
||||
#[actix_admin(primary_key)]
|
||||
@ -29,7 +32,9 @@ pub struct Model {
|
||||
pub name: String,
|
||||
pub number: i32,
|
||||
pub stage: String,
|
||||
#[actix_admin(list_hide_column)]
|
||||
pub created_at: DateTime,
|
||||
#[actix_admin(list_hide_column)]
|
||||
pub updated_at: DateTime,
|
||||
}
|
||||
|
||||
@ -89,6 +94,3 @@ 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 {}
|
||||
|
@ -1,10 +1,14 @@
|
||||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
||||
|
||||
use actix_admin::prelude::*;
|
||||
use sea_orm::entity::prelude::*;
|
||||
use sea_orm::Iterable;
|
||||
|
||||
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
||||
pub struct Entity;
|
||||
|
||||
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||
impl EntityName for Entity {
|
||||
fn table_name(&self) -> &str {
|
||||
"parking_space_rents"
|
||||
@ -21,15 +25,17 @@ impl EntityName for Entity {
|
||||
DeriveActixAdmin,
|
||||
DeriveActixAdminModel,
|
||||
DeriveActixAdminViewModel,
|
||||
serde::Serialize,
|
||||
)]
|
||||
pub struct Model {
|
||||
#[actix_admin(primary_key)]
|
||||
pub id: i32,
|
||||
pub price: i32,
|
||||
#[actix_admin(select_list=crate::parking_spaces::Entity)]
|
||||
pub parking_space_id: i32,
|
||||
pub available: bool,
|
||||
#[actix_admin(list_hide_column)]
|
||||
pub created_at: DateTime,
|
||||
#[actix_admin(list_hide_column)]
|
||||
pub updated_at: DateTime,
|
||||
}
|
||||
|
||||
@ -92,6 +98,3 @@ 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 {}
|
||||
|
@ -1,11 +1,15 @@
|
||||
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2
|
||||
|
||||
use super::sea_orm_active_enums::ParkingSpaceState;
|
||||
use actix_admin::prelude::*;
|
||||
use sea_orm::entity::prelude::*;
|
||||
use sea_orm::Iterable;
|
||||
|
||||
#[derive(Copy, Clone, Default, Debug, DeriveEntity)]
|
||||
pub struct Entity;
|
||||
|
||||
impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}
|
||||
impl ActixAdminModelFilterTrait<Entity> for Entity {}
|
||||
impl EntityName for Entity {
|
||||
fn table_name(&self) -> &str {
|
||||
"parking_spaces"
|
||||
@ -22,16 +26,19 @@ impl EntityName for Entity {
|
||||
DeriveActixAdmin,
|
||||
DeriveActixAdminModel,
|
||||
DeriveActixAdminViewModel,
|
||||
serde::Serialize,
|
||||
)]
|
||||
pub struct Model {
|
||||
#[actix_admin(primary_key)]
|
||||
pub id: i32,
|
||||
#[actix_admin(select_list=crate::ParkingSpaceState)]
|
||||
pub state: ParkingSpaceState,
|
||||
pub account_id: i32,
|
||||
#[actix_admin(list_hide_column)]
|
||||
pub created_at: DateTime,
|
||||
#[actix_admin(list_hide_column)]
|
||||
pub updated_at: DateTime,
|
||||
pub spot: Option<i32>,
|
||||
#[actix_admin(select_list=crate::parking_space_locations::Entity)]
|
||||
pub location_id: Option<i32>,
|
||||
}
|
||||
|
||||
@ -117,6 +124,3 @@ impl Related<super::parking_space_rents::Entity> for Entity {
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
use actix_admin::prelude::*;
|
||||
use sea_orm::entity::prelude::*;
|
||||
use sea_orm::Iterable;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
|
||||
#[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 {
|
||||
#[sea_orm(string_value = "approved")]
|
||||
Approved,
|
||||
@ -19,7 +21,7 @@ pub enum ImageState {
|
||||
db_type = "Enum",
|
||||
enum_name = "parking_space_state"
|
||||
)]
|
||||
#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize)]
|
||||
#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize, DeriveActixAdminEnumSelectList)]
|
||||
pub enum ParkingSpaceState {
|
||||
#[sea_orm(string_value = "Banned")]
|
||||
Banned,
|
||||
@ -30,7 +32,7 @@ pub enum ParkingSpaceState {
|
||||
}
|
||||
#[derive(Debug, Clone, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
|
||||
#[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 {
|
||||
#[sea_orm(string_value = "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
|
||||
# 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,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
|
||||
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user