I run a Moodle 3.7 site with currently 4 courses (all topic based). These courses are used by different schools at the same time, so what we have been doing is creating different groups in each course (one per school), enrolling the students of each school in the corresponding group of that school. Same with teacher accounts (all non-editing teachers), we just enroll them in whatever group they're supposed to manage. They don't have content-editing capabilities because we don't want one school to be able to modify the contents to their liking, since that would affect other schools of course.
The problem that we're facing now is that we have a new school that wants much more control over the contents of the courses. They would like each teacher to be able to add/remove contents (lessons, tests, etc) for their own group, or hide/unhide topics depending on the progress of the students in their group.
I'm not very sure how to set up our Moodle site to allow all that. Do I need to make a copy of every course for every group? How do I allow certain teachers to modify the course just for their group, but so it doesn't affect how other groups see the course? For example, if I have a teacher that wants to hide 10 out of the 15 topics in a course, how do I allow that to happen just for the group that teacher is managing, but the rest of groups see the 15 topics? Or is this just not possible in Moodle? Also, there will be more groups in the future, where the teachers will want the same kind of control over the contents, would I have to keep duplicating courses over time for each group?
In general, I would prefer to avoid having to duplicate courses if possible, they're already really big courses with lots of files, lessons, activities, etc... and the backups are already a nightmare to handle. Or is it possible to share resources in different courses so duplicating a course only duplicates the "entry" but not the actual files, lessons, activities, etc?
Any help in this matter would be greatly appreciated.