I'm trying to limit a user's ability to click the same trigger link multiple times, but having a hard time finding a value I can use as a condition.
I have a members table (accounts), a jobs table of volunteering opportunities and a table for Jobs-Volunteers to hold a list what members volunteered to do each job. I have a link on the jobs page that triggers a new record to be added to the Jobs-Volunteers table when a member wants to volunteer to complete a job. My challenge is in figuring out how to prevent a member from clicking the link more than once.
I thought I'd be able to create a text formula field in Jobs-Volunteers that combines the job with the account number and enforces uniqueness. But since both Job and Volunteer fields have a many-to-many relationship, with their corresponding tables, these values are not available to me in formulas.
So, how can I enable a user to click the "I'll do it" link one time and prevent additional clicks of the link by the same user from creating additional new records?
Yeah, I thought there was something I was missing from what you needed. Sorry about that. This is not possible with knack's native functions. You could get someone to do it with some custom code. Take this for what it's worth, but I personally have a tendency to try and create solutions to all problems that people might have with an app I'm building. While a few people might accidentally sign up for the same job more than once, it wouldn't be the norm. Unless you have 100's and 100's of open opportunities at any given time, then the solution to this issue might be easier to do manually with setting up reports of the job and that show the count of the volunteer name object. You would set this up to only show ones that are more than one. That could be added to a dashboard page which would be seen every time the person who monitors the system logs in.
Thanks Bill. I think the solution you are describing would ensure that the link doesn’t appear when the count of volunteers matches the need, but I’m trying to prevent a single volunteer from using the link multiple times, to avoid having all the slots available being fulfilled by one user. I have successfully constrained the link from appearing when the count is met, but I also want to constraint each user to filling only a single spot.
If I'm understanding what you want then this should be doable. You'll most likely need a new object that has a "application" or whatever you want to call it for each volunteer and job. This will create a record that can then be counted so you'll know how many volunteers are signed up for each job. This would be one to many relationship. The connection would need to go to the accounts and to the job posting object.
After that 3 fields are needed:
1) On the job posting you'd make a yes/no field called "Job Full".
2) Create a count field that counts the number of applications for each job.
3) You'd also have a number field called "Number of volunteers needed for this job".
Then in the Job Full field you would add conditional rules that move it to yes when the count field is equal to the needed volunteers field. After you have this yes/no then you can set your view rules in the pages to only show records (or the signup field/action link) that are noted as job full = no.
This is all assuming that I understand what you're asking. If not then feel free to send me a message.
Thanks Bill. That would work if there was only one volunteer per job posting. However, some jobs require more than one volunteer. So, I do want the link to continue to show if the number of needed volunteers has not been met, but I don't want the link to be active for an individual once they've volunteered.
My initial expectation was that I would be able to make a table (JOB-Volunteers) that would hold the relationship, and that, by making a key field that concatenates the job number and volunteer, I'd be able to force uniqueness in that field, but these capabilities don't seem to exist.
I would try using an action link that added the record and change a field in the original object from yes to no. This could be something like "show link?". Then you can add a view rule on the action link field that if they show link field is no then to hide the value. Then the action link would only be there if they haven't already added the record.