<p dir="auto">Microcosms was renamed to communities  See <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1368723981" data-permission-text="Title is private" data-url="https://github.com/openstreetmap/openstreetmap-website/issues/3683" data-hovercard-type="pull_request" data-hovercard-url="/openstreetmap/openstreetmap-website/pull/3683/hovercard" href="https://github.com/openstreetmap/openstreetmap-website/pull/3683">#3683</a> for the PR before this one.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/openstreetmap/openstreetmap-website/pull/3717'>https://github.com/openstreetmap/openstreetmap-website/pull/3717</a></p>

<h4>Commit Summary</h4>
<ul>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/f3c913937927a9336aa633e38ccd21e83257e78e" class="commit-link">f3c9139</a>  Add microcosm model and controller (show, show_by_key) and tests.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/32927d9e518967b1a326c91d7a7bce67bdf68189" class="commit-link">32927d9</a>  Create the edit handler, but it doesn't do anything yet.  Guests may not edit.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/a017d735940ec1664203c6da1274ae7bdfe05591" class="commit-link">a017d73</a>  Guest can also show_by_key.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/598dd1cfb499d9ab7dcccc073ac68cf40668e723" class="commit-link">598dd1c</a>  Remove trailing space.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/45b88e0e0b4b047c90e3814c2fa6b888f8ce00e0" class="commit-link">45b88e0</a>  Add a list of all miccrocosms.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/21233efd106e32894fc3469cafc746fbc55dea99" class="commit-link">21233ef</a>  bundle install friendly_id for slugs.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/ca3f1aa8679054bd3a451ba56970afd9e5d4b44d" class="commit-link">ca3f1aa</a>  Replace show_by_key with using friendly_id slugs.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/599152d42b0e8564fa3bc1b9f520611eea4d97bc" class="commit-link">599152d</a>  Convert Facebook and Twitter links into has_many links.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/04e39a87304de0f7b0ca555b2533cc661f6f2664" class="commit-link">04e39a8</a>  Add location to microcosms.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/2814d642efc00bf7b4f9655df215576f6ee6a9ca" class="commit-link">2814d64</a>  Admins can create and edit microcosms.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/88a4b51c735770153773102cf803202f9fe76915" class="commit-link">88a4b51</a>  Move the "new" microcosm link to the header.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/493c88a2ad74f5513dcfa2b3594e8926fb3fdc1f" class="commit-link">493c88a</a>  Microcosm row layout</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/0909c35030f8a2ddba965e2882bda0664938c7d2" class="commit-link">0909c35</a>  Remove empty files.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/e54abd8d864375a4570c198dc87e0990397893c3" class="commit-link">e54abd8</a>  Removed disabled code.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/9f4eb4bd82aa0b4d56a33210a9bba6948b0791c5" class="commit-link">9f4eb4b</a>  When the creation save fails, send the user back to the form.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/698e2a6c7a868d9bca6c845e3b7d3b85fe426d81" class="commit-link">698e2a6</a>  StrongMigrations is a module.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/5af9ff3a99e74fdaa4708617a246a12958f2a57b" class="commit-link">5af9ff3</a>  erblint</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/b8263b77cfc4b579f447cc3e95f79d5013b1478d" class="commit-link">b8263b7</a>  Forgot to commit this file.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/e2f136d2c7559365dd4486180247ace56e727d93" class="commit-link">e2f136d</a>  Set not null on microcosm.{description,slug} and link attributes.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/e2d0ad2d23edb87615536719d8b6d2d7d83a4015" class="commit-link">e2d0ad2</a>  Move styles to stylesheets.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/52ad17bb5f3226d31676f3ee2c500e0a4c125ac4" class="commit-link">52ad17b</a>  Remove disabled code.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/107d26d2513ab1df653b79cdb4befc2c9295f09b" class="commit-link">107d26d</a>  Replace link to geofabrik with TODO item.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/bc528aed58966c8cb64cc8f01366ccb278ba19e5" class="commit-link">bc528ae</a>  rubocop</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/0c07660100591f257c150c649a85dd5a53aec9d8" class="commit-link">0c07660</a>  Use save not save!.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/ef4bb44f61b5f42b6ef720da83aca99871306835" class="commit-link">ef4bb44</a>  find_or_initialize! should be find_or_initialize.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/4534f9dfddb19b5164153228bf1be4b0b820ebb3" class="commit-link">4534f9d</a>  Add missing NOT NULL constraints FK constraints.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/c38e767b3e62d2a592adf98a925220b9fa074e98" class="commit-link">c38e767</a>  Translate all the things.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/de01c8f529a0a470f653fcdf63e632fe0f47ef3a" class="commit-link">de01c8f</a>  Correcting a mistake.  This table should have been created with min/max lat/lon as integer.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/dd17ef85c7bdef46a06dbcf778453b8662067cbb" class="commit-link">dd17ef8</a>  Change lat and lon from decimal to integer.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/8b5d44a199676b040be461776ab213500c0b8793" class="commit-link">8b5d44a</a>  Replace hardcoded image of map with a leaflet map.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/5c11fb934a1a1a8706d3908959d03486c342e2a5" class="commit-link">5c11fb9</a>  Replace .flex_row with bootsrap row which is also flex-based.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/7676f426d9c0d47e93b5a86d5b3d351076994032" class="commit-link">7676f42</a>  erblint fix</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/1fa33adbe32d31b91d37e4e614004a90c561c342" class="commit-link">1fa33ad</a>  Header should contain the name of the microcosm.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/29f70d6b0ca7af4c6e19889eb2d1e66c75ac993d" class="commit-link">29f70d6</a>  Rename lat to latitude, lon to longitude, convert all coords to floats.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/56850abf0e9e0fad5d9beb8939c9fabeccbe138a" class="commit-link">56850ab</a>  Replace hard coded changesets with real ones.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/c2c0769c76ebfdb6ec5f9bddd86102294dc03d58" class="commit-link">c2c0769</a>  Add some validation and model testing for microcosms.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/a2a9d9965143719b2fce40cff13d7e963eb2343b" class="commit-link">a2a9d99</a>  Rename microcosm_valid() to validate() in order to bring out the similarity of this method.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/1b8c87d8c0832b6d16e70004dd9d913510f23be3" class="commit-link">1b8c87d</a>  whitespace</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/e7b8d932ca2bc7f725b6e3f9f555dea741462400" class="commit-link">e7b8d93</a>  Add validation and model test for microcosm_link.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/f2b14f9ac731a6498c397347516e0549f9bde29a" class="commit-link">f2b14f9</a>  Add validation for microcosm locations.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/105b3f090362a4dffb25025265eeff5fecf52b42" class="commit-link">105b3f0</a>  Microcosm descriptions are not allowed to be nil/empty.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/daeac84fb2ebc1ff9752e884bc55231ea04a9bc7" class="commit-link">daeac84</a>  Add missing entry for microcosms in compact-secondary-nav</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/5ad12abf910cf3759d4ac9fb0172374a78634197" class="commit-link">5ad12ab</a>  allow anyone to create a microcosm.  For now?</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/787fb0ebcaaeceff7a170d43b302e71d2ce418bb" class="commit-link">787fb0e</a>  rubocop got pissy about indentation</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/85184e02b85dfc02cb55a9c89914c218e56cda8e" class="commit-link">85184e0</a>  Move microcosm :new, :create to non-admin.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/4ffb3fb81695bc176b5b688925994a049ba2d0ec" class="commit-link">4ffb3fb</a>  Add instruction, all fields are required.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/32f4ae685523a5a5305167bf4d2b0d7d1b70744a" class="commit-link">32f4ae6</a>  add hint for location</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/faa834368d7a50ab4bf91b6d6b8993d8c53df334" class="commit-link">faa8343</a>  Order microcosms by longitude.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/549e2612f524411b2d1bd6fa45b324709297bbcb" class="commit-link">549e261</a>  Remove inline javascript to comply with CSP.  Move that logic to microcosms.js.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/78b1330eb62765c639bbff587a1b14e4ea4675fd" class="commit-link">78b1330</a>  Add a bunch of tests for microcosm_controller.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/9ae9df52968113888724f77f3f2f7f1a53e6e132" class="commit-link">9ae9df5</a>  test microcosm update</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/cb26872698fe76562e3c8f5d1eb27ef6fd0b1012" class="commit-link">cb26872</a>  Add more tests.  I prefer @title so templates don't need to call functions like t().</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/0370ccb663d260ba12c248ecd49c9439e703ffba" class="commit-link">0370ccb</a>  This test can now run as plain user not administrator.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/466e4feaa4d0673c3f5ff222c3df105bf4c4c190" class="commit-link">466e4fe</a>  Make the forms look like the rest of the website.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/73a0c79289bcc3ab0de29f46e698b9d4b90e41ae" class="commit-link">73a0c79</a>  Make microcosm index look better.  Move edit link</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/390d27447217f9e598cf2c33b06ef833d2d350d6" class="commit-link">390d274</a>  Factor out showMap code which will be used on multiple pages.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/0fc417ecd67fd4dbd76c926f5bb9114e7d9dce38" class="commit-link">0fc417e</a>  Modify UI for mobile.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/bf627fcdc0f329369f4d5db120aee9cd72ea7e74" class="commit-link">bf627fc</a>  Factor out formMapInput.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/9b0cfc666c881d189ed41bc15a581978d5b23c88" class="commit-link">9b0cfc6</a>  Display if the changeset has review_requested.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/2267dd4d79fae31d425bb3cdc55cbbb347f95cd7" class="commit-link">2267dd4</a>  Sort by longitude and time of day</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/6f8c853ae854263e8bd2d4496f5290da1559ad64" class="commit-link">6f8c853</a>  Rubocop said replace content_tag with tag.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/132bbfe14f7f507025137d07761ef0aa91965652" class="commit-link">132bbfe</a>  Use tag (in place of content_tag) correctly.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/ea30d2d9880e4e04d07549cdbd2524d71a0575c2" class="commit-link">ea30d2d</a>  Don't pollute the global namespace.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/72d9b12779d5154de8b34247dab4a55447f602fa" class="commit-link">72d9b12</a>  Subject: [PATCH 208/280] Improve error messages for microcosm controller and</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/4ebffaeacb31874be9b5d27e489e645c1c1d04c4" class="commit-link">4ebffae</a>  Add tests for controller when failures happen.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/4b948015d3272f2286aaea0b61dbd4fa6398e0b8" class="commit-link">4b94801</a>  Adapt to rubocop.  In tests factor out some WET code into helper methods.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/0a136610bdb09f12acbd0efcdbae6e344c6df733" class="commit-link">0a13661</a>  Format these coords better.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/04fcca793eae543211e4d18ae4d38cac466f1740" class="commit-link">04fcca7</a>  Rubocop cleanups</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/70a8d45cd828701b073021fa2787a6e693f959b7" class="commit-link">70a8d45</a>  Subject: [PATCH 237/280] Normalize longitude input before using it.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/cef312d0e26e758313ae4b2b738df592a583254e" class="commit-link">cef312d</a>  Add an organizer to the microcosm.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/f1a76891dbf57c27fe067056bf363b9e1303c595" class="commit-link">f1a7689</a>  Allow users to report a microcosm.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/9872ec5544365fba63c75d0760ae5fcf5df8e340" class="commit-link">9872ec5</a>  Get tests working by not using :controller/:action in tests.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/e533141738f04469b4150db09f54ef74a390d39a" class="commit-link">e533141</a>  Should hav added organizer_id a while ago.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/0cfcbd6cb976e8c560f0a69373e417be7b4d97ea" class="commit-link">0cfcbd6</a>  Show the microcosms a user is an organizer of.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/2d9c844497bf8071cd34df5c7cdc0eff45cf9707" class="commit-link">2d9c844</a>  Merge remote-tracking branch 'upstream/master' into microcosms-microcosms</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/d0385382696e2e4ce78cb33fd0463b7a34b8b018" class="commit-link">d038538</a>  Non-admins can create and edit their own microcosms.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/03979235952e33b018fc5f33c07178bb4d02cbb1" class="commit-link">0397923</a>  Use declarative spec for who can edit microcosms.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/e3b7367aa91b3e830bf03b93342005f9bda15ded" class="commit-link">e3b7367</a>  Add CRUD and testing for MicrocosmLinks.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/3f1935eb991bce27427d1f93964361a7f9d1886f" class="commit-link">3f1935e</a>  Resolve erblint and brakeman findings.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/f9bc8679aafdd14261ae73aa4eca7b1f6400b2b8" class="commit-link">f9bc867</a>  prefer string interpolation</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/6f95d30e2691d411aff5d8014f1a6191a68edcf6" class="commit-link">6f95d30</a>  Use bootstrap styles for the list of links.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/f03edb31bba283f4deaf873062cea13cc7d5a8f0" class="commit-link">f03edb3</a>  Use .content_map from common.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/5c1e2f49030541d4f0dad3d7ea1265af681e31f3" class="commit-link">5c1e2f4</a>  Use the same design pattern as in diary entries for secondary-actions.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/e4bd2624df891a370dcf0c2fcc0ba6f81b9a8034" class="commit-link">e4bd262</a>  Use nested resources.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/fcbeb6bcb0a2f596a50d2b6d590a8036d2b16a42" class="commit-link">fcbeb6b</a>  Move the sorting logic for microcosms to a separate function, fix it, and document it.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/0852a997360c90fe0c855148f8ca34a3bd8f24be" class="commit-link">0852a99</a>  Rename microcosms_i_organize to microcosms_organized.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/76b8f195f3532b0b9f268c088b7e803a755d717a" class="commit-link">76b8f19</a>  Move microcosms of_user into microcosms#index.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/77185711eb8a08d5b95709a324e035b60e5f8e6c" class="commit-link">7718571</a>  Get these tests passing once again now that we're using nested resource routes.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/b9af71aaaa717f7ff371f27932f4ce711e266bc3" class="commit-link">b9af71a</a>  Move normalize_longitude from controller to a shared function in lib/osm.rb.  Use it at the model level.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/d2c5fb9441934e04e436d4989488d95a0b112ae0" class="commit-link">d2c5fb9</a>  Use translation for helper text in forms.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/cdff41f2a7b389aab2d9c7b43871aa610228977a" class="commit-link">cdff41f</a>  Remove unused file.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/5bd52417bad57faa141adca82671dacf9668d65f" class="commit-link">5bd5241</a>  RFC 6761 - reserved domain names</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/b60cee1551e24a98ac28f847374dfafd7d8e196d" class="commit-link">b60cee1</a>  No need for assert_no_missing_translations in check_page_basics.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/8e31d4f618f18db4b2476b69f28eaf1a0109e8bb" class="commit-link">8e31d4f</a>  Consolidate db migrations.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/1fc7fde9bc2f4268809fbaf6ee8f0bed4652111f" class="commit-link">1fc7fde</a>  No need to ignore a column ("key") that is no longer there.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/fd74d7b4cee3dd5fba8627583c04439c1c8d0120" class="commit-link">fd74d7b</a>  Rename Microcosms to Communities.</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/commits/dbf38ffa780c6a7ba84a638b1f4fdc9bb7fd4091" class="commit-link">dbf38ff</a>  Merge remote-tracking branch 'upstream/master' into communities-communities</li>
</ul>

