Skip to content

Add online meetings#6572

Merged
ivan-mr merged 26 commits intodevelopfrom
enhance_meetings_form
Oct 14, 2020
Merged

Add online meetings#6572
ivan-mr merged 26 commits intodevelopfrom
enhance_meetings_form

Conversation

@anaghavl
Copy link
Copy Markdown
Contributor

@anaghavl anaghavl commented Sep 30, 2020

🎩 What? Why?

 
This PR adds a meetings component option to enable the creation of online meetings. Online meetings have an extra field to add the URL of the conference room.

Now in person meetings will have:

  • All the original fields

Online meetings will have:

  • All the original fields + the conference room link
  • The location and address fields are also hidden, since they don't make sense for online meetings

Note that this PR only allows useres to add a link to a conference. Upcoming PRs will improve this feature following other MetaDecidim proposals.

TODO:

  • Add component config to allow online meetings
  • Add online_meeting_urlfield to the meetings table
  • Add field in the form
  • Only show online_meeting_url if meeting_type is online.
  • Only show address and location if meeting_type is in_person.
  • Only show meeting_type and online_meeting_url in form if component setting is active
  • In the meeting page and card: Show online_meeting_url instead of address and location if meeting_type is online
  • Add system specs ensuring fields are hidden

📌 Related Issues

Testing

Yet to add tests

📷 Screenshots

Meetings page: Online meeting with external link:
image

Meetings index:
image

♥️ Thank you!

@andreslucena andreslucena marked this pull request as draft October 1, 2020 07:09
@andreslucena
Copy link
Copy Markdown
Member

Hi @anaghavl
I've converted the PR to a draft as it's still a WIP, feel free to change it whenever you think is ready to review.
Could you please fix the formating in your PR description 🙏?
Also, could you link to MetaDecidim proposal? I'm 95% sure that I've seen it a couple of days ago... Thanks!

@andreslucena
Copy link
Copy Markdown
Member

Also, I think that it'd be better to have it separated as this seems to be lots of meetings proposals at the same time:

  • Add a "Terms and conditions URL for meeting creators
  • In-person / online meetings
  • Registrations disabled
    etc
    If not it'd be really difficult (and slow!) to review all of this. Thanks again!

@alecslupu
Copy link
Copy Markdown
Contributor

Hi @anaghavl
I've converted the PR to a draft as it's still a WIP, feel free to change it whenever you think is ready to review.
Could you please fix the formating in your PR description pray?
Also, could you link to MetaDecidim proposal? I'm 95% sure that I've seen it a couple of days ago... Thanks!

https://meta.decidim.org/processes/roadmap/f/122/proposals/15636

@mrcasals mrcasals force-pushed the enhance_meetings_form branch 9 times, most recently from fbf476c to 0682602 Compare October 7, 2020 12:31
@mrcasals mrcasals changed the title [WIP] Enhance meetings form Add onlinemeetings Oct 7, 2020
@mrcasals mrcasals changed the title Add onlinemeetings Add online meetings Oct 7, 2020
@mrcasals
Copy link
Copy Markdown
Contributor

mrcasals commented Oct 7, 2020

@decidim/product this has been deployed to https://decidim-staging-pr-191.herokuapp.com/, can you review it please? We've changed the scope of the PR and updated the description accordingly 😄

@mrcasals
Copy link
Copy Markdown
Contributor

mrcasals commented Oct 9, 2020

