diff options
Diffstat (limited to 'src/data/things/artwork.js')
-rw-r--r-- | src/data/things/artwork.js | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/src/data/things/artwork.js b/src/data/things/artwork.js index 9e4a1d7c..fabbf625 100644 --- a/src/data/things/artwork.js +++ b/src/data/things/artwork.js @@ -18,8 +18,6 @@ import { } from '#validators'; import {withPropertyFromObject} from '#composite/data'; -import {contentString, directory, simpleString, soupyFind, thing, wikiData} - from '#composite/wiki-properties'; import { exitWithoutDependency, @@ -36,6 +34,17 @@ import { withResolvedReferenceList, } from '#composite/wiki-data'; +import { + contentString, + directory, + reverseReferenceList, + simpleString, + soupyFind, + soupyReverse, + thing, + wikiData, +} from '#composite/wiki-properties'; + import {withDate} from '#composite/things/artwork'; export class Artwork extends Thing { @@ -222,11 +231,18 @@ export class Artwork extends Thing { // Update only find: soupyFind(), + reverse: soupyReverse(), // used for referencedArtworks (mixedFind) artworkData: wikiData({ class: input.value(Artwork), }), + + // Expose only + + referencedByArtworks: reverseReferenceList({ + reverse: soupyReverse.input('artworksWhichReference'), + }), }); static [Thing.yamlDocumentSpec] = { @@ -256,6 +272,16 @@ export class Artwork extends Thing { }, }; + static [Thing.reverseSpecs] = { + artworksWhichReference: { + bindTo: 'artworkData', + + referencing: artwork => [artwork], + referenced: artwork => + artwork.referencedArtworks.map(ref => ref.artwork), + }, + }; + get path() { if (!this.thing) return null; if (!this.thing.getOwnArtworkPath) return null; |