There is the following task:
Manage the changes that will be sent for saving when sync() is called.
For example: ignore changes for tasks, dependencies, assignments, resources if they have some property
I am studying the source code of Crudemanager and ProjectModel, but I have not yet found points through which I could manage this.
Please tell me the classes/methods that you need to look at
Yes, it might help. However, I need to not interrupt the synchronization altogether. And skip some "Changes".
My goal is to make a multiproject mapping. Where only the main project could be edited, and attempts to change external ones would be ignored.
I know that there is a readOnly flag on the task, however, I'm afraid it doesn't always work correctly.(There are a number of tickets that prove this)
The solution to my problem seemed to me that for "additional" projects I would create additional taskstores and hoped that by modifying the TaskStore data methods I would be able to influence the synchronized data.
Looks like you want to prevent changes throw UI but allow it on data level. Might be better in that case to catch user changes on taskEdit, taskResize, cellEdit features level? Or maybe disable them (features) at all, if different projects used at different time or components.
Of course, in these places I was also going to add validation data and different behavior when working in multi-project mode
However, for "security", you never know if someone will be able to somehow "with definitely established stars" do something like that.
And to understand how I can influence synchronization is very useful for further work with your wonderful product