fix: add assignment new semaphore

-add a semaphore to prevent multiple users accessing
the same participant more than twice during assignment
creation
- remove the assignment_add template and classes
- simplify some of the logic and code used during
assignment creation