diff --git a/app/admin_model.py b/app/admin_model.py index a134c4b7..d9962351 100644 --- a/app/admin_model.py +++ b/app/admin_model.py @@ -317,8 +317,9 @@ class PayoutAdmin(SLModelView): class AdminAuditLogAdmin(SLModelView): - column_searchable_list = ["admin_user_id"] - column_filters = ["admin_user_id"] + column_searchable_list = ["admin.id", "admin.email"] + column_filters = ["admin.id", "admin.email"] + column_hide_backrefs = False can_edit = False can_create = False can_delete = False diff --git a/app/models.py b/app/models.py index 9bce6f57..f78b301b 100644 --- a/app/models.py +++ b/app/models.py @@ -2878,12 +2878,14 @@ class AdminAuditLog(Base): id = sa.Column(sa.Integer, primary_key=True, autoincrement=True) created_at = sa.Column(ArrowType, default=arrow.utcnow, nullable=False) - admin_user_id = sa.Column(sa.ForeignKey(User.id), nullable=False) + admin_user_id = sa.Column(sa.ForeignKey("users.id"), nullable=False) action = sa.Column(sa.Integer, nullable=False) model = sa.Column(sa.Text, nullable=False) model_id = sa.Column(sa.Integer, nullable=True) data = sa.Column(sa.JSON, nullable=True) + admin = orm.relationship(User, foreign_keys=[admin_user_id]) + ACTION_CREATE_OBJECT = 1 ACTION_UPDATE_OBJECT = 2 ACTION_DELETE_OBJECT = 3 diff --git a/migrations/versions/2022_031015_b500363567e3_create_admin_audit_log.py b/migrations/versions/2022_031015_b500363567e3_create_admin_audit_log.py index 873fb3e1..12c3db37 100644 --- a/migrations/versions/2022_031015_b500363567e3_create_admin_audit_log.py +++ b/migrations/versions/2022_031015_b500363567e3_create_admin_audit_log.py @@ -18,7 +18,7 @@ depends_on = None def upgrade(): - op.create_table( + admin_table = op.create_table( "admin_audit_log", sa.Column("id", sa.Integer(), autoincrement=True, nullable=False), sa.Column("created_at", sqlalchemy_utils.types.arrow.ArrowType(), nullable=False), @@ -27,9 +27,11 @@ def upgrade(): sa.Column("model", sa.String(length=256), nullable=False), sa.Column("model_id", sa.Integer, nullable=True), sa.Column("data", postgresql.JSONB(astext_type=sa.Text()), nullable=False), + sa.Index("admin_audit_log_admin_user_id_idx", 'admin_user_id'), sa.ForeignKeyConstraint(['admin_user_id'], ['users.id'], ondelete='cascade'), sa.PrimaryKeyConstraint("id"), ) + def downgrade(): op.drop_table("admin_audit_log")