« get me outta code hell

data: Artwork.{attachedArtwork,attachingArtworks} - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-04-23 16:17:38 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-04-23 16:17:38 -0300
commita93dc8c179ce5e0bf7e5b03a4e7946c38c6a213a (patch)
treed0a4af29e3f4bd6582e22380ca5668087b8467dd /src/data/things
parent172499cc1f64c1e16b33d69fdbb8c0679a4e2369 (diff)
data: Artwork.{attachedArtwork,attachingArtworks}
Diffstat (limited to 'src/data/things')
-rw-r--r--src/data/things/artwork.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/data/things/artwork.js b/src/data/things/artwork.js
index 1af22d83..3cdb07d0 100644
--- a/src/data/things/artwork.js
+++ b/src/data/things/artwork.js
@@ -54,6 +54,7 @@ import {
 } from '#composite/wiki-properties';
 
 import {
+  withAttachedArtwork,
   withContainingArtworkList,
   withContribsFromAttachedArtwork,
   withPropertyFromAttachedArtwork,
@@ -358,6 +359,18 @@ export class Artwork extends Thing {
           list[0],
       },
     ],
+
+    attachedArtwork: [
+      withAttachedArtwork(),
+
+      exposeDependency({
+        dependency: '#attachedArtwork',
+      }),
+    ],
+
+    attachingArtworks: reverseReferenceList({
+      reverse: soupyReverse.input('artworksWhichAttach'),
+    }),
   });
 
   static [Thing.yamlDocumentSpec] = {
@@ -416,6 +429,18 @@ export class Artwork extends Thing {
       date: ({artwork}) => artwork.date,
     },
 
+    artworksWhichAttach: {
+      bindTo: 'artworkData',
+
+      referencing: referencingArtwork =>
+        (referencingArtwork.attachAbove
+          ? [referencingArtwork]
+          : []),
+
+      referenced: referencingArtwork =>
+        [referencingArtwork.attachedArtwork],
+    },
+
     artworksWhichFeature: {
       bindTo: 'artworkData',