openfoodfoundation / openfoodnetwork

Connect suppliers, distributors and consumers to trade local produce.
https://www.openfoodnetwork.org
GNU Affero General Public License v3.0
1.12k stars 723 forks source link

Enterprise Registration - Agree to Terms of Service #1211

Closed lin-d-hop closed 7 years ago

lin-d-hop commented 7 years ago

Different countries have been developing Terms of Service, but unless we provide a place in which we ask people to our Terms of Service we are going to have trouble enforcing them.

I would like to see an optional 7th step added to the Enterprise Registration process (see image below). It would contain fully translatable text fields. Users will need to check a Checkbox to enable the Finish button that would complete their registration. The Terms of Service link would link to the file saved in the field: ContentConfig.footer_tos_url

Some countries will begin using OFN before their terms of service is complete. And different countries have different legalities around the presentation of Terms of Service. As such this feature should be configurable through the super-admin. This could be done via a checkbox beside the field in the Super-admin UI: "TERMS OF SERVICE URL" -> Super-admin -> Configuration -> Content (the last field on the page). Checkbox: "Enable ToS Agreement in Enterprise Registration"

@daniellemoorhead @oeoeaio Any comments on this (fully configurable) enhancement?

tosagree

oeoeaio commented 7 years ago

Sounds good to me!

myriamboure commented 7 years ago

That's awesome, definitely needed :-)

NickWeir63 commented 7 years ago

yes I like this idea. the UK finalised (for now) terms of service are here

levent commented 7 years ago

I will pick this up. @lin-d-hop I can't assign myself or drag cards on the ZenHub board it seems.

lin-d-hop commented 7 years ago

@levent... I still can't seem to assign to you. Are you able to do that?

levent commented 7 years ago

@lin-d-hop nope. I cannot change anything in the right column (assignees, milestones, labels etc.) or in ZenHub (permissions probably link) and I still don't seem to appear in auto-complete.

levent commented 7 years ago

Just a couple of observations / queries:

CSS gurus: As the registration flow breadcrumbs number 7 now, they won't fit into the 12 column grid system. Any strict preferences on how you want me to implement this?

@lin-d-hop should this feature be enabled by default?

The enterprise is currently created far earlier in the registration flow. Is the expectation that this shouldn't happen until after this new final step is passed?

oeoeaio commented 7 years ago

@levent, good pick ups. With regard to the second issue, can we put the terms of service at the beginning of the registration process? ie. enterprise creation? Also, this is presumably more a user-level service agreement than an enterprise-level one, so I guess we should only show it to users who have not already agreed to it?

With regard to the first issue, can we show the terms of service before we even get into the wizard (meaning it doesn't need a step)? Is that common for this sort of thing or are they usually at the end? Failing that, we could make another step a two-parter (as I think we have already done with images?).

lin-d-hop commented 7 years ago

Hi @oeoeaio, I feel this might be more an enterprise level agreement, in that it is enterprises that we need to agree to uphold our ethics. It is enterprises that have the capacity to cause distrust from customers in the OFN brand by not upholding our ethics. And it is enterprises, rather than individual users, that we might need to hold to account. I can imagine one user with two different enterprises that have very different ethics. What are your thoughts?

RE the grid system, makes sense to me to merge this with another step to keep the grid tidy. I agree early in the process makes sense in relation to the other steps. I do think it fits inside the existing registration process, based on my logic that this is enterprise level agreement. Sketch to come...

lin-d-hop commented 7 years ago

Ok. So based on the above here is an updated version of what this (I hope) will look like: 1) Place it right at the start, outside of the registration process on the first screen. (see image) 2) Unless the user checks the checkbox they won't be able to continue with the set up process. 3) The feature is configurable (as per original spec) and off by default 4) The words Terms of Service should be a link, linking to the file saved in ContentConfig.footer_tos_url

lin-d-hop commented 7 years ago

img_20161130_220200

lin-d-hop commented 7 years ago

(Sorry about the bad quality pic) Example initial text (this will be changeable through translations) We want to work with people that share our aims and values. As such we ask new enterprises to agree to our Terms of Service.

levent commented 7 years ago

For whomever picks this up:

If you're a n00b like me, my exploratory spike branch may at least save you time finding the code responsible for this feature.

