장기현장실습
PLSnote 이슈
#2644 그룹에 탈퇴신청을 하고 일정기간이 지나면 탈퇴가 되는 기능이 필요 이슈 추가진행
- 장기미사용 기능과 코드를 합치는 과정에서 탈퇴 신청일 부분이 날아간 듯 하여 화면에 나타나지 않는다고 함
- 기존에는 group_users table이 업데이트 되는 날짜로 참조했었는데, 다른 컬럼이 생기면서 updated_at이 탈퇴 신청일이라는 보장이 없게 되었다. 따라서 탈퇴 신청하는 job이 생긴 날짜 컬럼인 created_at 을 활용해 해당 날짜가 나오도록 수정했다.
- if group.group_users.find_by(user_id: user.id).withdraw_from_user .badge.badge-light.mt-1 = "#{t('group_manager.users.index.application_date_for_withdrawal')} #{l Sidekiq::ScheduledSet.new.find_job(group.group_users.find_by(user_id: user.id).job_id).created_at, format: :short}"
탈퇴신청일 UI 추가
- 기존에는 group_users table이 업데이트 되는 날짜로 참조했었는데, 다른 컬럼이 생기면서 updated_at이 탈퇴 신청일이라는 보장이 없게 되었다. 따라서 탈퇴 신청하는 job이 생긴 날짜 컬럼인 created_at 을 활용해 해당 날짜가 나오도록 수정했다.
#2678 노트작성 버튼이 나타나는 곳을 더 확대하고자 합니다 이슈 진행중
- 맵/본부/팀 에서 새 노트작성시 나타날 프로젝트 리스트 쿼리중
- 이슈맵일 때의 쿼리를 진행 -
- 선택한 팀의 프로젝트 리스트를 가져와야 한다. 근데 어떤 프로젝트 리스트냐면 확인전 이슈가 있는 프로젝트 리스트를 가져와야한다. 그러기 위해서 그 팀의 project_id를 가져와야 하는데 issues 테이블에는 team_id가 없어서 교차하는 부분이 없다. 그래서 team_id가 있는 issue_team_orders 테이블에 접근했다. 근데 또 문제가 이슈는 할당된 팀을 계속 변경할 수 있다.. 그래서 맨 마지막(현재)으로 할당된 팀의 이슈를 가져와야 하는.. 그런 문제가 있었다. 이와 관련된 컬럼으로는 order가 있어서 이를 활용했다.
- 일단 현재 팀이 가지고 있는 이슈 issue_id를 (중복제거) 모아서 반복문을 돌렸다. issue_team_orders에서 하나의 issue_id로 쿼리해서 그 결과들을 order 컬럼 값으로 오름차순 정렬하고 그 중 맨 마지막 값만 가져왔다. 그렇게 하면 현재 할당된 이슈를 가져온 것인데 그 팀이 우리가 선택한 팀과 같은지 비교해서 맞으면 그 issue_id를 저장하는 형태로 쿼리했다.
# issue_data = []: 현재 선택된 팀의 이슈 리스트 (이슈 아이디) issue_data=[] team.issues.pluck(:id).uniq.each do |issue| @current_issue_team_orders = IssueTeamOrder.where(issue_id: issue) @current_issue_team_orders = @current_issue_team_orders.order(order: :asc).last() if (@current_issue_team_orders.team_id == team) @issue_id = @current_issue_team_orders.issue_id issue_data = issue_data.push(@issue_id) else break end end
- 반복문이 끝나면 issue_data 배열에 값이 저장될 것이다. 그 값들도 반복문을 돌려서 issues 테이블에서 id가 배열에 저장된 issue_id이고, 확인전 이슈인지 체크하는 status: :open_issue인 것을 조건으로 쿼리한다. 그리고 나서 그 결과의 project_id만 가져와 그 project_id인 프로젝트만 가져온다. 그렇게 프로젝트 리스트를 뽑아낸다.
# project_data = []: 선택된 팀의 이슈 리스트 중에 확인전 이슈의 프로젝트 아이디 project_data=[] if issue_data.present? issue_data.each do |data| @project_id = team.issues.where(id: data, status: :open_issue).pluck(:project_id) project_data = project_data.push(@project_id) end end where(id: project_data)
- 이슈맵일 때의 쿼리를 진행 -
SNU 성문분석 이슈
#49 서버 접속 방법 선택 시 hover 영역 수정 이슈 (완료)
- 완전히 중앙을 맞추면 왼쪽으로 이동하는 현상이 발생되어, 왼쪽 버튼과 오른쪽 버튼이 겹치지만 않도록 마무리하였다.