We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Add separate button for Aalto login (aside Haka login)
In a recent change (pull request #804 ) Aalto (or other local organization) login button was replaced by general Haka login, that directs user to organization selector, to allow login also using other Haka organization accounts than Aalto. This was an intermediate step (due to difficulties in shibboleth configuration), and a separate button for local organization login should now be added back, as majority of students would be using it, and usually some additional guidance may need to be added, e.g. for open university students to use local organization account instead of other organization.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `aplus/urls.py`
Content:
```
1 from django.conf import settings
2 from django.conf.urls import url, include
3 from django.contrib import admin
4 from django.contrib.sitemaps.views import sitemap
5 from django.urls import path
6 
7 import shibboleth_login.urls
8 import social_django.urls
9 import userprofile.urls, userprofile.sitemaps
10 import course.urls, course.long_urls, course.sitemaps
11 import exercise.urls, exercise.sitemaps
12 import edit_course.urls
13 import deviations.urls
14 import notification.urls
15 import external_services.urls
16 import news.urls
17 import diploma.urls
18 import apps.urls
19 import api.urls_v2
20 import redirect_old_urls.urls
21 
22 
23 admin.autodiscover()
24 
25 all_sitemaps = {
26     **course.sitemaps.all_sitemaps,
27     **exercise.sitemaps.all_sitemaps,
28     **userprofile.sitemaps.all_sitemaps,
29 }
30 
31 #  Pay attention to the order the URL patterns will be matched!
32 urlpatterns = [
33     url(r'^admin/', admin.site.urls),
34     url(r'^shibboleth/', include(shibboleth_login.urls)),
35     url('', include(social_django.urls, namespace='social')),
36     url(r'^api/v(?P<version>(2))/', include(api.urls_v2)), # why version in url? doc/api_versioning.md
37     url(r'^accounts/', include(userprofile.urls)),
38     url(r'^diploma/', include(diploma.urls)),
39     url(r'^', include(redirect_old_urls.urls)),
40     url(r'^', include(apps.urls)),
41     url(r'^', include(news.urls)),
42     url(r'^', include(external_services.urls)),
43     url(r'^', include(course.long_urls)),
44     url(r'^', include(deviations.urls)),
45     url(r'^', include(edit_course.urls)),
46     url(r'^', include(notification.urls)),
47     url(r'^', include(exercise.urls)),
48     url(r'^', include(course.urls)),
49     path('sitemap.xml', sitemap, { 'sitemaps': all_sitemaps },
50         name='django.contrib.sitemaps.views.sitemap'),
51 ]
52 
53 if settings.DEBUG:
54     import django.views.static
55     urlpatterns.insert(0, url(r'^media/(?P<path>.*)$', django.views.static.serve,
56         { 'document_root': settings.MEDIA_ROOT }))
57
```

Path: `shibboleth_login/urls.py`
Content:
```
1 from django.conf import settings
2 from django.conf.urls import url
3 
4 from . import views
5 
6 
7 urlpatterns = [
8     url(r'^login/$', views.login, name="shibboleth-login"),
9 ]
10 
11 if settings.DEBUG:
12     urlpatterns.append(url(r'^debug/$', views.debug))
13
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/aplus/urls.py b/aplus/urls.py
--- a/aplus/urls.py
+++ b/aplus/urls.py
@@ -31,7 +31,7 @@
 #  Pay attention to the order the URL patterns will be matched!
 urlpatterns = [
     url(r'^admin/', admin.site.urls),
-    url(r'^shibboleth/', include(shibboleth_login.urls)),
+    url(r'^', include(shibboleth_login.urls)),
     url('', include(social_django.urls, namespace='social')),
     url(r'^api/v(?P<version>(2))/', include(api.urls_v2)), # why version in url? doc/api_versioning.md
     url(r'^accounts/', include(userprofile.urls)),
diff --git a/shibboleth_login/urls.py b/shibboleth_login/urls.py
--- a/shibboleth_login/urls.py
+++ b/shibboleth_login/urls.py
@@ -5,7 +5,8 @@
 
 
 urlpatterns = [
-    url(r'^login/$', views.login, name="shibboleth-login"),
+    url(r'^shibboleth/login/$', views.login, name="shibboleth-login"),
+    url(r'^Shibboleth.sso/haka_login$', views.login, name="haka-login"),
 ]
 
 if settings.DEBUG:

{"golden_diff": "diff --git a/aplus/urls.py b/aplus/urls.py\n--- a/aplus/urls.py\n+++ b/aplus/urls.py\n@@ -31,7 +31,7 @@\n #  Pay attention to the order the URL patterns will be matched!\n urlpatterns = [\n     url(r'^admin/', admin.site.urls),\n-    url(r'^shibboleth/', include(shibboleth_login.urls)),\n+    url(r'^', include(shibboleth_login.urls)),\n     url('', include(social_django.urls, namespace='social')),\n     url(r'^api/v(?P<version>(2))/', include(api.urls_v2)), # why version in url? doc/api_versioning.md\n     url(r'^accounts/', include(userprofile.urls)),\ndiff --git a/shibboleth_login/urls.py b/shibboleth_login/urls.py\n--- a/shibboleth_login/urls.py\n+++ b/shibboleth_login/urls.py\n@@ -5,7 +5,8 @@\n \n \n urlpatterns = [\n-    url(r'^login/$', views.login, name=\"shibboleth-login\"),\n+    url(r'^shibboleth/login/$', views.login, name=\"shibboleth-login\"),\n+    url(r'^Shibboleth.sso/haka_login$', views.login, name=\"haka-login\"),\n ]\n \n if settings.DEBUG:\n", "issue": "Add separate button for Aalto login (aside Haka login)\nIn a recent change (pull request #804 ) Aalto (or other local organization) login button was replaced by general Haka login, that directs user to organization selector, to allow login also using other Haka organization accounts than Aalto. This was an intermediate step (due to difficulties in shibboleth configuration), and a separate button for local organization login should now be added back, as majority of students would be using it, and usually some additional guidance may need to be added, e.g. for open university students to use local organization account instead of other organization.\n", "before_files": [{"content": "from django.conf import settings\nfrom django.conf.urls import url, include\nfrom django.contrib import admin\nfrom django.contrib.sitemaps.views import sitemap\nfrom django.urls import path\n\nimport shibboleth_login.urls\nimport social_django.urls\nimport userprofile.urls, userprofile.sitemaps\nimport course.urls, course.long_urls, course.sitemaps\nimport exercise.urls, exercise.sitemaps\nimport edit_course.urls\nimport deviations.urls\nimport notification.urls\nimport external_services.urls\nimport news.urls\nimport diploma.urls\nimport apps.urls\nimport api.urls_v2\nimport redirect_old_urls.urls\n\n\nadmin.autodiscover()\n\nall_sitemaps = {\n    **course.sitemaps.all_sitemaps,\n    **exercise.sitemaps.all_sitemaps,\n    **userprofile.sitemaps.all_sitemaps,\n}\n\n#  Pay attention to the order the URL patterns will be matched!\nurlpatterns = [\n    url(r'^admin/', admin.site.urls),\n    url(r'^shibboleth/', include(shibboleth_login.urls)),\n    url('', include(social_django.urls, namespace='social')),\n    url(r'^api/v(?P<version>(2))/', include(api.urls_v2)), # why version in url? doc/api_versioning.md\n    url(r'^accounts/', include(userprofile.urls)),\n    url(r'^diploma/', include(diploma.urls)),\n    url(r'^', include(redirect_old_urls.urls)),\n    url(r'^', include(apps.urls)),\n    url(r'^', include(news.urls)),\n    url(r'^', include(external_services.urls)),\n    url(r'^', include(course.long_urls)),\n    url(r'^', include(deviations.urls)),\n    url(r'^', include(edit_course.urls)),\n    url(r'^', include(notification.urls)),\n    url(r'^', include(exercise.urls)),\n    url(r'^', include(course.urls)),\n    path('sitemap.xml', sitemap, { 'sitemaps': all_sitemaps },\n        name='django.contrib.sitemaps.views.sitemap'),\n]\n\nif settings.DEBUG:\n    import django.views.static\n    urlpatterns.insert(0, url(r'^media/(?P<path>.*)$', django.views.static.serve,\n        { 'document_root': settings.MEDIA_ROOT }))\n", "path": "aplus/urls.py"}, {"content": "from django.conf import settings\nfrom django.conf.urls import url\n\nfrom . import views\n\n\nurlpatterns = [\n    url(r'^login/$', views.login, name=\"shibboleth-login\"),\n]\n\nif settings.DEBUG:\n    urlpatterns.append(url(r'^debug/$', views.debug))\n", "path": "shibboleth_login/urls.py"}], "after_files": [{"content": "from django.conf import settings\nfrom django.conf.urls import url, include\nfrom django.contrib import admin\nfrom django.contrib.sitemaps.views import sitemap\nfrom django.urls import path\n\nimport shibboleth_login.urls\nimport social_django.urls\nimport userprofile.urls, userprofile.sitemaps\nimport course.urls, course.long_urls, course.sitemaps\nimport exercise.urls, exercise.sitemaps\nimport edit_course.urls\nimport deviations.urls\nimport notification.urls\nimport external_services.urls\nimport news.urls\nimport diploma.urls\nimport apps.urls\nimport api.urls_v2\nimport redirect_old_urls.urls\n\n\nadmin.autodiscover()\n\nall_sitemaps = {\n    **course.sitemaps.all_sitemaps,\n    **exercise.sitemaps.all_sitemaps,\n    **userprofile.sitemaps.all_sitemaps,\n}\n\n#  Pay attention to the order the URL patterns will be matched!\nurlpatterns = [\n    url(r'^admin/', admin.site.urls),\n    url(r'^', include(shibboleth_login.urls)),\n    url('', include(social_django.urls, namespace='social')),\n    url(r'^api/v(?P<version>(2))/', include(api.urls_v2)), # why version in url? doc/api_versioning.md\n    url(r'^accounts/', include(userprofile.urls)),\n    url(r'^diploma/', include(diploma.urls)),\n    url(r'^', include(redirect_old_urls.urls)),\n    url(r'^', include(apps.urls)),\n    url(r'^', include(news.urls)),\n    url(r'^', include(external_services.urls)),\n    url(r'^', include(course.long_urls)),\n    url(r'^', include(deviations.urls)),\n    url(r'^', include(edit_course.urls)),\n    url(r'^', include(notification.urls)),\n    url(r'^', include(exercise.urls)),\n    url(r'^', include(course.urls)),\n    path('sitemap.xml', sitemap, { 'sitemaps': all_sitemaps },\n        name='django.contrib.sitemaps.views.sitemap'),\n]\n\nif settings.DEBUG:\n    import django.views.static\n    urlpatterns.insert(0, url(r'^media/(?P<path>.*)$', django.views.static.serve,\n        { 'document_root': settings.MEDIA_ROOT }))\n", "path": "aplus/urls.py"}, {"content": "from django.conf import settings\nfrom django.conf.urls import url\n\nfrom . import views\n\n\nurlpatterns = [\n    url(r'^shibboleth/login/$', views.login, name=\"shibboleth-login\"),\n    url(r'^Shibboleth.sso/haka_login$', views.login, name=\"haka-login\"),\n]\n\nif settings.DEBUG:\n    urlpatterns.append(url(r'^debug/$', views.debug))\n", "path": "shibboleth_login/urls.py"}]}