{"action":"created","issue":{"url":"https://api.github.com/repos/inaturalist/inaturalist/issues/237","labels_url":"https://api.github.com/repos/inaturalist/inaturalist/issues/237/labels{/name}","comments_url":"https://api.github.com/repos/inaturalist/inaturalist/issues/237/comments","events_url":"https://api.github.com/repos/inaturalist/inaturalist/issues/237/events","html_url":"https://github.com/inaturalist/inaturalist/issues/237","id":27579268,"number":237,"title":"replace project invitation w/ ability for anyone to add obs to projects","user":{"login":"loarie","id":598026,"avatar_url":"https://avatars.githubusercontent.com/u/598026?v=3","gravatar_id":"","url":"https://api.github.com/users/loarie","html_url":"https://github.com/loarie","followers_url":"https://api.github.com/users/loarie/followers","following_url":"https://api.github.com/users/loarie/following{/other_user}","gists_url":"https://api.github.com/users/loarie/gists{/gist_id}","starred_url":"https://api.github.com/users/loarie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/loarie/subscriptions","organizations_url":"https://api.github.com/users/loarie/orgs","repos_url":"https://api.github.com/users/loarie/repos","events_url":"https://api.github.com/users/loarie/events{/privacy}","received_events_url":"https://api.github.com/users/loarie/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/inaturalist/inaturalist/labels/features","name":"features","color":"fbca04"},{"url":"https://api.github.com/repos/inaturalist/inaturalist/labels/in%20progress","name":"in progress","color":"ededed"}],"state":"open","locked":false,"assignee":{"login":"kueda","id":22691,"avatar_url":"https://avatars.githubusercontent.com/u/22691?v=3","gravatar_id":"","url":"https://api.github.com/users/kueda","html_url":"https://github.com/kueda","followers_url":"https://api.github.com/users/kueda/followers","following_url":"https://api.github.com/users/kueda/following{/other_user}","gists_url":"https://api.github.com/users/kueda/gists{/gist_id}","starred_url":"https://api.github.com/users/kueda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kueda/subscriptions","organizations_url":"https://api.github.com/users/kueda/orgs","repos_url":"https://api.github.com/users/kueda/repos","events_url":"https://api.github.com/users/kueda/events{/privacy}","received_events_url":"https://api.github.com/users/kueda/received_events","type":"User","site_admin":false},"milestone":null,"comments":13,"created_at":"2014-02-14T07:53:39Z","updated_at":"2015-03-27T20:14:29Z","closed_at":null,"body":"IMO, the process of adding observations to projects isn't working well. Mainly because\r\n\r\n1. for the community the constant barrage of invitations is spammy and \r\n1. for project managers its a constant struggle to get people to add observations to a project just so they can be 'collected' but not necessarily because the projects want any special permissions (ie (a) access to private location data, (b) whatever the project terms specify, & (c) ability to post messages to the project community). \r\n\r\nHere are some radical changes that attempt to address this:\r\n\r\n1. Make it so ProjectObservations (observations in the project) do not require ProjectUsers (users that have joined the project), e.g. separate joining a project from having project observations\r\n1. Let any logged_in user add any observation (ie from any user) to any project they have joined\r\n1. ProjectObservations without ProjectUsers would show up in a project, e.g. could be searched, would be added to the ProjectList, would be influenced by project curator IDs, but because they lack a ProjectUsers the project would not have permission (a) access to private location data, (b) whatever the project terms specify, & (c) ability to post messages to the project community.\r\n1. On joining a project, present ProjectUser preferences for agreeing to (a) sharing geoprivacy info, (b) project terms & (c) receiving project posts that could apply as a blanket to all their data in the project\r\n1. Add User preferences for opting out such that 'only I can add my observations to projects'\r\n1. Get rid of project invitations\r\n![screen shot 2014-02-13 at 10 29 13 pm](https://f.cloud.github.com/assets/598026/2168506/63d772c8-9541-11e3-8dab-05db86496666.png)\r\nIn the above menu\r\n* the behavior of 'remove' is unchanged (ie observation owner and project curators can remove observations from a project), \r\n* 'fill in' triggers project field modal (add project specific fields), & \r\n* 'join' triggers join modal (create a ProjectUser)\r\n\r\nThe join modal includes preference that enable the ProjectUser to give blanket permissions for a,b,c above to the project which would apply to any observation added to the project:\r\n![screen shot 2014-02-13 at 11 32 03 pm](https://f.cloud.github.com/assets/598026/2168782/22bbb656-954a-11e3-91bb-792280d8bc9e.png)\r\nNote: These blanket  permissions mean if I join a project and give (a) geoprivacy permissions & (b) agree to the terms, that project could then arbitrarily add my observations and get these permissions. So its important that this is clear on join and that ProjectUsers are alerted not just when new curators are added to a project but also when \r\n1. project rules change (e.g. scope changes from seahorses to all taxa), & \r\n2. terms change. \r\n\r\nProjectUsers could also not agree to these blanket permissions but rather enable (a)geoprivacy/(b)terms permissions for individual observations. This is safer, but would mean ProjectUsers have to sign off on every observation if they want to give these permissions. Enabling permissions for individual observations could happen like this:\r\n![screen shot 2014-02-13 at 11 30 29 pm](https://f.cloud.github.com/assets/598026/2168771/ee586c24-9549-11e3-96dc-5340a6334950.png)\r\n\r\nWhen migrating over to this new system, it would be important that existing projects keep current ProjectUsers and ProjectObservations, but also that projects can't get (a)geoprivacy & (b)terms permissions on observations they'd subsequently add unless ProjectUsers opt in. To achieve this, set all existing ProjectUser blanket permissions to true for (c)project posts, and false for (a)geoprivacy & (b)terms. However, all grandfathered ProjectObservations will have individual preferences set to true for (a)geoprivacy & (b)terms. ProjectUsers would have to opt-in to apply these preferences to new ProjectObservations.\r\n\r\nLastly, we'd have to add language making it clear to project teams that not all ProjectObservations in their project can be used according to the (b)terms. Tools to easily identify which can and which can't such as an additional column in the project CSV export would be useful.\r\n\r\nI think these changes will give project managers the ability to 'collect' observations in their projects without burdening the community with tons of project invitations that need to be addressed. I like the tools projects provide for viewing leaderboards, visualizing searching obs, and visualizing/searching the checklists they compile from the obs. I also like that people want to 'collect' and visualize my obs in their own projects but I don't want to deal with the hassle of responding to invitations or adding them myself.\r\n\r\nLikewise, if I wanted to give any special permissions (a,b,c above) to the projects, I could join the project and give blanket permissions once if I trust them, or give permissions to my project_observations individually if I don't. And if for some reason it bothers me to have my observations appear in projects (even though I've granted no special permissions) I could opt out entirely and the system would work as it does.\r\n \r\n\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/inaturalist/inaturalist/issues/comments/87075762","html_url":"https://github.com/inaturalist/inaturalist/issues/237#issuecomment-87075762","issue_url":"https://api.github.com/repos/inaturalist/inaturalist/issues/237","id":87075762,"user":{"login":"loarie","id":598026,"avatar_url":"https://avatars.githubusercontent.com/u/598026?v=3","gravatar_id":"","url":"https://api.github.com/users/loarie","html_url":"https://github.com/loarie","followers_url":"https://api.github.com/users/loarie/followers","following_url":"https://api.github.com/users/loarie/following{/other_user}","gists_url":"https://api.github.com/users/loarie/gists{/gist_id}","starred_url":"https://api.github.com/users/loarie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/loarie/subscriptions","organizations_url":"https://api.github.com/users/loarie/orgs","repos_url":"https://api.github.com/users/loarie/repos","events_url":"https://api.github.com/users/loarie/events{/privacy}","received_events_url":"https://api.github.com/users/loarie/received_events","type":"User","site_admin":false},"created_at":"2015-03-27T20:14:29Z","updated_at":"2015-03-27T20:14:29Z","body":"I was thinking that anyone can add or remove their own observations but the project team only can add/remove anyone's obs. Were you thinking any one can add/remove anyone's obs? Hadn't considered that"}}