Become the new maintainer of the Events Plugin

<%= @topic_view.topic.title %>
<%= @topic_view.topic.average_rating %> <%= @topic_view.topic.posts.count { |p| !!p.custom_fields['rating'] } %>

@fzngagan One thing we should do relatively soon is update the first post of the Events Topic on meta with an “Events” version of this template.

If you could take the template and post an Events version of it here, we can review before we post on meta.

The first post of this topic is a wiki so you to get the actual markup, edit the post and copy the composer contents. The main thing you’ll need to update is the plugin description.

I know you just started looking at the plugin, but I think it’ll be good for you to try and summarise what the plugin does, as it’ll help you think through the plugin from a ‘global’ perspective.

The goal here is to make a shorter, more accessible summary of the plugin than what is currently in the first post on the meta topic. That’s too long and detailed for most people.

Also, if you can find examples of the events plugin being used out “in the wild” that’d be great. @tobiaseigen may be able to help you out with one example.

1 Like

This plugin allows you to manage events with Discourse.

Features

  • When enabled for a category, all the event topics will be displayed in an earliest first fashion.

  • Adds an ‘Add Date and Time’ button to the post editor when composing a new topic in that category which helps you choose the starting point and ending point of an event(both date and time).

    add-date-time

  • Adds a navigation menu item “Agenda” which displays a list of the topics in the earliest occurring event first fashion.

  • Features a calendar, which will show all the events on their dates. The calendar is also available as a nav item for the categories it is enabled.

  • Allows you to add the events to Google calendar. To use this feature, enable the setting events add to calendar from the settings.

  • Allows multiple formatting options for displaying dates and times.

  • Shows events timings according to the user’s locale.

Integrations

  • If you want to use this plugin for managing events at physical locations, use the Locations plugin alongside this plugin.

Notes

Admin Settings

  • events add to calendar: This toggles the ‘Add to Calendar’ button next to the event details in the topic.

  • events_event_label_icon: Allows you to set the class of the event label icon

  • events_event_label_format: Allows you to set the moment.js format of the datetime in the event label.

  • events_event_label_short_format: Allows you to set the moment.js format of the datetime in the short event label in the topic list

Developer Notes

  • Datetimes are stored as Unix timestamps (i.e seconds since epoch). This makes it easy to order the topics using the existing topic list filter structure.

  • Time conversion and formatting on the client is handled by moment.js; see e.g. the eventLabel helper. Should probably add settings that allow the time format to be changed.

  • Time selection dropdown is handled by the jquery-timepicker plugin. Probably could be replaced by a native solution in the future. And the increment period of the times in the dropdown should be a setting.

  • As raised re the similar button in the Locations Plugin, adding a button to the composer is perhaps not ideal. Trying to think of a better solution for this.


Want to know what’s currently being worked on? Check out agenda

Not sure how to install a plugin? Follow the steps here.

GitHub-Mark-32px Get the code

:raising_hand_woman: Request a feature

sandbox See an example

:bug: Report a bug

:heart: Donate to development

:man_technologist: Maintainers: @angus , @fzngagan


Examples in the Wild :seedling:

Want to add your site as an example? Message a maintainer ↑

Hey, @tobiaseigen,

Can you give me URLs of some sites using the events plugin?

Hi @fzngagan great you are taking this on. :rocket:

The main community I use the events plugin for is https://community.namati.org - you are welcome to join there.

Here’s a topic about a recent event we organized - it was a face to face “meet and greet” event. You will note we enabled rsvp but it doesn’t seem to be working right.

We also organize online events (eg webinars), using GoToWebinar to manage the registration process. GoToWebinar provides a registration form, lets people add the event to their calendars, and provides follow-up emails immediately after registering, a week ahead, a day ahead, and an hour ahead. It works pretty well for us but it would be nice to be able to use the topic instead so the registration process is all kept in one place in discourse. (Also GoToWebinar is not the best citizen: GoToWebinar issue - registration form excludes many countries including Tanzania - Feedback - Global Legal Empowerment Network Community Discussions)

2 Likes

That looks cool. Thanks.

1 Like

Great start on the description :+1:

Let’s boil it down further though. Let’s do something like this:

// Decribe the core functionality of the plugin in a couple of sentences.

// Create different ‘details’ sections (i.e. hidden with the [/details] feature) describing different aspects of the plugin, e.g. [Formatting (i.e. time and timezone formatting)]; [Lists (i.e. agenda and calendar)]; [RSVP]; [Integrations].

2 Likes

@angus, I’ll be working on this today. I’m sorry for falling behind on this. I got caughtup with the review issue.

1 Like

No worries :+1:. Let me know if you get stuck.

1 Like

@fzngagan How we going with this one as well? I’d like to get this updated on meta soon.

1 Like

I’m surely gonna catch up on it and it’ll be ready this week.

1 Like

This plugin allows you to add and manage events with Discourse.

  • Add an event to a topic.

  • Features Agenda view, Calendar view, RSVP, timezone support and much more.

  • Events can be enabled sitewide(i.e. for all the categories) or for specific categories.

GitHub-Mark-32px Get the code

:raising_hand_woman: Request a feature

sandbox See an example

:bug: Report a bug

:heart: Donate to development

:man_technologist: Maintainers: @angus , @fzngagan

Setup

Not sure how to install a plugin? Follow the steps here.

Features

Agenda and Calendar
  • The plugin allows two ways of listing the events, Agenda view and Calendar view.
  • These views can be enabled for all the categories using site settings, or for specific categories using the category settings.
  • The agenda view displays the events in chronological order from earliest to latest occuring event.
  • The calendar view displays a calendar and marks the events on it.
  • You can optionally remove the past events from agenda and calendar by changing the site settings events remove past from agenda and events remove past from calendar.
RSVP
  • User can mark himself as Going to the event.
  • The event post has a list of people who have marked themselves as Going to attend the event.
  • The site setting for this feature is events rsvp.
Locations Plugin Integration
  • The plugin offers integration with Locations plugin.
  • The user can set a location for the event, which will be marked on the map.
  • There is a setting to remove the past events from the map called events remove past from map.
Time and Timezone Formatting
  • Datetimes are stored as Unix timestamps (i.e seconds since epoch). This makes it easy to order the topics using the existing topic list filter structure.
  • Time conversion and formatting on the client is handled by moment.js; see e.g. the eventLabel helper. Should probably add settings that allow the time format to be changed.
  • Time selection dropdown is handled by the jquery-timepicker plugin. Probably could be replaced by a native solution in the future. And the increment period of the times in the dropdown should be a setting.
iCal Feed

Want to know what’s currently being worked on? Check out agenda

Examples in the Wild :seedling:

Want to add your site as an example? Message a maintainer ↑

@angus. I’m working on the plugin description now. I’m following the format we discussed earlier.

I’ve got an idea. I think we should give credit to non-pavilion contributors for features that they built in the plugin description. What do you think?

1 Like

@fzngagan Yes, I think that’s a great idea. Add that in and I’ll review it along with the rest of the description when you’re ready.

1 Like

Yeah. So, We’re all set. I’m updating the description to this plugin on meta now.