노션 수식 삽질기(1)

아서·2023년 8월 31일
0

이 글은 노션의 '속성'에서 '남은 기간'을 알려주는 '수식'을 만든 기록입니다.

개인노션의 프로젝트+캘린더+투두리스트 통합 작업을 하고 있습니다.
DB 구조는 project > task > todo 로 구성했구요.

https://zoosso.tistory.com/1148
의 글을 참고해서 식을 구성했습니다.

empty(prop("마감 날짜")) ? "마감 날짜 미입력" : ((dateAdd(prop("마감 날짜"), 24, "hours") < now()) ? "기한 경과" : (if(dateBetween(dateAdd(prop("마감 날짜"), 24, "hours"), now(), "months") > 0, format(dateBetween(dateAdd(prop("마감 날짜"), 24, "hours"), now(), "months")) + "개월", if(dateBetween(dateAdd(prop("마감 날짜"), 24, "hours"), now(), "days") > 0, format(dateBetween(dateAdd(prop("마감 날짜"), 24, "hours"), now(), "days")) + "일", if(dateBetween(dateAdd(prop("마감 날짜"), 24, "hours"), now(), "hours") > 0, format(dateBetween(dateAdd(prop("마감 날짜"), 24, "hours"), now(), "hours")) + "시간", format(dateBetween(dateAdd(prop("마감 날짜"), 24, "hours"), now(), "minutes")) + "분"))) + " 후 마감"))

저는 "n 주 후 마감" 의 표현이 필요했고, GPT에 물어봤지만 동작이 안되는 코드를 받아서 직접 수정했습니다.

그 전에 정확하게 수정하기 위해서 리펙토링을 우선 작업했습니다.

prop("마감날짜") // date

아래는 계산을 편하게 하기 위해 00시00분으로 포멧하는 수식입니다.

아래는 위 "계산용날짜"를 이용해서 "X간차이"를 따로 분리했습니다.

과정에서 "주간차이" 수식도 만들었고 이로 리펙토링했습니다.

최종 결과물

empty(prop("마감 날짜")) ? "마감 날짜 미입력" : ((prop("계산용날짜") < now()) ? "기한 경과" : (if(prop("개월간차이") > 0, format(prop("개월간차이")) + "개월", if(prop("주간차이") > 0, format(prop("주간차이")) + "주", if(prop("일간차이") > 0, format(prop("일간차이")) + "일", if(prop("시간간차이") > 0, format(prop("시간간차이")) + "시간", format(dateBetween(prop("계산용날짜"), now(), "minutes")) + "분")))) + " 후 마감"))

더 이상의 리펙토링은 notion 문법에 한계로 불가능 하다고 생각했습니다.

데이터베이스 레이아웃을 '보드'로 바꾸고, 만든 속성으로 분류를 하면 아래와 같은 결과물이 나왔습니다..!

문제는 레거시 속성들이 다 페이지화 되어 남아있는 문제가 있네요...

필터를 만져봤지만 아래의 제공된 내용으로는 잘 모르겠습니다.

다시 필터를 위한 속성을 만들어 봅시다...
D-day 개선하다가 만들고 잘 못쓴 속성이 있습니다.
(예전에 만든 속성이지만 이번에 쓰이네요)
"마감count" : 남은 일 수 를 나타내는 number

를 활용해서 아래와 같은 체크박스를 만듭니다(boolean이면 바로 체크박스가 뜨네요?)
지난 일이면 true, 안지났으면 false

이제 위 기준으로 필터를 겁니다.
(사진스킵)지난 테스크는 필터가 잘 되지만, 레거시 속성들은 그래도 남아있네요...

오 다시금 필터 기능을 살펴보니 비어있음/없음을 지원하네요

비거나 안비거나 하는 속성을 만들까 했는데... 그 방법은 틀린 것 같습니다.
존재하지 않는 과거 레거시 속성을 속성에서 카운팅할 방법을 모르겠네요...ㅠㅜ

필터는 아닌 것 같고 '보기'를 다시금 보니까 '빈 그룹 숨기기'가 있었네요

대박... ㅠㅜ 이제는 n일 후가 뜰 것이고 없는 '열'은 알아서 제외가 되겠어요!

최종 결과물입니다...

이제 task의 마감 날짜만 기입해두면 급한 일들을 알 수 있을 것 같습니다.
앞으로는 이거를 보면서 TODO를 만들 수 있게 기능을 만들어야겠네요

후기

노션은 진짜 좋다. 이유는 컴퓨팅적 사고가 있으면 무한대로 커스텀,확장이 가능한 것 같아서다.
요즘 코딩을 많이 못해서 코테문제라도 풀며 해소할까 했는데 노션을 커스텀하면서 너무 충족되었다.
생각해보니 그냥 캘린더를 보면 되는건가...?

profile
공리주의 개발자

0개의 댓글