MukurtuCMS / mukurtucms

GNU General Public License v2.0
81 stars 36 forks source link

Modify ma_scald_duplicate_content_protocol_action to exclude community records of referenced nodes #161

Open taylor-steve opened 9 months ago

taylor-steve commented 9 months ago

When a scald atom is referenced by ONLY an original record and that original record's community records, we want to allow ma_scald_duplicate_content_protocol_action to duplicate the protocols from the original record. For example, if ma_scald_get_atom_references returns ['node' => 3, 8, 9] and node 8 and 9 are CRs of 3, we can remove 8 and 9. If node 3 is the only remaining entity referencing the scald atom, we can safely duplicate the protocols.

Note that you cannot simply exclude ALL community records, that is not the same thing as above. Given the same example, but 9 is a CR of 4 rather than 3, then 9 is a valid second reference of the media item and we cannot duplicate the protocols because we do not know which one is authoritative.

Also note that if there are references from any other entity types beyond node, there is no need to do this computation.