@decidim/core I'm getting some failures that I can't reproduce locally, are those more random failures? :(

@andreslucena
Copy link
Copy Markdown
Member

@mrcasals a couple of comments:

  1. Is it really necessary to have the setting "Allow online meetings" in the component configuration?

  2. Can we mark the Address and Location with the (*) for making it clear that is required?
    image

  3. Can we change "Type of meeting" to "Type"? (As we already are in the "Create meeting" form isn't necessary)

  4. When selecting "Type of meeting" -> "Online" then I shouldn't see "Location hints". Can you remove it? If you think it's necessary to explain something else (as I'm seeing in your screenshot) then we should change the name and the help because now it isn't clear: Location hints: additional info. Example: the floor of the building)

image

  1. Please add validation to "Online meeting URL"; it should be an URL (regexp for starting with :

image

@mrcasals
Copy link
Copy Markdown
Contributor

mrcasals commented Oct 9, 2020

@andreslucena

1. Is it really necessary to have the setting "Allow online meetings" in the component configuration?

It's defined in https://meta.decidim.org/processes/roadmap/f/122/proposals/15636, that's why it's added.

2\. Can we mark the Address and Location with the (*) for making it clear that is required?

I'm afraid we can't, because those fields are optional if "Online" is selected in the "Type of meeting" dropdown.

3\. Can we change "Type of meeting" to "Type"? (As we already are in the "Create meeting" form isn't necessary)

Will do!

4\. When selecting "Type of meeting" -> "Online" then I shouldn't see "Location hints". Can you remove it?

It's specified in the MetaDecidim proposal (https://meta.decidim.org/processes/roadmap/f/122/proposals/15636), that's why it's there.

Please add validation to "Online meeting URL"; it should be an URL (regexp for starting with :

Will do!

@mrcasals
Copy link
Copy Markdown
Contributor

mrcasals commented Oct 9, 2020

@andreslucena @decidim/product can you check it out again, please? I had to deploy it to another URL, new one is https://decidim-staging-pr-196.herokuapp.com/

I fixed the text in the form, validated URLs and added a filter for online/in-person meetings!

@mrcasals mrcasals marked this pull request as ready for review October 9, 2020 16:01
@anaghavl anaghavl mentioned this pull request Oct 12, 2020
10 tasks
@andreslucena
Copy link
Copy Markdown
Member

  1. Is it really necessary to have the setting "Allow online meetings" in the component configuration?

It's defined in https://meta.decidim.org/processes/roadmap/f/122/proposals/15636, that's why it's added.

Let's remove this; I've talked with @carolromero and we want to have online meetings enabled by default in every type of meetings.

3. Can we change "Type of meeting" to "Type"? (As we already are in the "Create meeting" form isn't necessary)

Will do!

I've seen it. Please change it in the filters also:

imatge

4. When selecting "Type of meeting" -> "Online" then I shouldn't see "Location hints". Can you remove it?

It's specified in the MetaDecidim proposal (https://meta.decidim.org/processes/roadmap/f/122/proposals/15636), that's why it's there.

Ok, we now understand the use case. Thanks for the link. Please change the text to:

Location hints: additional info. Example: the floor of the building if it's an in-person meeting, or the meeting password if it's an online meeting with restricted access.

More details:

  1. Can you please add seeds?

  2. Globe icon

We made a quick user test and we think that the current icon is like a Rorschach Test: you don't know for sure what you're actually looking at the first time you see this:

imatge

It's clearer in the mockup from the Meta link:

imatge

Can we change it to that?

  1. GraphQL API

Have you added online_meeting_url field? I see the MeetingType but not this new field.

  1. Filters orders

It doesn't have the relevance that it should have, as it's difficult to find if there are lots of scopes/categories/etc:

imatge

Please change it to:

  1. Date
  2. Type
  3. Scope
    etc

@mrcasals
Copy link
Copy Markdown
Contributor

mrcasals commented Oct 13, 2020

@andreslucena

Let's remove this; I've talked with @carolromero and we want to have online meetings enabled by default in every type of meetings.

Remove it, or change the default value to true?

Globe icon

I used the one that's available from the pattern library: http://decidim-design.herokuapp.com/public/library/pattern-library#patternIcons The one you point out is not there. What about the link-intact or the cloud icons?

I'll do the rest, thanks!

Regarding the order of the filters, I put it at the end because that's what appears in the screenshot in Metadecidim.

@andreslucena
Copy link
Copy Markdown
Member

Remove it, or change the default value to true?

I meant to remove it.

I used the one that's available from the pattern library: http://decidim-design.herokuapp.com/public/library/pattern-library#patternIcons The one you point out is not there. What about the link-intact or the cloud icons?

Ok... I'll review this with @carolromero and tell you something later
(I don't have a good eye for design 🤦)

@mrcasals mrcasals force-pushed the enhance_meetings_form branch from d2722f4 to 1e60697 Compare October 13, 2020 12:36
@mrcasals
Copy link
Copy Markdown
Contributor

@andreslucena @decidim/product should be good to go now, except by the icon issue! Can you check it here, please?

https://decidim-staging-pr-200.herokuapp.com/

Copy link
Copy Markdown
Contributor

@ivan-mr ivan-mr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything seems quite well but could you do the two changes I comment please? Thanks!


class AddTypeOfMeeting < ActiveRecord::Migration[5.2]
def change
add_column :decidim_meetings_meetings, :type_of_meeting, :string, default: "in_person"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that @andreslucena said that they have decided to select online meetings by default. Then, it's better to configure it on the migration by default also. Could you change it, please? Thanks!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andreslucena said "we want to have online meetings enabled by default", but if he can confirm that it'd be cool 😄

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Andrés already said "I meant to remove it." here

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, to remove the configuration option, which is already removed.

Copy link
Copy Markdown
Contributor

@ivan-mr ivan-mr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job. Thanks!

@ivan-mr ivan-mr merged commit 269cf5f into develop Oct 14, 2020
@ivan-mr ivan-mr deleted the enhance_meetings_form branch October 14, 2020 11:53
verarojman pushed a commit to Platoniq/decidim that referenced this pull request Dec 21, 2020
* Add config to allow online meetings

* Add online_meeting_url fields to DB

* Add fields to forms and commands

* Use `data-` attributes instead of specific field names

* Remove unused locales

* Fix JS

* Fix locale

* Fix forms specs

* Fix specs

* Hide meeting type and online url fields if online meetings are not allowed

* Show online meeting URL

* Ensure fields are hidden

* Fix meeting form

* Fix tests

* Add `type_of`meeting` column to meetings

It stores whether the meeting is in-person or online

* Filter meetings by type

* Add missing i18n string

* Validate URLs

* Address feedback

* Fix i18n

* Remove config option

* test: select the type of meeting before filling in location

* Move URL details to cell

* Fix form

* Fix icon

* Fix edit form

Co-authored-by: Marc Riera Casals <mrc2407@gmail.com>
Co-authored-by: David Morcillo <david.morcillo@gmail.com>
microstudi pushed a commit to Platoniq/decidim that referenced this pull request Jan 12, 2021
* Add config to allow online meetings

* Add online_meeting_url fields to DB

* Add fields to forms and commands

* Use `data-` attributes instead of specific field names

* Remove unused locales

* Fix JS

* Fix locale

* Fix forms specs

* Fix specs

* Hide meeting type and online url fields if online meetings are not allowed

* Show online meeting URL

* Ensure fields are hidden

* Fix meeting form

* Fix tests

* Add `type_of`meeting` column to meetings

It stores whether the meeting is in-person or online

* Filter meetings by type

* Add missing i18n string

* Validate URLs

* Address feedback

* Fix i18n

* Remove config option

* test: select the type of meeting before filling in location

* Move URL details to cell

* Fix form

* Fix icon

* Fix edit form

Co-authored-by: Marc Riera Casals <mrc2407@gmail.com>
Co-authored-by: David Morcillo <david.morcillo@gmail.com>
# Conflicts:
#	decidim-meetings/app/commands/decidim/meetings/create_meeting.rb
microstudi added a commit to Platoniq/decidim that referenced this pull request Jan 12, 2021
* Add online meetings (decidim#6572)

* Add config to allow online meetings

* Add online_meeting_url fields to DB

* Add fields to forms and commands

* Use `data-` attributes instead of specific field names

* Remove unused locales

* Fix JS

* Fix locale

* Fix forms specs

* Fix specs

* Hide meeting type and online url fields if online meetings are not allowed

* Show online meeting URL

* Ensure fields are hidden

* Fix meeting form

* Fix tests

* Add `type_of`meeting` column to meetings

It stores whether the meeting is in-person or online

* Filter meetings by type

* Add missing i18n string

* Validate URLs

* Address feedback

* Fix i18n

* Remove config option

* test: select the type of meeting before filling in location

* Move URL details to cell

* Fix form

* Fix icon

* Fix edit form

Co-authored-by: Marc Riera Casals <mrc2407@gmail.com>
Co-authored-by: David Morcillo <david.morcillo@gmail.com>
# Conflicts:
#	decidim-meetings/app/commands/decidim/meetings/create_meeting.rb

* Add registration system (decidim#6662)

* Add config to allow online meetings

* Add online_meeting_url fields to DB

* Add fields to forms and commands

* Use `data-` attributes instead of specific field names

* Remove unused locales

* Fix JS

* Fix locale

* Fix forms specs

* Fix specs

* Hide meeting type and online url fields if online meetings are not allowed

* Show online meeting URL

* Ensure fields are hidden

* Fix meeting form

* Fix tests

* Add `type_of`meeting` column to meetings

It stores whether the meeting is in-person or online

* Filter meetings by type

* Add missing i18n string

* Validate URLs

* WIP added registration options to meetings form

* fixing specs and merging branch

* Fix en.yml file

* Add config to allow online meetings

* Add online_meeting_url fields to DB

* Add fields to forms and commands

* Use `data-` attributes instead of specific field names

* Remove unused locales

* Fix JS

* Fix locale

* Fix forms specs

* Fix specs

* Hide meeting type and online url fields if online meetings are not allowed

* Show online meeting URL

* Ensure fields are hidden

* Fix meeting form

* Fix tests

* Add `type_of`meeting` column to meetings

It stores whether the meeting is in-person or online

* Filter meetings by type

* Add missing i18n string

* Validate URLs

* Address feedback

* Fix i18n

* Remove config option

* fix failing specs

* test: select the type of meeting before filling in location

* remove extra stuff from conflicts

* fix example length lint error

* Resolving comments

* removing duplicate code

* remove trailing white space

* Changing migration file

* Remove component setting to allow external registration

* adding functionality to the registration button

* Add join meeting button for external registration for users

* Join meeting button fix

* fix failing specs

* fix the default error on form

* remove unwanted stuff

* Fix locale fail

* fix specs

* Merging develop and resolving conflicts

* Fix specs and lints

* refactor: use constants from model

* fix: only show default locale for registration terms in meeting form

Co-authored-by: Marc Riera Casals <mrc2407@gmail.com>
Co-authored-by: David Morcillo <david.morcillo@gmail.com>
Co-authored-by: Andrea Orler <andrea@codegram.com>
# Conflicts:
#	decidim-forms/app/views/decidim/forms/admin/questionnaires/edit.html.erb
#	decidim-meetings/app/presenters/decidim/meetings/meeting_presenter.rb

* feat: automatically enalble registrations when meeting on this platform (decidim#6874)

* Allow creation of hybrid meetings (decidim#6891)

* Add Hybrid meeting events

* Normalize translations

* Run Linters

* Fixing I18n Key error

* Fixing Failing test

* Running linters

* Running linters

* Add Geocoder setup for hybrid meetings

* Fix issue with filter defaults
# Conflicts:
#	decidim-meetings/app/models/decidim/meetings/meeting.rb
#	decidim-meetings/app/services/decidim/meetings/meeting_search.rb

* Feature/15596 embed jitsi meeting (#65)

* Stub embedded jitsi videoconference

* Add embedded jitsi videoconference component

* Improve toolbar items control

* Remove iframe when videoconference over

* Use user role for videoconference

* Don't show videoconference if visitors not allowed

* Fix erb

* Fix rubocop offenses

* Add button to start meeting

* Log meetings attendance

* Remove whitespace

* Add videoconference setttings templates and docs

* Display "Embedded videoconference" in meeting card

* Set jitsi domain and api_url in config

* Fix offenses

* Log attendance

* Make rubocop happy

* Show attendance logs in admin

* Add missing value in secrets template

* Remove whitespace

* Normalize locale

* Don't require custom jitsi variables

* Add spec for permissions

* Make embedded videoconference an additional option for meetings

* Refactor permissions for embedded_videoconference as boolean

* Update commands and form

* Fix initializer defining empty videoconferences hash

* Update meetings form

* Improve meeting public page

* Rename js component for videoconference

* Improve class comment for attendance log command

* Simplify cell

* Improve index for logs

* Simplify videoconference cell

* Add spec for videoconference cell

* Fix rubocop offenses

* Change parent class for VideoconferenceAttendanceLogsController

* Fix rubocop offenses

* Normalize locales

* Fix missing and unused locale errors

* Add spec for create videoconference attendance log command

* Add spec for create videoconference attendance logs command

* Update meeting form spec

* Update meeting model spec

* Add spec for videoconference attendance log model

* Update spec for admin manage meetings

* Lint js

* Add spec for viewing attendance logs

* Normalize locale

* Add system spec for videoconference

* Add consent message to videoconference explanation

* Add missing translations

* Fix create meeting spec

* Fix update meeting command spec

* Prevent authenticity token error

* Fix toggle for embed videoconference checkbox

* Fix embed checkbox toggle

* Add seeds for embedded videoconference meetings

* Fix variable name

Co-authored-by: Vera Rojman <vrojman@protonmail.com>
# Conflicts:
#	decidim-meetings/app/views/decidim/meetings/admin/meetings/index.html.erb
#	decidim-meetings/config/locales/en.yml
#	decidim-meetings/lib/decidim/meetings/component.rb
#	decidim-meetings/spec/models/meeting_spec.rb
#	docs/services/videoconferences.md

* Add a config flag to disable the registration code (decidim#6698)

* Ref. DIFE-148
- add registration_code_enabled as an admin flag on meetings settings page
- remove registration code from email and notification
- do not display registration code on the interface after joining to a meeting

* Ref. DIFE-148
- hide "Validate registration code" from Admin - Components - Meeting section

* Ref. DIFE-148
- fix rspec error

* Ref. DIFE-148
- fix bad reference

* Ref. DIFE-148
- fix tests for join_meeting_spec.rb

* Ref. DIFE-148
- fix tests for meeting_registrations_spec.rb

* Ref. DIFE-148
- fix tests for registration_mailer_spec.rb

* Ref. DIFE-148
- fix tests for admin_manages_meetings_spec.rb

* Ref. DIFE-148
- fix tests for validate_registration_code_spec.rb

* Ref. DIFE-148
- fix linter errors

* Add functionality to enable/disable registration code.

* Add unit tests and fix the old ones.

* Add PR number to Change Log

* Updating the i18n tasks

* Fixing i18n specs

* Running linters on Changelog.md

* run linters

* Fixing Linking issues

* Remove changes done in CHANGELOG.md

* Ref. DIFE-148
- add registration_code_enabled as an admin flag on meetings settings page
- remove registration code from email and notification
- do not display registration code on the interface after joining to a meeting

* Ref. DIFE-148
- hide "Validate registration code" from Admin - Components - Meeting section

* Ref. DIFE-148
- fix bad reference

* Ref. DIFE-148
- fix tests for join_meeting_spec.rb

* Ref. DIFE-148
- fix tests for meeting_registrations_spec.rb

* Ref. DIFE-148
- fix tests for registration_mailer_spec.rb

* Ref. DIFE-148
- fix tests for admin_manages_meetings_spec.rb

* Ref. DIFE-148
- fix tests for validate_registration_code_spec.rb

* Add functionality to enable/disable registration code.

* Add PR number to Change Log

* Running linters on Changelog.md

* run linters

* Fixing Linking issues

* Remove changes done in CHANGELOG.md

* Remove changes done in CHANGELOG.md

* Set flag's default value to TRUE and remove duplicate entries

* Fix tests after changing the default value of flag

Co-authored-by: Alexandru Emil Lupu <contact@alecslupu.ro>
Co-authored-by: Cristian Georgescu <georgescu.cristi@gmail.com>

* fix merge error

* fix merge errors

* fix more merge errors

Co-authored-by: anagha vl <44900292+anaghavl@users.noreply.github.com>
Co-authored-by: Andrea Orler <orlera@users.noreply.github.com>
Co-authored-by: Alexandru Emil Lupu <contact@alecslupu.ro>
Co-authored-by: roxanaopr <66411127+roxanaopr@users.noreply.github.com>
Co-authored-by: Cristian Georgescu <georgescu.cristi@gmail.com>
@verarojman verarojman mentioned this pull request Feb 23, 2021
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants