Skip to content

Commit

Permalink
fix: Improving handling for tag relationship when deleting assets (#2…
Browse files Browse the repository at this point in the history
  • Loading branch information
Vitor-Avila authored and eschutho committed Jul 24, 2024
1 parent 6cc73c0 commit 830aad2
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 8 deletions.
7 changes: 4 additions & 3 deletions superset/models/dashboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,11 +150,12 @@ class Dashboard(AuditMixinNullable, ImportExportMixin, Model):
)
tags = relationship(
"Tag",
overlaps="objects,tag,tags,tags",
overlaps="objects,tag,tags",
secondary="tagged_object",
primaryjoin="and_(Dashboard.id == TaggedObject.object_id)",
secondaryjoin="and_(TaggedObject.tag_id == Tag.id, "
primaryjoin="and_(Dashboard.id == TaggedObject.object_id, "
"TaggedObject.object_type == 'dashboard')",
secondaryjoin="and_(TaggedObject.tag_id == Tag.id)",
passive_deletes=True,
)
published = Column(Boolean, default=False)
is_managed_externally = Column(Boolean, nullable=False, default=False)
Expand Down
5 changes: 3 additions & 2 deletions superset/models/slice.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,10 @@ class Slice( # pylint: disable=too-many-public-methods
"Tag",
secondary="tagged_object",
overlaps="objects,tag,tags",
primaryjoin="and_(Slice.id == TaggedObject.object_id)",
secondaryjoin="and_(TaggedObject.tag_id == Tag.id, "
primaryjoin="and_(Slice.id == TaggedObject.object_id, "
"TaggedObject.object_type == 'chart')",
secondaryjoin="and_(TaggedObject.tag_id == Tag.id)",
passive_deletes=True,
)
table = relationship(
"SqlaTable",
Expand Down
7 changes: 4 additions & 3 deletions superset/models/sql_lab.py
Original file line number Diff line number Diff line change
Expand Up @@ -415,10 +415,11 @@ class SavedQuery(
tags = relationship(
"Tag",
secondary="tagged_object",
overlaps="tags",
primaryjoin="and_(SavedQuery.id == TaggedObject.object_id)",
secondaryjoin="and_(TaggedObject.tag_id == Tag.id, "
overlaps="objects,tag,tags",
primaryjoin="and_(SavedQuery.id == TaggedObject.object_id, "
"TaggedObject.object_type == 'query')",
secondaryjoin="and_(TaggedObject.tag_id == Tag.id)",
passive_deletes=True,
)

export_parent = "database"
Expand Down

0 comments on commit 830aad2

Please sign in to comment.