https://github.com/openfoodfoundation/openfoodnetwork/compare/master...levent:1211-enterprise-reg-tos?expand=1

Matt-Yorkley commented 7 years ago

I'd like to get my teeth stuck in to this one, if it's up for grabs? It looks pretty meaty! I think the revised placement on the "lets get started" section looks like a much better idea.

Matt-Yorkley commented 7 years ago

Is the idea that the terms of service will just be per-instance, i.e. one for the UK, one for AUS, etc?

The current default superadmin config page shows "/Terms-of-service.pdf" for the abovementioned ContentConfig.footer_tos_url field. Will a linked PDF file be the standard format?

The Config -> Content tab in admin is already really busy, and the ContentConfig.footer_tos_url field is technically for footer content links. A separate subsection with the terms of service options might be a better idea?

Matt-Yorkley commented 7 years ago

Nevermind, I've finished it.

lin-d-hop commented 7 years ago

Does this need specs? @matt-yorkley

Matt-Yorkley commented 7 years ago

Just looking at the spec now, but capybara is not playing nice with the dynamic angular content...

oeoeaio commented 7 years ago

Have submitted some code for @Matt-Yorkley to have a look at, assigning him.

OliverUK commented 7 years ago

@lin-d-hop no build

lin-d-hop commented 7 years ago

@OliverUK try again

OliverUK commented 7 years ago

Staged now and tested.

I first logged into super admin and saw the box below wasn't yet ticked so ticked it and went to register in a different browser. screen shot 2017-02-03 at 14 30 10

As expected, I was unable to press the Let's get started button unless I agreed to the terms. screen shot 2017-02-03 at 14 29 06

However the link to the ToS leads to a document referring to AUS, but maybe that's to be expected? Maybe the UK document isn't on staging? screen shot 2017-02-03 at 14 29 41

I think it would be better if the ToS opened in a new tab/window.

I then unticked the box in super admin so that agreeing to the terms wan't needed for that instance. I tried again to register and this time I didn't get asked to agree to the terms. The line and tick box were simply not there and I could advance to the next screen.

I didn't carry on to complete each registration but I can do if you feel it's important.

Matt-Yorkley commented 7 years ago

Just added a quick bit to make the pdf link open in a new tab, as per Oliver's suggestion. I've checked it's working, don't think it needs full re-test.

sstead commented 7 years ago

All looks good. One nice to have below, but not a show stopper... There's now 2 places to set the Terms of Service link: 1) In config>General Settings you set the link that's shown at /register and agreed to. 2) In config>content you set the link which sits in the footer of front end pages and in the 'Enterprise Name is now on OFN' email Would it be better to handle it in one place?

Matt-Yorkley commented 7 years ago

@sstead I thought it'd be good to have two separate fields for the footer link and registration content, for cases where an OFN instance wanted them to be different, like a general terms of service for users in the footer and a more specific one for enterprise sign-up. Also so that changes to footer links don't affect the registration process.

lin-d-hop commented 7 years ago

@Matt-Yorkley In that use case there would be much more work to do to ensure that it was clear in every email etc which ToS applied to who. I would advocate for keeping them the same field until such a time arises that a user requests these be separated.

Matt-Yorkley commented 7 years ago

Well... I added a field for the registration document under the "Enterprise Terms and Service" section of the admin config, because the other field for the footer link is buried at the bottom of a completely separate page under "Footer Links", and it seemed like these are not really describing the same thing.

screenshot from 2017-02-22 13-02-24 screenshot from 2017-02-22 12-55-54 screenshot from 2017-02-22 13-04-20

So the other option is to remove the field from the registration settings section, then add an explanation to the footer links section to explain that the footer field also effects the registration link, and then rewrite the registration page to share the footer link field? And then possibly move the field to a different page and section so it's not buried under "Footer Links"?

lin-d-hop commented 7 years ago

Since this is a super-admin thing the UX is pretty low priority tbh, simply because there are so few people that will ever need this explained to them. For that reason my preference would just be to leave hidden in footer links. It is obviously not ideal but on a global scale finding this only affects a handful of people, and these people will almost all be tech literate enough to find it through a search anyway.

oeoeaio commented 7 years ago

Note that #1378 has been merged. So closing this issue now. @lin-d-hop @Matt-Yorkley I've created a new issue #1470 to cover this remaining detail.