노드별로, 유저롤(권한)별로 컨텐츠 제출 갯수를 제한한다. Node Limit 모듈.

노드별로, 유저롤(권한)별로 컨텐츠 제출 갯수를 제한한다. Node Limits 모듈.
http://drupal.org/project/node_limit

특정 기간동안 정해진 인원수만큼을 웹으로 신청접수받는
세미나 등록 시스템을 만들고자 한다.

요건을 가볍게 써 본다면,

1. 관리자가 복수의 세미나를 손쉽게 신규등록/편집/삭제할 수 있어야 한다.
특별히 인원수와 접수마감일의 설정이 가능해야 한다.
2. 세미나 참가 희망자들은 세미나 참가신청을 웹으로 접수하되,
인원 및 기간 제한이 있어 이를 넘길 경우, 신청접수가 불가능하다.
3. 세미나 참가 희망자들이 입력한 참가신청 정보를 메일로 확인 송신.
본 확인메일을 관리자가 손쉽게 포맷/문구 변경할 수 있어야 한다.
물론 관리자에게도 비슷한 내용을 메일로 보내주어야 한다.
4. 관리자는 접수마감일 전후로 CSV나 TSV의 형태로 세미나 참가신청자
목록을 엑셀에서 확인하게 된다. 그러므로 Export 기능이 필요하다.

기능명세를 가볍게 써 본다면,

1. 관리자 기능
- 세미나 정보의 신규등록/편집/삭제.
(한 명이라도 이미 세미나 참가신청 중이라면, 편집 및 삭제는 불가 또는 경고안내)
(운영 요령: 기존 세미나 정보를 편집하는 경우에는 메일로 기존 참가신청자에게 통지)
(운영 요령: 기존 참가신청자에게 양해를 구하고 신청해제 후 세미나를 삭제)
- 참가신청 폼의 각종 항목 추가/편집/삭제/순서조정 등의 기능.
- 참가포기 폼의 각종 항목 추가/편집/삭제/순서조정 등의 기능. 특히 포기 이유 항목을 설정.
- 세미나 참가인원 및 접수마감일의 설정 기능.
- 세미나 정보의 목록 표시 기능.
- 세미나 참가자 목록을 CSV 또는 TSV로 Export하는 기능.
- 각 세미나에 대해 메일 안내문구를 개별 수정하는 기능.

2. 이용자 기능
- 참가신청 폼: 유저의 정보 입력을 저장하고 관리자 및 이용자에게 메일 전송.
- 참가포기 폼: 유저의 정보 입력을 저장하고 관리자 및 이용자에게 메일 전송.
- 세미나 참가인원 및 접수마감일의 체크 기능. 폼 입력 전에 사전 안내가 필요.

참고) 비슷한데 5.x대 드루팔만 지원하는 모듈은 아래와 같다.
http://drupal.org/project/node_limitnumber

No votes yet

댓글

문제가 있다. 이

문제가 있다. 이 모듈은 노드(컨텐츠 타입)별/유저별로 제한을 가하므로,
컨텐츠 타입의 한 노드에 대한 폼접수가 제한을 가지는 경우라면 이야기가 다르다.

예를 들어 관리자가 세미나 SSSS라는 컨텐츠 타입을 만들고(제한은 10개),
관리자가 하나의 SSSS정보를 등록한다. 이때 이미 컨텐츠 타입의 제한 갯수에 의해
세미나를 10개밖에 못만드는 것이다. 이는 목적이 틀렸다. 우리는 세미나 응모접수 갯수를 10개로 제한하려는 것이다.

또한 세미나 응모접수라는 AAAA 컨텐츠 타입을 만들고(정원은 10명),
10명의 응모가 끝나기를 기다리면 되지만, 문제는 AAAA컨텐츠 타입의 갯수 제한이
세미나의 종류에 따라 다르다는 것이다. SSSS1은 10명이 정원, SSSS2는 20명이 정원이라면 어떻게 해야하는가.

고민해 볼 문제이다. 분명 다른 방법이 있을 것이다.

자문자답이다. 여러

자문자답이다. 여러 기능을 만족하기 위해서 결국 세미나 정보 컨텐츠 타입과,
응모자들의 지원 정보를 연결하는 "별도 모듈"을 만들어 대응키로 했다.
이에 따른 해당 모듈의 Form 에 필요한 사전/사후 기능을 기록해 본다.
* 사전 처리 : 1. 모집정원의 초과여부 체크, 2. 마감일 체크
* 사후 처리 : 1. 각종 Validation, 2. 컨텐츠 저장, 3. 응모자와 세미나 운영자에게 메일 통지.