My question is very similar to this one: Dynamic content-type creation

I have a scenario in my website where teachers create activity for students in their class. Each student is supposed to submit an activity record corresponding to that activity and submit it back to the teacher (faculty). Each activity might have different set of fields depending on the type of activity. After student submits an activity record it comes to teacher for review (I will be using Workbench moderation for this). Next once teacher approves the activity record it comes to a Super-user of the site and only when super-user approves the activity record is published in the site.

I have tried to use Webform for this which replicates google form and the faculty in my case can easily create an activity where students can answer this webform which will be an activity record. However, in this case, an activity record is not a drupal node and an entity internal to webform which is associated with each webform (which is a drupal node). This means I would not have the privilege of leveraging:

  • Workbench moderation
  • Node Revision
  • Views filter
  • Etc.

All of which works only on Drupal nodes and not possibly on webform entries as such.

I will have to expose administer content-types for faculty role, but this would mean that it is a security issue which only admin is supposed to have permission to fiddle with it.

Moreover, I would want to have a template content-type for Activity which Faculty (teacher) can extend it and add their own fields on top of it.

Is there a module or set of modules which does this for me out of the box? If I am to develop anything as such in case there is nothing out there, how am I to proceed ahead?