public GroupAssessmentController(
      UserRequest ureq,
      WindowControl wControl,
      CourseEnvironment courseEnv,
      GTACourseNode courseNode,
      BusinessGroup assessedGroup) {
    super(ureq, wControl, "assessment_per_group");
    this.gtaNode = courseNode;
    this.courseEnv = courseEnv;
    this.assessedGroup = assessedGroup;

    withScore = courseNode.hasScoreConfigured();
    withPassed = courseNode.hasPassedConfigured();
    if (withPassed) {
      cutValue = courseNode.getCutValueConfiguration();
    }
    withComment = courseNode.hasCommentConfigured();

    Roles roles = ureq.getUserSession().getRoles();
    isAdministrativeUser = securityModule.isUserAllowedAdminProps(roles);
    userPropertyHandlers =
        userManager.getUserPropertyHandlersFor(
            GTACoachedGroupGradingController.USER_PROPS_ID, isAdministrativeUser);
    setTranslator(userManager.getPropertyHandlerTranslator(getTranslator()));

    List<IdentityRef> duplicates = gtaManager.getDuplicatedMemberships(courseNode);
    duplicateMemberKeys = new ArrayList<>(duplicates.size());
    for (IdentityRef duplicate : duplicates) {
      duplicateMemberKeys.add(duplicate.getKey());
    }

    initForm(ureq);
    ModelInfos modelInfos = loadModel();
    updateGUI(modelInfos);
  }