def desksAndSections()

in app/controllers/Admin.scala [78:109]


  def desksAndSections(selectedDeskIdOption: Option[Long]) = (AuthAction andThen PermissionFilter).async { implicit request =>
    for {
      deskList <- getDesks()
      sectionListFromDB <- getSortedSections()
      sectionList <- getSectionMappings(selectedDeskIdOption, sectionListFromDB, deskList)
    } yield {

      val selectedDeskOption = for {
        selectedDeskId <- selectedDeskIdOption
        selectedDesk <- deskList.find((desk) => selectedDeskId == desk.id)
      } yield selectedDesk

      val desks = selectedDeskOption.map { selectedDesk =>
        deskList.map { desk =>
          if (desk.id == selectedDesk.id)
            desk.copy(name = desk.name, selected = true)
          else
            desk
        }
      }.getOrElse(deskList)

      Ok(
        views.html.admin.desksAndSections(
          Json.Null,
          sectionList.sortBy(_.name),
          addSectionForm,
          desks.sortBy(_.name),
          addDeskForm,
          selectedDeskOption)
      )
    }
  }