From 59116f2d46c633ceb03596a760ce53fcd624c0ed Mon Sep 17 00:00:00 2001 From: Evarin Date: Sat, 3 Feb 2018 22:34:37 +0100 Subject: [PATCH] International wagtail urls --- cof/settings/common.py | 1 + cof/urls.py | 79 +++++------ gestioncof/cms/static/cofcms/css/screen.css | 132 ++++++++++-------- gestioncof/cms/static/cofcms/images/en.png | Bin 0 -> 7343 bytes gestioncof/cms/static/cofcms/images/fr.png | Bin 0 -> 4092 bytes gestioncof/cms/static/cofcms/sass/screen.scss | 18 ++- gestioncof/cms/templates/cofcms/base.html | 16 ++- 7 files changed, 148 insertions(+), 98 deletions(-) create mode 100644 gestioncof/cms/static/cofcms/images/en.png create mode 100644 gestioncof/cms/static/cofcms/images/fr.png diff --git a/cof/settings/common.py b/cof/settings/common.py index af344796..1bd6dcd8 100644 --- a/cof/settings/common.py +++ b/cof/settings/common.py @@ -94,6 +94,7 @@ INSTALLED_APPS = [ 'wagtail.wagtailadmin', 'wagtail.wagtailcore', 'wagtail.contrib.modeladmin', + 'wagtail.contrib.wagtailroutablepage', 'wagtailmenus', 'modelcluster', 'taggit', diff --git a/cof/urls.py b/cof/urls.py index e6e5d313..8be4a130 100644 --- a/cof/urls.py +++ b/cof/urls.py @@ -6,6 +6,7 @@ Fichier principal de configuration des urls du projet GestioCOF from django.conf import settings from django.conf.urls import include, url +from django.conf.urls.i18n import i18n_patterns from django.conf.urls.static import static from django.contrib import admin from django.views.generic.base import TemplateView @@ -26,73 +27,73 @@ admin.autodiscover() urlpatterns = [ # Page d'accueil - url(r'^$', gestioncof_views.home, name='home'), + url(r'^gestion/$', gestioncof_views.home, name='home'), # Le BdA - url(r'^bda/', include('bda.urls')), + url(r'^gestion/bda/', include('bda.urls')), # Les exports - url(r'^export/', include(export_patterns)), + url(r'^gestion/export/', include(export_patterns)), # Les petits cours - url(r'^petitcours/', include(petitcours_patterns)), + url(r'^gestion/petitcours/', include(petitcours_patterns)), # Les sondages - url(r'^survey/', include(surveys_patterns)), + url(r'^gestion/survey/', include(surveys_patterns)), # Evenements - url(r'^event/', include(events_patterns)), + url(r'^gestion/event/', include(events_patterns)), # Calendrier - url(r'^calendar/', include(calendar_patterns)), + url(r'^gestion/calendar/', include(calendar_patterns)), # Clubs - url(r'^clubs/', include(clubs_patterns)), + url(r'^gestion/clubs/', include(clubs_patterns)), # Authentification - url(r'^cof/denied$', TemplateView.as_view(template_name='cof-denied.html'), + url(r'^gestion/cof/denied$', TemplateView.as_view(template_name='cof-denied.html'), name="cof-denied"), - url(r'^cas/login$', django_cas_views.login, name="cas_login_view"), - url(r'^cas/logout$', django_cas_views.logout), - url(r'^outsider/login$', gestioncof_views.login_ext, + url(r'^gestion/cas/login$', django_cas_views.login, name="cas_login_view"), + url(r'^gestion/cas/logout$', django_cas_views.logout), + url(r'^gestion/outsider/login$', gestioncof_views.login_ext, name="ext_login_view"), - url(r'^outsider/logout$', django_views.logout, {'next_page': 'home'}), - url(r'^login$', gestioncof_views.login, name="cof-login"), - url(r'^logout$', gestioncof_views.logout, name="cof-logout"), + url(r'^gestion/outsider/logout$', django_views.logout, {'next_page': 'home'}), + url(r'^gestion/login$', gestioncof_views.login, name="cof-login"), + url(r'^gestion/logout$', gestioncof_views.logout, name="cof-logout"), # Infos persos - url(r'^profile$', gestioncof_views.profile, + url(r'^gestion/profile$', gestioncof_views.profile, name='profile'), - url(r'^outsider/password-change$', django_views.password_change, + url(r'^gestion/outsider/password-change$', django_views.password_change, name='password_change'), - url(r'^outsider/password-change-done$', + url(r'^gestion/outsider/password-change-done$', django_views.password_change_done, name='password_change_done'), # Inscription d'un nouveau membre - url(r'^registration$', gestioncof_views.registration, + url(r'^gestion/registration$', gestioncof_views.registration, name='registration'), - url(r'^registration/clipper/(?P[\w-]+)/' + url(r'^gestion/registration/clipper/(?P[\w-]+)/' r'(?P.*)$', gestioncof_views.registration_form2, name="clipper-registration"), - url(r'^registration/user/(?P.+)$', + url(r'^gestion/registration/user/(?P.+)$', gestioncof_views.registration_form2, name="user-registration"), - url(r'^registration/empty$', gestioncof_views.registration_form2, + url(r'^gestion/registration/empty$', gestioncof_views.registration_form2, name="empty-registration"), # Autocompletion - url(r'^autocomplete/registration$', autocomplete), - url(r'^user/autocomplete$', gestioncof_views.user_autocomplete, + url(r'^gestion/autocomplete/registration$', autocomplete), + url(r'^gestion/user/autocomplete$', gestioncof_views.user_autocomplete, name='cof-user-autocomplete'), # Interface admin - url(r'^admin/logout/', gestioncof_views.logout), - url(r'^admin/doc/', include('django.contrib.admindocs.urls')), - url(r'^admin/(?P[\d\w]+)/(?P[\d\w]+)/csv/', + url(r'^gestion/admin/logout/', gestioncof_views.logout), + url(r'^gestion/admin/doc/', include('django.contrib.admindocs.urls')), + url(r'^gestion/admin/(?P[\d\w]+)/(?P[\d\w]+)/csv/', csv_views.admin_list_export, {'fields': ['username', ]}), - url(r'^admin/', include(admin.site.urls)), + url(r'^gestion/admin/', include(admin.site.urls)), # Liens utiles du COF et du BdA - url(r'^utile_cof$', gestioncof_views.utile_cof, + url(r'^gestion/utile_cof$', gestioncof_views.utile_cof, name='utile_cof'), - url(r'^utile_bda$', gestioncof_views.utile_bda, + url(r'^gestion/utile_bda$', gestioncof_views.utile_bda, name='utile_bda'), - url(r'^utile_bda/bda_diff$', gestioncof_views.liste_bdadiff), - url(r'^utile_cof/diff_cof$', gestioncof_views.liste_diffcof), - url(r'^utile_bda/bda_revente$', gestioncof_views.liste_bdarevente), - url(r'^k-fet/', include('kfet.urls')), - url(r'^cms/', include(wagtailadmin_urls)), - url(r'^documents/', include(wagtaildocs_urls)), + url(r'^gestion/utile_bda/bda_diff$', gestioncof_views.liste_bdadiff), + url(r'^gestion/utile_cof/diff_cof$', gestioncof_views.liste_diffcof), + url(r'^gestion/utile_bda/bda_revente$', gestioncof_views.liste_bdarevente), + url(r'^gestion/k-fet/', include('kfet.urls')), + url(r'^gestion/cms/', include(wagtailadmin_urls)), + url(r'^gestion/documents/', include(wagtaildocs_urls)), # djconfig - url(r"^config", gestioncof_views.ConfigUpdate.as_view()), + url(r"^gestion/config", gestioncof_views.ConfigUpdate.as_view()), ] if 'debug_toolbar' in settings.INSTALLED_APPS: @@ -108,6 +109,6 @@ if settings.DEBUG: document_root=settings.MEDIA_ROOT) # Wagtail for uncatched -urlpatterns += [ +urlpatterns += i18n_patterns( url(r'', include(wagtail_urls)), -] +) diff --git a/gestioncof/cms/static/cofcms/css/screen.css b/gestioncof/cms/static/cofcms/css/screen.css index 617a6162..e29319cb 100644 --- a/gestioncof/cms/static/cofcms/css/screen.css +++ b/gestioncof/cms/static/cofcms/css/screen.css @@ -136,7 +136,7 @@ header h1 { } /* line 69, ../sass/screen.scss */ header nav ul { - display: flex; + display: inline-flex; } /* line 71, ../sass/screen.scss */ header nav ul li { @@ -152,35 +152,53 @@ header nav ul li > * { header nav ul li > *:hover { background: #280008; } +/* line 84, ../sass/screen.scss */ +header nav .lang-select { + display: inline-block; + height: 100%; + vertical-align: top; +} +/* line 89, ../sass/screen.scss */ +header nav .lang-select a { + padding: 5px; + display: block; +} +/* line 92, ../sass/screen.scss */ +header nav .lang-select a img { + display: block; + width: auto; + max-height: 30px; + vertical-align: middle; +} -/* line 87, ../sass/screen.scss */ +/* line 103, ../sass/screen.scss */ article { line-height: 1.4; } -/* line 89, ../sass/screen.scss */ +/* line 105, ../sass/screen.scss */ article p, article ul { margin: 0.4em 0; } -/* line 92, ../sass/screen.scss */ +/* line 108, ../sass/screen.scss */ article ul { padding-left: 20px; } -/* line 94, ../sass/screen.scss */ +/* line 110, ../sass/screen.scss */ article ul li { list-style: outside; } -/* line 98, ../sass/screen.scss */ +/* line 114, ../sass/screen.scss */ article:last-child { margin-bottom: 30px; } -/* line 103, ../sass/screen.scss */ +/* line 119, ../sass/screen.scss */ .container { max-width: 1000px; margin: 0 auto; position: relative; } -/* line 108, ../sass/screen.scss */ +/* line 124, ../sass/screen.scss */ .container .aside-wrap { position: absolute; top: 30px; @@ -188,7 +206,7 @@ article:last-child { width: 25%; left: 6px; } -/* line 115, ../sass/screen.scss */ +/* line 131, ../sass/screen.scss */ .container .aside-wrap .aside { color: #222; position: fixed; @@ -199,33 +217,33 @@ article:last-child { padding: 15px; box-shadow: -4px 4px 1px rgba(153, 118, 0, 0.3); } -/* line 125, ../sass/screen.scss */ +/* line 141, ../sass/screen.scss */ .container .aside-wrap .aside h2 { color: #fff; } -/* line 129, ../sass/screen.scss */ +/* line 145, ../sass/screen.scss */ .container .aside-wrap .aside .calendar { margin: 0 auto; display: block; } -/* line 134, ../sass/screen.scss */ +/* line 150, ../sass/screen.scss */ .container .aside-wrap .aside a { color: #997000; } -/* line 140, ../sass/screen.scss */ +/* line 156, ../sass/screen.scss */ .container .content { max-width: 900px; margin-left: auto; margin-right: 6px; } -/* line 145, ../sass/screen.scss */ +/* line 161, ../sass/screen.scss */ .container .content .intro { border-bottom: 3px solid #7f7f7f; margin: 20px 0; margin-top: 5px; padding: 15px 5px; } -/* line 154, ../sass/screen.scss */ +/* line 170, ../sass/screen.scss */ .container .content section article { background: #fff; padding: 20px 30px; @@ -233,31 +251,31 @@ article:last-child { border: 1px solid rgba(153, 118, 0, 0.1); border-radius: 2px; } -/* line 160, ../sass/screen.scss */ +/* line 176, ../sass/screen.scss */ .container .content section article a { color: #CC9500; } -/* line 165, ../sass/screen.scss */ +/* line 181, ../sass/screen.scss */ .container .content section article + h2 { margin-top: 15px; } -/* line 169, ../sass/screen.scss */ +/* line 185, ../sass/screen.scss */ .container .content section article + article { margin-top: 25px; } -/* line 173, ../sass/screen.scss */ +/* line 189, ../sass/screen.scss */ .container .content section .image { margin: 15px 0; text-align: center; padding: 20px; } -/* line 178, ../sass/screen.scss */ +/* line 194, ../sass/screen.scss */ .container .content section .image img { max-width: 100%; height: auto; box-shadow: -7px 7px 1px rgba(153, 118, 0, 0.2); } -/* line 186, ../sass/screen.scss */ +/* line 202, ../sass/screen.scss */ .container .content section.directory article.entry { width: 80%; max-width: 600px; @@ -265,7 +283,7 @@ article:last-child { position: relative; margin-left: 6%; } -/* line 193, ../sass/screen.scss */ +/* line 209, ../sass/screen.scss */ .container .content section.directory article.entry .entry-image { display: block; float: right; @@ -280,31 +298,31 @@ article:last-child { margin-bottom: 10px; transform: translateX(10px); } -/* line 207, ../sass/screen.scss */ +/* line 223, ../sass/screen.scss */ .container .content section.directory article.entry .entry-image img { width: auto; height: auto; max-width: 100%; max-height: 100%; } -/* line 215, ../sass/screen.scss */ +/* line 231, ../sass/screen.scss */ .container .content section.directory article.entry ul.links { margin-top: 10px; border-top: 1px solid #90001C; padding-top: 10px; } -/* line 223, ../sass/screen.scss */ +/* line 239, ../sass/screen.scss */ .container .content section.actuhome { display: flex; flex-wrap: wrap; justify-content: space-around; align-items: top; } -/* line 229, ../sass/screen.scss */ +/* line 245, ../sass/screen.scss */ .container .content section.actuhome article + article { margin: 0; } -/* line 233, ../sass/screen.scss */ +/* line 249, ../sass/screen.scss */ .container .content section.actuhome article.actu { position: relative; background: none; @@ -314,7 +332,7 @@ article:last-child { min-width: 300px; flex: 1; } -/* line 242, ../sass/screen.scss */ +/* line 258, ../sass/screen.scss */ .container .content section.actuhome article.actu .actu-header { position: relative; box-shadow: -4px 5px 1px rgba(153, 118, 0, 0.3); @@ -328,7 +346,7 @@ article:last-child { background-position: center center; background-repeat: no-repeat; } -/* line 255, ../sass/screen.scss */ +/* line 271, ../sass/screen.scss */ .container .content section.actuhome article.actu .actu-header h2 { position: absolute; width: 100%; @@ -338,11 +356,11 @@ article:last-child { text-shadow: 0 0 5px rgba(153, 118, 0, 0.8); background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent); } -/* line 263, ../sass/screen.scss */ +/* line 279, ../sass/screen.scss */ .container .content section.actuhome article.actu .actu-header h2 a { color: #fff; } -/* line 269, ../sass/screen.scss */ +/* line 285, ../sass/screen.scss */ .container .content section.actuhome article.actu .actu-misc { background: white; box-shadow: -2px 2px 1px rgba(153, 118, 0, 0.2); @@ -352,17 +370,17 @@ article:last-child { padding: 15px; padding-top: 5px; } -/* line 278, ../sass/screen.scss */ +/* line 294, ../sass/screen.scss */ .container .content section.actuhome article.actu .actu-misc .actu-minical { display: block; } -/* line 281, ../sass/screen.scss */ +/* line 297, ../sass/screen.scss */ .container .content section.actuhome article.actu .actu-misc .actu-dates { display: block; text-align: right; font-size: 0.9em; } -/* line 288, ../sass/screen.scss */ +/* line 304, ../sass/screen.scss */ .container .content section.actuhome article.actu .actu-overlay { display: block; background: none; @@ -374,80 +392,80 @@ article:last-child { z-index: 5; opacity: 0; } -/* line 304, ../sass/screen.scss */ +/* line 320, ../sass/screen.scss */ .container .content section.actulist article.actu { display: flex; width: 100%; padding: 0; } -/* line 309, ../sass/screen.scss */ +/* line 325, ../sass/screen.scss */ .container .content section.actulist article.actu .actu-image { width: 30%; max-width: 200px; background-size: cover; background-position: center center; } -/* line 315, ../sass/screen.scss */ +/* line 331, ../sass/screen.scss */ .container .content section.actulist article.actu .actu-infos { padding: 15px; flex: 1; } -/* line 319, ../sass/screen.scss */ +/* line 335, ../sass/screen.scss */ .container .content section.actulist article.actu .actu-infos .actu-dates { font-weight: bold; font-size: 0.9em; } -/* line 329, ../sass/screen.scss */ +/* line 345, ../sass/screen.scss */ .container .aside-wrap + .content { max-width: 70%; } -/* line 334, ../sass/screen.scss */ +/* line 350, ../sass/screen.scss */ .calendar { color: rgba(0, 0, 0, 0.8); } -/* line 337, ../sass/screen.scss */ +/* line 353, ../sass/screen.scss */ .calendar td, .calendar th { text-align: center; vertical-align: middle; border: 2px solid transparent; padding: 1px; } -/* line 344, ../sass/screen.scss */ +/* line 360, ../sass/screen.scss */ .calendar th { font-weight: bold; } -/* line 348, ../sass/screen.scss */ +/* line 364, ../sass/screen.scss */ .calendar td { font-size: 0.8em; width: 28px; height: 28px; } -/* line 353, ../sass/screen.scss */ +/* line 369, ../sass/screen.scss */ .calendar td.out { opacity: 0.3; } -/* line 356, ../sass/screen.scss */ +/* line 372, ../sass/screen.scss */ .calendar td.today { border-bottom-color: #000; } -/* line 359, ../sass/screen.scss */ +/* line 375, ../sass/screen.scss */ .calendar td:nth-child(7), .calendar td:nth-child(6) { background: rgba(0, 0, 0, 0.2); } -/* line 362, ../sass/screen.scss */ +/* line 378, ../sass/screen.scss */ .calendar td.hasevent { position: relative; font-weight: bold; color: #90001C; font-size: 1em; } -/* line 368, ../sass/screen.scss */ +/* line 384, ../sass/screen.scss */ .calendar td.hasevent > a { padding: 3px; color: #90001C !important; } -/* line 373, ../sass/screen.scss */ +/* line 389, ../sass/screen.scss */ .calendar td.hasevent ul.cal-events { text-align: left; display: none; @@ -460,11 +478,11 @@ article:last-child { padding: 5px; background-color: #90001C; } -/* line 386, ../sass/screen.scss */ +/* line 402, ../sass/screen.scss */ .calendar td.hasevent ul.cal-events .datename { display: none; } -/* line 389, ../sass/screen.scss */ +/* line 405, ../sass/screen.scss */ .calendar td.hasevent ul.cal-events:before { top: -12px; left: 38px; @@ -473,33 +491,33 @@ article:last-child { border: 6px solid transparent; border-bottom-color: #90001C; } -/* line 397, ../sass/screen.scss */ +/* line 413, ../sass/screen.scss */ .calendar td.hasevent ul.cal-events a { color: #fff; } -/* line 402, ../sass/screen.scss */ +/* line 418, ../sass/screen.scss */ .calendar td.hasevent > a:hover { background-color: #90001C; color: #fff !important; } -/* line 406, ../sass/screen.scss */ +/* line 422, ../sass/screen.scss */ .calendar td.hasevent > a:hover + ul.cal-events { display: block; } -/* line 414, ../sass/screen.scss */ +/* line 430, ../sass/screen.scss */ #calendar-wrap .details { border-top: 1px solid #90001C; margin-top: 15px; padding-top: 10px; } -/* line 419, ../sass/screen.scss */ +/* line 435, ../sass/screen.scss */ #calendar-wrap .details li.datename { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; } -/* line 420, ../sass/screen.scss */ +/* line 436, ../sass/screen.scss */ #calendar-wrap .details li.datename:after { content: " :"; } diff --git a/gestioncof/cms/static/cofcms/images/en.png b/gestioncof/cms/static/cofcms/images/en.png new file mode 100644 index 0000000000000000000000000000000000000000..f69a5341f68a748a55f621f1821907f01bfd0515 GIT binary patch literal 7343 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 I7dH(2KZG9C*8l(j literal 0 HcmV?d00001 diff --git a/gestioncof/cms/static/cofcms/images/fr.png b/gestioncof/cms/static/cofcms/images/fr.png new file mode 100644 index 0000000000000000000000000000000000000000..eefa08ade6bc28a4913663314f58f65ae3adc7e0 GIT binary patch literal 4092 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 * { @@ -81,6 +81,22 @@ header { } } } + .lang-select { + display: inline-block; + height: 100%; + vertical-align: top; + + a { + padding: 5px; + display: block; + img { + display: block; + width: auto; + max-height: 30px; + vertical-align: middle; + } + } + } } } diff --git a/gestioncof/cms/templates/cofcms/base.html b/gestioncof/cms/templates/cofcms/base.html index 056e37ec..c11a2761 100644 --- a/gestioncof/cms/templates/cofcms/base.html +++ b/gestioncof/cms/templates/cofcms/base.html @@ -1,4 +1,4 @@ -{% load static menu_tags wagtailuserbar %} +{% load static menu_tags wagtailuserbar i18n wagtailcore_tags %} @@ -21,6 +21,20 @@