TIL

# 211125 TIL ([Ruby, slim] 선택된 team의 plan 데이터 리스트로 보여주기)

장기현장실습

PLSnote 이슈

#2678 노트작성 버튼이 나타나는 곳을  확대하고자 합니다 이슈 진행중 

  • 기존에 있는 3곳의 새 노트 작성하기 버튼 클릭시 노트 작성 페이지가 나오는데 그 중 계획 리스트 check 중 의문인 부분 질문 
    • 맵/본부/팀/플랜 -> 계획: 본부에 있는 모든 계획 리스트 (확인된 계획 포함) 
      • 의문: 팀까지 선택했는데  본부에 있는 계획이 모두 나오는지..? 확인된 계획까지 나오는 이유..? 그리고 local에서는 경로가 맵/본부/팀/프로젝트/플랜 이렇게 나와서 약간의 차이가 있음 
      • 답변: 코드가 잘못 작성되어 있는 것 같음. 선택한 팀에 해당하는 계획  확인된 계획 제외하고 나오도록 수정해야함. 그리고 경로는 업데이트 상의 문제로 맵/본부/팀/프로젝트/플랜  경로가 맞음 
  • 우리가 @planable에 넣어줄 값이 team에 존재하는 플랜 리스트  기본으로 선택된(selected) 값이다.
    @planable = @planable || @project.open_planables.for_user(@project, current_user).proper_name_order.first
     
    • 기존에는 team 기준의 리스트를 가져오지 않아서 오류가 났고, 이 부분을 if-else 문으로 수정하면서 team 부분을 추가해주었다.
      if @team.present? 
        @planable = @team.open_planables.for_team(@team).proper_name_order.first 
      elsif @project.present? 
        @project.open_planables.for_user(@project, current_user).proper_name_order.first 
      else 
        @planable = @planable 
      end
  •  상태에서 오류가  곳은 activities/_form.html.slim이다. 여기서 f.collection_select 부분에 team 기준의 리스트를 가져오는 코드가 작성되어 있지 않아서 여기도 추가해주었다.
    - if @team.present? 
      = f.collection_select :plan_id, @team.plans.for_team(@team).proper_name_order.distinct, :id, :name, {selected: @planable&.id}, {class: 'form-control', data: {action: 'change->activity#selectTeam change->activity#selectTemplate'}, url: select_template_map_activity_templates_path(@map), message: t('activity_templates.confirm_choose_template_for_planable'), "select-team-url": select_team_map_activities_path(@map)} 
    - elsif @project.present?  
      = f.collection_select :plan_id, @project.plans.for_user(@project, current_user).proper_name_order.distinct, :id, :name, {selected: @planable&.id}, {class: 'form-control', data: {action: 'change->activity#selectTeam change->activity#selectTemplate'}, url: select_template_map_activity_templates_path(@map), message: t('activity_templates.confirm_choose_template_for_planable'), "select-team-url": select_team_map_activities_path(@map)}
      
      // 이슈 맵 일때도 비슷하게 처리
  • 드디어  노트 작성 버튼을 클릭하면  노트를 작성하는 화면이 나오고, 그 화면에서 선택된 팀의 계획 리스트가 나오는 것을 확인했다. 그런데 우리가 해야할 것은 프로젝트 select 필드를 추가하고, 해당 팀의 프로젝트가 나오게 하는 것, 하나의 프로젝트를 선택했을 때는  프로젝트에 포함된 계획 리스트를 보여주는 것이다.
  • 새로운 노트 작성하고 create하는 부분에서 오류가 발생하여  부분도 해결해야 한다.
  • + (이미 머지된 이슈) 노트 작성하고 저장 버튼을 누르면 이대로 저장하시겠습니까? 팝업에서 취소를 누르면 아무 액션도 되지 않아야하는데 노트 생성을 하려고 해서 문제가 있어 수정해야한다.