Skip to content
104 changes: 97 additions & 7 deletions sir/schema/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -499,31 +499,121 @@
SearchUrl = E(modelext.CustomURL, [
F("mbid", "gid"),
F("url", "url"),
F("relationtype", ["artist_links.link.link_type.name",
"release_links.link.link_type.name"]),
F("targetid", ["artist_links.artist.gid",
"release_links.release.gid"]),
F("targettype", ["artist_links.__tablename__",
"release_links.__tablename__"],
F("relationtype", ["area_links.link.link_type.name",
"artist_links.link.link_type.name",
"event_links.link.link_type.name",
"instrument_links.link.link_type.name",
"label_links.link.link_type.name",
"place_links.link.link_type.name",
"recording_links.link.link_type.name",
"release_group_links.link.link_type.name",
"release_links.link.link_type.name",
"series_links.link.link_type.name",
"work_links.link.link_type.name"]),
F("targetid", ["area_links.area.gid",
"artist_links.artist.gid",
"event_links.event.gid",
"instrument_links.instrument.gid",
"label_links.label.gid",
"place_links.place.gid",
"recording_links.recording.gid",
"release_group_links.release_group.gid",
"release_links.release.gid",
"series_links.series.gid",
"work_links.work.gid"]),
F("targettype", ["area_links.__tablename__",
"artist_links.__tablename__",
"event_links.__tablename__",
"instrument_links.__tablename__",
"label_links.__tablename__",
"place_links.__tablename__",
"recording_links.__tablename__",
"release_group_links.__tablename__",
"release_links.__tablename__",
"series_links.__tablename__",
"work_links.__tablename__"],
transformfunc=tfs.url_type),
],
1.5,
convert.convert_url,
extrapaths=["artist_links.artist.gid",
extrapaths=["area_links.area.gid",
"area_links.area.name",
"area_links.link.link_type.name",
"area_links.link.link_type.gid",
"area_links.link.attributes.attribute_type.name",
"area_links.link.attributes.attribute_type.gid",
"artist_links.artist.gid",
"artist_links.artist.name",
"artist_links.artist.comment",
"artist_links.artist.sort_name",
"artist_links.link.link_type.name",
"artist_links.link.link_type.gid",
"artist_links.link.attributes.attribute_type.name",
"artist_links.link.attributes.attribute_type.gid",
"event_links.event.gid",
"event_links.event.name",
"event_links.event.comment",
"event_links.link.link_type.name",
"event_links.link.link_type.gid",
"event_links.link.attributes.attribute_type.name",
"event_links.link.attributes.attribute_type.gid",
"instrument_links.instrument.gid",
"instrument_links.instrument.name",
"instrument_links.instrument.comment",
"instrument_links.link.link_type.name",
"instrument_links.link.link_type.gid",
"instrument_links.link.attributes.attribute_type.name",
"instrument_links.link.attributes.attribute_type.gid",
"label_links.label.gid",
"label_links.label.name",
"label_links.label.comment",
"label_links.link.link_type.name",
"label_links.link.link_type.gid",
"label_links.link.attributes.attribute_type.name",
"label_links.link.attributes.attribute_type.gid",
"place_links.place.gid",
"place_links.place.name",
"place_links.place.comment",
"place_links.link.link_type.name",
"place_links.link.link_type.gid",
"place_links.link.attributes.attribute_type.name",
"place_links.link.attributes.attribute_type.gid",
"recording_links.recording.gid",
"recording_links.recording.name",
"recording_links.recording.comment",
"recording_links.recording.video",
"recording_links.link.link_type.name",
"recording_links.link.link_type.gid",
"recording_links.link.attributes.attribute_type.name",
"recording_links.link.attributes.attribute_type.gid",
"release_group_links.release_group.gid",
"release_group_links.release_group.name",
"release_group_links.release_group.comment",
"release_group_links.link.link_type.name",
"release_group_links.link.link_type.gid",
"release_group_links.link.attributes.attribute_type.name",
"release_group_links.link.attributes.attribute_type.gid",
"release_links.release.gid",
"release_links.release.name",
"release_links.release.comment",
"release_links.link.link_type.name",
"release_links.link.link_type.gid",
"release_links.link.attributes.attribute_type.name",
"release_links.link.attributes.attribute_type.gid",
"series_links.series.gid",
"series_links.series.name",
"series_links.series.comment",
"series_links.link.link_type.name",
"series_links.link.link_type.gid",
"series_links.link.attributes.attribute_type.name",
"series_links.link.attributes.attribute_type.gid",
"work_links.work.gid",
"work_links.work.name",
"work_links.work.comment",
"work_links.link.link_type.name",
"work_links.link.link_type.gid",
"work_links.link.attributes.attribute_type.name",
"work_links.link.attributes.attribute_type.gid",
]
)

Expand Down
9 changes: 9 additions & 0 deletions sir/schema/modelext.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,17 @@ class CustomWork(Work):


class CustomURL(URL):
area_links = relationship("LinkAreaURL")
artist_links = relationship("LinkArtistURL")
event_links = relationship("LinkEventURL")
instrument_links = relationship("LinkInstrumentURL")
label_links = relationship("LinkLabelURL")
place_links = relationship("LinkPlaceURL")
recording_links = relationship("LinkRecordingURL")
release_group_links = relationship("LinkReleaseGroupURL")
release_links = relationship("LinkReleaseURL")
series_links = relationship("LinkSeriesURL")
work_links = relationship("LinkURLWork")


class CustomLinkAttribute(LinkAttribute):
Expand Down
Loading