[nodebb-plugin-calendar] Fully featured calendar plugin for NodeBB - Testers needed
-
@PitaJ said in [nodebb-plugin-calendar] Fully featured calendar plugin for NodeBB - Testers needed:
hat's why I'm focusing on smaller issues at the moment.
Have you tested the latest version? I'd like to know if email notifications are working.I didn't tested the email notification yet. I'll do and let you know
-
@PitaJ I'm still having an issue with your plugin, I keep having the restart required on the dashboard.
I also have issue with the master branch, giving an error - The following plugins may not be compatible with your version of NodeBB. nodebb-plugin-composer-default.
Everytime I restart. nodebb stop running, I have to delete the items that was created by "custom static pages - plugin", before I can start using the terminal.
I switched back to branch 1.2.1
-
@evoixmr well the restart required bug is annoying but not really too much of an issue. Regardless, I've identified the issue and I will fix it.
The custom pages thing looks like a real problem, you should probably submit an issue on the repository for it.
-
New version. Please update to
[email protected]
if you're willing to run the master branch.npm install nodebb-plugin-calendar@latest
Changes:
- Fix "restart required" always showing when plugin is activated
- Improve internationalization
- Edit
invalid
events by hitting the button in the composer
-
@azeus great! If you have any recommendations for improving the email format, let me know.
Also, do you mind describing your use case for limiting the number of attending users? I'm not sure what the purpose is, and knowing that would help me figure out how to best implement it.
-
@PitaJ said in [nodebb-plugin-calendar] Fully featured calendar plugin for NodeBB - Testers needed:
and knowing that would help me figure out how to best implement it.
Sure, actually it's a key feature for us. Our users organise photo events and they like to limit the number of attendees depending of the event. For example, I want to organise an event which is a photo shooting in a photo studio, the max number allowed in the studio is 6 people. I wan't to put 6 as max. So the first 6 users that will subscribe to the event will have the right to participate... The other will maybe subscribe to a waiting list, in case one of the 6 confirmed cancel his participation.
At the moment we need to handle manually the max number. Not sur if I'm clear enough ?
-
@azeus okay. That's what I thought: first come first serve.
Now I just have to figure out how to best add this. I'm thinking maybe changing the response system in a "maximum attendees" event to something like this:
N
is max # of attendees- If less than
N
people have signed up, it shows two buttons:
[ + Reservation ] and [ No ] - After
N
people reserve a spot, the reservation button changes to:
[ + Waiting List ]
I think this will work best because "maybe" doesn't really make sense as a response in this case. What do you think?
-
Hi @PitaJ what about that?
N is max # of attendees
Case 1:
If less than N people have signed up, it shows 3 buttons: [ Yes ], [ No ], [Maybe]
• [ Yes ] goes to reservation list. First in first serve.
• [ No ] goes to the "No lis" for information only. Out of the purpose.
• [Maybe] goes to the “Maybe list”. First in first serve.Case 2:
If N people have signed up, it shows 3 buttons: [ +Waiting List ], [ No ], [Maybe]
• [ +Waiting List ] goes to the “waiting list”. First in first serve.
• [ No ] goes to the "No lis" for information only. Out of the purpose.
• [Maybe] goes to the “Maybe list”. First in first serve.Case 3:
If a confirmed attendee cancels his participation ( He clicks on [ No ]:
• The first one in the “Waiting List” will take the place. So, he goes to the “reservation list” and he is removed from the “Waiting list”Case 4:
Nothing happen to the “Maybe list”, unless someone changes his mind and decide to click on:
• [ No ] > despairs from the “Maybe list” and goes to “No list”
• [ Yes ] > (if available) > goes to "reservation list". First in first serve.
• [ +Waiting List ] (if [Yes] is not available) > goes to the “waiting list”. First in first serve. -
@azeus okay so we thought up similar things. The only real difference is that you keep the maybe option.
I don't really think the maybe option makes sense when there's a limited number of slots for a certain event.
Does a person who responds with maybe get put on the reservation list or on the waiting list, assuming there are open slots? Does a person who responds maybe before another person responds yes get priority in the waiting list, or do people who respond with yes get priority over all maybes in the waiting list?
When you're just gauging attention or counting RSVPs, a response of yes, maybe, or no makes sense. But if you're providing a first come first serve opportunity, maybe doesn't make sense, in my opinion.
I'm open to having the third option but as of now I'm not convinced.
-
@PitaJ said in [nodebb-plugin-calendar] Fully featured calendar plugin for NodeBB - Testers needed:
Does a person who responds with maybe get put on the reservation list or on the waiting list, assuming there are open slots?
He's put on the "Maybe list" which is different from "Reservation list" and "Waiting list'. Actually there are 3 lists.
Does a person who responds maybe before another person responds yes get priority in the waiting list, or do people who respond with yes get priority over all maybes in the waiting list?
"Yes" (or reservation list) is the priority, and it's an automated action, when a sol is available the fits one in the "Waiting list" takes the place. The people in the "maybe list" stays in the 'maybe' list until they change their mind.
When you're just gauging attention or counting RSVPs, a response of yes, maybe, or no makes sense. But if you're providing a first come first serve opportunity, maybe doesn't make sense, in my opinion.
I'm open to having the third option but as of now I'm not convinced.
Your first proposal with only 2 options is fine for us What we proposed is our nice to have, that fits 100% our need.
Actually the whole idea about keeping the "Maybe", is that we know that our users don't know their planning in advance, and we are publishing our events mounts before the D date... Most of our users didn't confirm directly because they don't know if they are available... So if we have only 2 options "Yes" and "No", we think that most of them will click "No" or just does nothing... And then they will forget about the whole thing and never come back ^^ With the 'maybe' option, they keep event notifications and they keep tracking ....
-
Actually the whole idea about keeping the "Maybe", is that we know that our users don't know their planning in advance, and we are publishing our events mounts before the D date... Most of our users didn't confirm directly because they don't know if they are available... So if we have only 2 options "Yes" and "No", we think that most of them will click "No" or just does nothing... And then they will forget about the whole thing and never come back ^^ With the 'maybe' option, they keep event notifications and they keep tracking ....
So maybe doesn't really serve any purpose besides a way for users to be reminded of the event before it starts? Hmmm. Well at the moment, Maybe doesn't get any notifications except when the event starts. Perhaps change the three buttons to:
[ + Reservation ] [ Remind me ] [ No ]
And then when all reservations are full:
[ + Waiting list ] [ Remind me ] [ No ]
-
@PitaJ said in [nodebb-plugin-calendar] Fully featured calendar plugin for NodeBB - Testers needed:
Perhaps change the three buttons to:[ + Reservation ] [ Remind me ] [ No ]
And then when all reservations are full:
[ + Waiting list ] [ Remind me ] [ No ]
Definitely yes, that makes sens and it's a simpler solution Go for that ^^
-
@PitaJ
Hello, Nodebb v1.3.0 is out, are we safe to go there with Calendar v0.13?Well already moved to 1.3.0, it's maybe not yet the version needed for Calendar 0.13 ?
$ git rev-parse HEAD
4db89407c4dbe9850d925bd9529a1d106419531fNodeBB is rebooting with error messages:
{"level":"error","message":"TypeError: Cannot read property 'pid' of null\n at pluginSockets.calendar.canPostEvent /async.js:746:34)\n at /var/www/regards.photo/node_modules/async/lib/async.js:1213:16\n at /var/www/regards.pho to/node_modules/async/lib/async.js:1206:34)\n at processImmediate [as _immediateCallback] (timers.js:383:17)","tim estamp":"2016-11-14T14:11:35.472Z"} TypeError: Cannot read property 'pid' of null at pluginSockets.calendar.canPostEvent (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/src/lib/socket s.js:33:83) at async.waterfall.err.message (/var/www/regards.photo/src/socket.io/index.js:117:5) at fn (/var/www/regards.photo/node_modules/async/lib/async.js:746:34) at /var/www/regards.photo/node_modules/async/lib/async.js:1213:16 at /var/www/regards.photo/node_modules/async/lib/async.js:166:37 at /var/www/regards.photo/node_modules/async/lib/async.js:706:43 at /var/www/regards.photo/node_modules/async/lib/async.js:167:37 at Immediate._onImmediate (/var/www/regards.photo/node_modules/async/lib/async.js:1206:34) at processImmediate [as _immediateCallback] (timers.js:383:17) {"level":"info","message":"[app] Shutdown (SIGTERM/SIGINT) Initialised.","timestamp":"2016-11-14T14:11:35.473Z"} {"level":"info","message":"[app] Database connection closed.","timestamp":"2016-11-14T14:11:35.476Z"} {"level":"info","message":"[app] Web server closed to connections.","timestamp":"2016-11-14T14:11:35.477Z"} {"level":"info","message":"[app] Shutdown complete.","timestamp":"2016-11-14T14:11:35.477Z"} [cluster] Child Process (1823) has exited (code: 1, signal: null) [cluster] Spinning up another process... {"level":"info","message":"Time: Mon Nov 14 2016 15:11:36 GMT+0100 (CET)","timestamp":"2016-11-14T14:11:36.005Z"}
we have deactivated the plugin as a workaround ^^
-
@azeus v1.3.0 should be fine for Calendar alpha.13
I know what causes that error to occur but I don't know what the origin of that error is. As far as I can tell, it's caused by somebody's computer being slow and not finishing a rendering cycle before the delay I put in finishes. I've put in a safeguard so at least it won't crash from now on.
-
New version. Please update to
[email protected]
.
This version requires NodeBB v1.3.0.npm install nodebb-plugin-calendar@latest
Changes:
- Improve event popup on calendar page
- Show events starting before and ending after month in calendar view
-
@PitaJ said in [nodebb-plugin-calendar] Fully featured calendar plugin for NodeBB - Testers needed:
npm install nodebb-plugin-calendar@latest
Tks but it's still rebooting ...
{"level":"error","message":"TypeError: Cannot read property 'pid' of undefined\n at /var/www/regards.photo/src/posts/create.js:63:36\n at fn (/var/www/regards.photo/node_modules/async/lib/async.js:746:34)\n at /var/www/regards.photo/node_modules/async/lib/async.js:1213:16\n at /var/www/regards.photo/node_modules/async/lib/async.js:166:37\n at /var/www/regards.photo/node_modules/async/lib/async.js:706:43\n at /var/www/regards.photo/node_modules/async/lib/async.js:167:37\n at /var/www/regards.photo/node_modules/async/lib/async.js:1209:30\n at /var/www/regards.photo/src/plugins/hooks.js:120:4\n at /var/www/regards.photo/node_modules/async/lib/async.js:380:13\n at /var/www/regards.photo/node_modules/async/lib/async.js:52:16\n at /var/www/regards.photo/node_modules/async/lib/async.js:269:32\n at /var/www/regards.photo/node_modules/async/lib/async.js:44:16\n at /var/www/regards.photo/node_modules/async/lib/async.js:377:17\n at tryCatcher (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/util.js:16:23)\n at Promise.successAdapter [as _fulfillmentHandler0] (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/nodeify.js:23:30)\n at Promise._settlePromise (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/promise.js:564:21)\n at Promise._settlePromise0 (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/promise.js:612:10)\n at Promise._settlePromises (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/promise.js:691:18)\n at Async._drainQueue (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/async.js:138:16)\n at Async._drainQueues (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/async.js:148:10)\n at Immediate.Async.drainQueues [as _onImmediate] (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/async.js:17:14)\n at processImmediate [as _immediateCallback] (timers.js:383:17)","timestamp":"2016-11-14T23:57:50.288Z"}
TypeError: Cannot read property 'pid' of undefined
at /var/www/regards.photo/src/posts/create.js:63:36
at fn (/var/www/regards.photo/node_modules/async/lib/async.js:746:34)
at /var/www/regards.photo/node_modules/async/lib/async.js:1213:16
at /var/www/regards.photo/node_modules/async/lib/async.js:166:37
at /var/www/regards.photo/node_modules/async/lib/async.js:706:43
at /var/www/regards.photo/node_modules/async/lib/async.js:167:37
at /var/www/regards.photo/node_modules/async/lib/async.js:1209:30
at /var/www/regards.photo/src/plugins/hooks.js:120:4
at /var/www/regards.photo/node_modules/async/lib/async.js:380:13
at /var/www/regards.photo/node_modules/async/lib/async.js:52:16
at /var/www/regards.photo/node_modules/async/lib/async.js:269:32
at /var/www/regards.photo/node_modules/async/lib/async.js:44:16
at /var/www/regards.photo/node_modules/async/lib/async.js:377:17
at tryCatcher (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/util.js:16:23)
at Promise.successAdapter [as _fulfillmentHandler0] (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/nodeify.js:23:30)
at Promise._settlePromise (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/promise.js:564:21)
at Promise._settlePromise0 (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/promise.js:612:10)
at Promise._settlePromises (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/promise.js:691:18)
at Async._drainQueue (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/async.js:138:16)
at Async._drainQueues (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/async.js:148:10)
at Immediate.Async.drainQueues [as _onImmediate] (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/async.js:17:14)
at processImmediate [as _immediateCallback] (timers.js:383:17)
{"level":"info","message":"[app] Shutdown (SIGTERM/SIGINT) Initialised.","timestamp":"2016-11-14T23:57:50.292Z"}
{"level":"info","message":"[app] Database connection closed.","timestamp":"2016-11-14T23:57:50.294Z"}
{"level":"info","message":"[app] Web server closed to connections.","timestamp":"2016-11-14T23:57:50.294Z"}
{"level":"info","message":"[app] Shutdown complete.","timestamp":"2016-11-14T23:57:50.295Z"}
[cluster] Child Process (5013) has exited (code: 1, signal: null)
[cluster] Spinning up another process...
{"level":"info","message":"Time: Tue Nov 15 2016 00:57:50 GMT+0100 (CET)","timestamp":"2016-11-14T23:57:50.845Z"}
{"level":"info","message":"Initializing NodeBB v1.3.0","timestamp":"2016-11-14T23:57:50.848Z"}
{"level":"info","message":"[database] Checking database indices.","timestamp":"2016-11-14T23:57:51.218Z"}
{"level":"info","message":"[database] Checking database indices done!","timestamp":"2016-11-14T23:57:51.243Z"}
{"level":"info","message":"initializing NodeBB ...","timestamp":"2016-11-14T23:57:52.346Z"}
{"level":"warn","message":"[plugins/nodebb-plugin-poll] Hookfilter:post.save
is deprecated, please usefilter:post.create
instead.","timestamp":"2016-11-14T23:57:52.620Z"}
Notifier Daemon initialized with
interval of 300 seconds
{"level":"info","message":"Routes added","timestamp":"2016-11-14T23:57:53.603Z"}
{"level":"info","message":"NodeBB Ready","timestamp":"2016-11-14T23:58:06.651Z"}
{"level":"info","message":"Enabling 'trust proxy'","timestamp":"2016-11-14T23:58:06.658Z"}
{"level":"info","message":"NodeBB is now listening on: 0.0.0.0:8080","timestamp":"2016-11-14T23:58:06.663Z"}
{"level":"error","message":"TypeError: Cannot read property 'pid' of undefined\n at /var/www/regards.photo/src/posts/create.js:63:36\n at fn (/var/www/regards.photo/node_modules/async/lib/async.js:746:34)\n at /var/www/regards.photo/node_modules/async/lib/async.js:1213:16\n at /var/www/regards.photo/node_modules/async/lib/async.js:166:37\n at /var/www/regards.photo/node_modules/async/lib/async.js:706:43\n at /var/www/regards.photo/node_modules/async/lib/async.js:167:37\n at /var/www/regards.photo/node_modules/async/lib/async.js:1209:30\n at /var/www/regards.photo/src/plugins/hooks.js:120:4\n at /var/www/regards.photo/node_modules/async/lib/async.js:380:13\n at /var/www/regards.photo/node_modules/async/lib/async.js:52:16\n at /var/www/regards.photo/node_modules/async/lib/async.js:269:32\n at /var/www/regards.photo/node_modules/async/lib/async.js:44:16\n at /var/www/regards.photo/node_modules/async/lib/async.js:377:17\n at tryCatcher (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/util.js:16:23)\n at Promise.successAdapter [as _fulfillmentHandler0] (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/nodeify.js:23:30)\n at Promise._settlePromise (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/promise.js:564:21)\n at Promise._settlePromise0 (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/promise.js:612:10)\n at Promise._settlePromises (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/promise.js:691:18)\n at Async._drainQueue (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/async.js:138:16)\n at Async._drainQueues (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/async.js:148:10)\n at Immediate.Async.drainQueues [as _onImmediate] (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/async.js:17:14)\n at processImmediate [as _immediateCallback] (timers.js:383:17)","timestamp":"2016-11-14T23:58:10.894Z"}
TypeError: Cannot read property 'pid' of undefined
at /var/www/regards.photo/src/posts/create.js:63:36
at fn (/var/www/regards.photo/node_modules/async/lib/async.js:746:34)
at /var/www/regards.photo/node_modules/async/lib/async.js:1213:16
at /var/www/regards.photo/node_modules/async/lib/async.js:166:37
at /var/www/regards.photo/node_modules/async/lib/async.js:706:43
at /var/www/regards.photo/node_modules/async/lib/async.js:167:37
at /var/www/regards.photo/node_modules/async/lib/async.js:1209:30
at /var/www/regards.photo/src/plugins/hooks.js:120:4
at /var/www/regards.photo/node_modules/async/lib/async.js:380:13
at /var/www/regards.photo/node_modules/async/lib/async.js:52:16
at /var/www/regards.photo/node_modules/async/lib/async.js:269:32
at /var/www/regards.photo/node_modules/async/lib/async.js:44:16
at /var/www/regards.photo/node_modules/async/lib/async.js:377:17
at tryCatcher (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/util.js:16:23)
at Promise.successAdapter [as _fulfillmentHandler0] (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/nodeify.js:23:30)
at Promise._settlePromise (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/promise.js:564:21)
at Promise._settlePromise0 (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/promise.js:612:10)
at Promise._settlePromises (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/promise.js:691:18)
at Async._drainQueue (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/async.js:138:16)
at Async._drainQueues (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/async.js:148:10)
at Immediate.Async.drainQueues [as _onImmediate] (/var/www/regards.photo/node_modules/nodebb-plugin-calendar/node_modules/bluebird/js/release/async.js:17:14)
at processImmediate [as _immediateCallback] (timers.js:383:17)
{"level":"info","message":"[app] Shutdown (SIGTERM/SIGINT) Initialised.","timestamp":"2016-11-14T23:58:10.897Z"}
{"level":"info","message":"[app] Database connection closed.","timestamp":"2016-11-14T23:58:10.898Z"}
{"level":"info","message":"[app] Web server closed to connections.","timestamp":"2016-11-14T23:58:10.899Z"}
{"level":"info","message":"[app] Shutdown complete.","timestamp":"2016-11-14T23:58:10.899Z"}
[cluster] Child Process (5062) has exited (code: 1, signal: null) -
New version. Please update to
[email protected]
.
This version requires NodeBB v1.3.0.npm install nodebb-plugin-calendar@latest
Changes:
- Fixed NodeBB crashing when no event was posted
Edit: Also, figured I'd let everyone know that I'm making good progress on implementing repeating events. All that's really left is reminders for repeating events, some other forms of custom repetition, and responses for repeated events.