Open mdutoo opened 10 years ago
Mixin is done, as well as first examples, though how it is used for data layers could be improved. Using it for (dynamic) polymorphism is let to #35. Defining Mixins for technical features is let to their specific issues, such as #19 Contributions and #22 data quality etc. Defining Mixins for core common business types such as oasis.address is let to TODO
For views, rather use DCPointOfView which allows to have a alternate, readonly copies of some models' data but reuse others' (in a DCProject which itself allows to fork some data and optionally models but reuse others), since 7d8eb7df2c9217e4a1add4b58f847842c5846abd . Rights may be different on DCPointOfView models.
Describe alternatives of how to model data layers (INSEE / IGN data layer patcher by Cityhalls data layer use case) using Mixins, from those already possible to those requiring additional developments.
Develop easy ones if any. Put updated description in FAQ / Guide.
Limitation : queries on both old (IGN) and new (Cityhall) versions of properties require all IGN Resources to have been copied, otherwise they will only work on the scope of Cityhall patched data (which may be enough for Cityhalls - but won't cover all future uses).
Limitation : Cityhalls can't patch existing properties, they must store patched versions of them in their own new properties. And IGN can't get only its own data, it will always also receive Cityhalls (but per RDF principles this shouldn't be a problem at all).
Work to do : Cityhalls must have the right to write their own properties but not IGN's. So rights should be set not only on Models, but on Mixins, and checked at update time. In the MongoDB Entity store, this means each Mixin is in a separate sub JSON Object which holds its own ACLs. By the way, this is exactly how an embedded sub Resource's own rights should be stored, which could then be allowed at the same time.
Work to do : a new kind of Model with said reference and a getCollection() that returns its reference's, said filter