<h4 style="display: inline-block">File Changes </h4> <p style="display: inline-block">(<a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files">47 files</a>)</p>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-d09ea66f8227784ff4393d88a19836f321c915ae10031d16c93d67e6283ab55f">Gemfile</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-89cade48462044ee1b672dc5f4c3ec250fbd29effcd8932096a23c1283c6731f">Gemfile.lock</a>
    (7)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-debf59904131dc89a88ab44cbb1d6deaaa5a7d70c0507f674080df62f7c8e41f">app/abilities/ability.rb</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-0e145ba000e96b1a45d230275e350e4e8514efb4db7dbcfa228fe1003896c9b4">app/assets/javascripts/application.js</a>
    (74)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-3989cab74e1dec5d29715b1ac2c23be2db8029a659f060b665c1c5fa11436e92">app/assets/javascripts/communities.js</a>
    (18)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-2fb9432f810a3fbc313e32e83f50b72b73c7bac6b4c4538b1a0b7431eafbf214">app/assets/stylesheets/communities.scss</a>
    (9)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-75be179d51732eb29c18eb3bada9ed2c5e1d3954a719eda0cf061c1fcdbfc599">app/controllers/communities_controller.rb</a>
    (102)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-4e34e83eafa7e5664340cb8c1ae73ebadc6f2edc14284073e2aaf382860d4957">app/controllers/community_links_controller.rb</a>
    (59)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-cc7acbfb990b45e6f8cb1fe65cbd081a7819b596b03e0ac2ef2e82a9537d3278">app/controllers/issues_controller.rb</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-40c889bfec2f4677ca340d48772b56107986ba517a9cdf5b5852ee1c192f913d">app/controllers/reports_controller.rb</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-96b07570f5f45323f09b0d3d1aa6b3250067e22fcafdc92a00190697adb50a44">app/helpers/issues_helper.rb</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-2ca3a978e5b6e4fee47713d116f75573a7768194f4b0f111deadd08f7a23dc04">app/models/client_application.rb</a>
    (1)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-190ded2d42f6af93a773aeb536093f45506f76cb3090cf7ed96239bc0d636a31">app/models/community.rb</a>
    (61)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-52d5d3b11f67ddefa425c2e4c5fde084fb80e925e3e93cd361aa2bd013a64e2d">app/models/community_link.rb</a>
    (21)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-cd75dd8ea34b8e05a215a3f3f8eb0627a26357293ffe415244f30d7a7b7c60e3">app/models/issue.rb</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-d276df626ef0e97e1f84661e93ed03fec2c8d90297f99c2dc2a85eb5a2337b6a">app/models/report.rb</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-9802ca3c9c4cf89904fd44bc114e35ebdf2c5dd3d5b645491e2b253e1afef29b">app/models/user.rb</a>
    (2)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-84dc8f52406245dae9624b82194fd3011c6c33c906f48c84d8de2eb694037522">app/views/communities/_form.html.erb</a>
    (30)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-696d196b55a55234dd1d866210f71a586e2089af73fc58d1b32e0720bbfa0bb7">app/views/communities/_index_list.html.erb</a>
    (25)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-7525281045e4075e7c542aec6ede0c2f4dee9385cba1974ac10081d9c571d5e5">app/views/communities/edit.html.erb</a>
    (3)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-438e1b6c7609fd7f852e4bcfae183da1a19bd7e43f64d49e3978977de1a10270">app/views/communities/index.html.erb</a>
    (18)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-ac0c7e0cc7c2e130b6b752ecf2806f2dc9fa97344ed81854d0eaac9689d68f79">app/views/communities/new.html.erb</a>
    (5)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-163ce2713ed645657bad08551b244b2f9daaae62a6e8201d9633f1b73962d038">app/views/communities/show.html.erb</a>
    (75)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-0066882c76994d9ba031fb05e7cd676e44b66c6529173b8eb7fbc6a76e5a888e">app/views/community_links/_form.html.erb</a>
    (5)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-b8da21abcc2ad22632a77b1911571a9cdfa2566aa3d1b1df496c2bc3aead0577">app/views/community_links/edit.html.erb</a>
    (3)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-f0a739a2fe298e012015ac5c60db418abdf375d882b6b7ddeaf4b47e7120ba96">app/views/community_links/index.html.erb</a>
    (27)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-b7be4fd8b3a99a2c616a4fe8a1b92614ffc6b56e38191ee99ea894da4c43cce9">app/views/community_links/new.html.erb</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-6d2ef58207c92d1533287af551a075122ba98240a861819047a2ae77b7674f0b">app/views/layouts/_header.html.erb</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-78ff736409d758722403cce31873ba803b3fb526d37398ca21caa557b54dfd95">app/views/users/show.html.erb</a>
    (6)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-b02af7d018b5e62d122886a31af8d464102468343d0c1236d230942816fe47ed">config/initializers/friendly_id.rb</a>
    (107)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-44438ce218f5287c58d0017f965d888715635d94280669896f75841fbd7b4cd7">config/locales/en.yml</a>
    (86)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-959bc9abc46a55332bb64d5155a79323afa75a50ec1a2137ddd22d926f62c6c5">config/routes.rb</a>
    (11)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-d70d4a671ffbaa464022958697c3aba8e44e8671e5bb0a313f4d07a005f1bdef">db/migrate/20210517030520_create_communities.rb</a>
    (19)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-66cacf808c18a9f392b9325d63282db570e2eef5a796f3c3f795f5067bf58f91">db/migrate/20220820220545_create_friendly_id_slugs.rb</a>
    (14)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-6d3a8942a2b5aede9eabacb84756bb5fa82236409c2e146824abf0e7476cc1c9">db/migrate/20220821143545_create_community_links.rb</a>
    (11)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-1dd5a8f580b9615769ddc19a64a98f455d9d20eb149c443f41d9d3c797d39b12">db/structure.sql</a>
    (220)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-f8a27e50423ab8e432a0ac66073c425c0c4eb520ecd92bf152b21e6e966b4754">lib/osm.rb</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-66914b664fcadd6ba28bd16a44eb853ca3fd4e1f9ea1e4be390f12aeea2a0697">test/abilities/abilities_test.rb</a>
    (21)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-75af88d9b38b7e0c1f50b3d37b314a5b5cd0cdbca8986909f79391ee764cd606">test/controllers/communities_controller_test.rb</a>
    (277)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-ca076effd525c931f92ecdfd42a8b5afdd978aa0de2dd7dd0eec544e831235c5">test/controllers/community_links_controller_test.rb</a>
    (204)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-508b18e1718ec57f301b08fad26b99e4f550053ac3060afaf75f56d8dcaf2230">test/factories/communities.rb</a>
    (14)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-81f0028a68fee552579a8804367b2a5b483d733c2d3b67b24b5452bf0900973e">test/factories/community_links.rb</a>
    (7)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-ffc1cbfae463df50c2250adcc1adb6f01175b77946d39fbe1461373982feb028">test/models/community_link_test.rb</a>
    (21)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-e339c2b6bcf2bb05ca9bb7d589ef1954bd2823dd1b74cc3f6f26fd12010ff52d">test/models/community_test.rb</a>
    (86)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-7fbf0e6c10deff5d707995df2d2d9d1eced8fd6d9d23a1fac4818aae7e28bd2f">test/models/issue_test.rb</a>
    (5)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-171c7bdbd2770a9649c0504f4c392abcf3dd9299229b34b0d327b5f2ba3aca27">test/system/report_community_test.rb</a>
    (33)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717/files#diff-ba37813ca277c227a74a372479b7b05b7f3ff085d890ab708f80d62573efdb7a">test/test_helper.rb</a>
    (8)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/openstreetmap/openstreetmap-website/pull/3717.patch'>https://github.com/openstreetmap/openstreetmap-website/pull/3717.patch</a></li>
  <li><a href='https://github.com/openstreetmap/openstreetmap-website/pull/3717.diff'>https://github.com/openstreetmap/openstreetmap-website/pull/3717.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3717">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAK2OLPKZXZB5KTO7I5EWCLV75LP7ANCNFSM6AAAAAAQUYXU54">unsubscribe</a>.<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AAK2OLICHBIPW54D3ZCAE5TV75LP7A5CNFSM6AAAAAAQUYXU56WGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHFFCSGR4.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><openstreetmap/openstreetmap-website/pull/3717</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/openstreetmap/openstreetmap-website/pull/3717",
"url": "https://github.com/openstreetmap/openstreetmap-website/pull/3717",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>