Add footer with language controls

Also add a project wide global_static directory at the root for storing
project wide static files. Add some translations for the member register
app.
This commit is contained in:
Jan Tuomi
2017-02-06 01:10:25 +02:00
parent c34e31c0e5
commit 7ee3f69740
13 changed files with 176 additions and 125 deletions
+2
View File
@@ -12,3 +12,5 @@ webapp/migrations/*
.idea/ .idea/
logs/ logs/
logs/* logs/*
static/
static/*
+20
View File
@@ -0,0 +1,20 @@
.footer {
text-align: center;
}
#fi-button {
background: url("/static/img/fi.png") no-repeat;
background-size: cover;
}
#en-button {
background: url("/static/img/en.png") no-repeat;
background-size: cover;
}
.lang-button {
height: 20px;
width: 30px;
margin-left: 10px;
margin-right: 10px;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.
+33 -31
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-02-05 20:18+0200\n" "POT-Creation-Date: 2017-02-06 01:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: members/templates/member_list.html:13 members/templates/member_list.html:48 #: members/templates/member_list.html:13 members/templates/member_list.html:45
msgid "Added" msgid "Added"
msgstr "" msgstr ""
@@ -29,7 +29,7 @@ msgstr ""
msgid "Added before" msgid "Added before"
msgstr "" msgstr ""
#: members/templates/member_list.html:20 members/templates/member_list.html:49 #: members/templates/member_list.html:20 members/templates/member_list.html:46
msgid "Paid" msgid "Paid"
msgstr "" msgstr ""
@@ -57,47 +57,51 @@ msgstr ""
msgid "Member register" msgid "Member register"
msgstr "" msgstr ""
#: members/templates/member_list.html:37 #: members/templates/member_list.html:33
msgid "Member count" msgid "Download CSV"
msgstr "" msgstr ""
#: members/templates/member_list.html:42 #: members/templates/member_list.html:39
msgid "Last name" msgid "Last name"
msgstr "" msgstr ""
#: members/templates/member_list.html:43 #: members/templates/member_list.html:40
msgid "First name" msgid "First name"
msgstr "" msgstr ""
#: members/templates/member_list.html:44 #: members/templates/member_list.html:41
msgid "Email" msgid "Email"
msgstr "" msgstr ""
#: members/templates/member_list.html:45 #: members/templates/member_list.html:42
msgid "AYY member" msgid "AYY member"
msgstr "" msgstr ""
#: members/templates/member_list.html:46 #: members/templates/member_list.html:43
msgid "JAS recipient" msgid "JAS recipient"
msgstr "" msgstr ""
#: members/templates/member_list.html:47 #: members/templates/member_list.html:44
msgid "Residence" msgid "Residence"
msgstr "" msgstr ""
#: members/templates/member_list.html:63 #: members/templates/member_list.html:47
msgid "Member count"
msgstr ""
#: members/templates/member_list.html:61
msgid "Update payment" msgid "Update payment"
msgstr "" msgstr ""
#: members/templates/member_list.html:64 #: members/templates/member_list.html:62
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: members/templates/member_list.html:65 #: members/templates/member_list.html:63
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: members/templates/member_list.html:65 #: members/templates/member_list.html:63
msgid "Are you sure?" msgid "Are you sure?"
msgstr "" msgstr ""
@@ -117,24 +121,22 @@ msgstr ""
msgid "Member application" msgid "Member application"
msgstr "" msgstr ""
#: members/templates/members_base.html:55 sikweb/settings-sample.py:140 #: members/templates/members_base.html:62
#: sikweb/settings.py:146
msgid "Finnish"
msgstr ""
#: members/templates/members_base.html:56 sikweb/settings-sample.py:139
#: sikweb/settings.py:145
msgid "English"
msgstr ""
#: members/templates/members_base.html:58
msgid "Change language"
msgstr ""
#: members/templates/members_base.html:70
msgid "Member register of SIK ry" msgid "Member register of SIK ry"
msgstr "" msgstr ""
#: members/templates/members_base.html:75 #: members/templates/members_base.html:67
msgid "Log out" msgid "Log out"
msgstr "" msgstr ""
#: sikweb/settings-sample.py:141 sikweb/settings.py:146
msgid "English"
msgstr ""
#: sikweb/settings-sample.py:142 sikweb/settings.py:147
msgid "Finnish"
msgstr ""
#: templates/footer.html:11
msgid "Copyright Aalto-yliopiston Sähköinsinöörikilta ry"
msgstr ""
Binary file not shown.
+37 -32
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-02-05 20:18+0200\n" "POT-Creation-Date: 2017-02-06 01:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: members/templates/member_list.html:13 members/templates/member_list.html:48 #: members/templates/member_list.html:13 members/templates/member_list.html:45
msgid "Added" msgid "Added"
msgstr "Lisätty" msgstr "Lisätty"
@@ -30,7 +30,7 @@ msgstr "Lisätty jälkeen"
msgid "Added before" msgid "Added before"
msgstr "Lisätty ennen" msgstr "Lisätty ennen"
#: members/templates/member_list.html:20 members/templates/member_list.html:49 #: members/templates/member_list.html:20 members/templates/member_list.html:46
msgid "Paid" msgid "Paid"
msgstr "Maksettu" msgstr "Maksettu"
@@ -58,47 +58,51 @@ msgstr "Nollaa"
msgid "Member register" msgid "Member register"
msgstr "Jäsenrekisteri" msgstr "Jäsenrekisteri"
#: members/templates/member_list.html:37 #: members/templates/member_list.html:33
msgid "Member count" msgid "Download CSV"
msgstr "Lukumäärä" msgstr ""
#: members/templates/member_list.html:42 #: members/templates/member_list.html:39
msgid "Last name" msgid "Last name"
msgstr "Sukunimi" msgstr "Sukunimi"
#: members/templates/member_list.html:43 #: members/templates/member_list.html:40
msgid "First name" msgid "First name"
msgstr "Etunimi" msgstr "Etunimi"
#: members/templates/member_list.html:44 #: members/templates/member_list.html:41
msgid "Email" msgid "Email"
msgstr "Sähköposti" msgstr "Sähköposti"
#: members/templates/member_list.html:45 #: members/templates/member_list.html:42
msgid "AYY member" msgid "AYY member"
msgstr "AYY:n jäsen" msgstr "AYY:n jäsen"
#: members/templates/member_list.html:46 #: members/templates/member_list.html:43
msgid "JAS recipient" msgid "JAS recipient"
msgstr "JAS-vastaanottaja" msgstr "JAS-vastaanottaja"
#: members/templates/member_list.html:47 #: members/templates/member_list.html:44
msgid "Residence" msgid "Residence"
msgstr "Asuinpaikka" msgstr "Asuinpaikka"
#: members/templates/member_list.html:63 #: members/templates/member_list.html:47
msgid "Member count"
msgstr "Lukumäärä"
#: members/templates/member_list.html:61
msgid "Update payment" msgid "Update payment"
msgstr "Päivitä maksu" msgstr "Päivitä maksu"
#: members/templates/member_list.html:64 #: members/templates/member_list.html:62
msgid "Edit" msgid "Edit"
msgstr "Muokkaa" msgstr "Muokkaa"
#: members/templates/member_list.html:65 #: members/templates/member_list.html:63
msgid "Delete" msgid "Delete"
msgstr "Poista" msgstr "Poista"
#: members/templates/member_list.html:65 #: members/templates/member_list.html:63
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Oletko varma?" msgstr "Oletko varma?"
@@ -118,24 +122,25 @@ msgstr "Lisää useita"
msgid "Member application" msgid "Member application"
msgstr "Jäsenhakemus" msgstr "Jäsenhakemus"
#: members/templates/members_base.html:55 sikweb/settings-sample.py:140 #: members/templates/members_base.html:62
#: sikweb/settings.py:146
msgid "Finnish"
msgstr "suomi"
#: members/templates/members_base.html:56 sikweb/settings-sample.py:139
#: sikweb/settings.py:145
msgid "English"
msgstr "englanti"
#: members/templates/members_base.html:58
msgid "Change language"
msgstr "Vaihda kieli"
#: members/templates/members_base.html:70
msgid "Member register of SIK ry" msgid "Member register of SIK ry"
msgstr "Aalto-yliopiston Sähköinsinöörikilta ry:n jäsenrekisteri" msgstr "Aalto-yliopiston Sähköinsinöörikilta ry:n jäsenrekisteri"
#: members/templates/members_base.html:75 #: members/templates/members_base.html:67
msgid "Log out" msgid "Log out"
msgstr "Kirjaudu ulos" msgstr "Kirjaudu ulos"
#: sikweb/settings-sample.py:141 sikweb/settings.py:146
msgid "English"
msgstr "englanti"
#: sikweb/settings-sample.py:142 sikweb/settings.py:147
msgid "Finnish"
msgstr "suomi"
#: templates/footer.html:11
msgid "Copyright Aalto-yliopiston Sähköinsinöörikilta ry"
msgstr ""
#~ msgid "Change language"
#~ msgstr "Vaihda kieli"
+1 -8
View File
@@ -50,14 +50,6 @@
<li><a href="/members/add">{% trans "Add member" %}</a></li> <li><a href="/members/add">{% trans "Add member" %}</a></li>
<li><a href="/members/add_many">{% trans "Add multiple" %}</a></li> <li><a href="/members/add_many">{% trans "Add multiple" %}</a></li>
<li><a href="/members/applications">{% trans "Member application" %}</a></li> <li><a href="/members/applications">{% trans "Member application" %}</a></li>
<form action="/i18n/setlang/" method="post"> {% csrf_token %}
<select name="language">
<option value="fi">{% trans "Finnish" %}</option>
<option value="en">{% trans "English" %}</option>
</select>
<input type="submit" value="{% trans "Change language" %}" />
</form>
</ul> </ul>
</div> </div>
<!-- /#sidebar-wrapper --> <!-- /#sidebar-wrapper -->
@@ -79,5 +71,6 @@
{% block content %} {% block content %}
{% endblock content %} {% endblock content %}
</div> </div>
{% include "footer.html" %}
</body> </body>
</html> </html>
+11 -2
View File
@@ -60,14 +60,16 @@ ROOT_URLCONF = 'sikweb.urls'
TEMPLATES = [ TEMPLATES = [
{ {
'BACKEND': 'django.template.backends.django.DjangoTemplates', 'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [], 'DIRS': ['templates'],
'APP_DIRS': True, 'APP_DIRS': True,
'OPTIONS': { 'OPTIONS': {
'context_processors': [ 'context_processors': [
'django.template.context_processors.debug', 'django.template.context_processors.debug',
'django.template.context_processors.request', 'django.template.context_processors.request',
'django.template.context_processors.i18n',
'django.contrib.auth.context_processors.auth', 'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages', 'django.contrib.messages.context_processors.messages',
'django.core.context_processors.static',
], ],
}, },
}, },
@@ -159,8 +161,15 @@ USE_TZ = True
# Static files (CSS, JavaScript, Images) # Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/ # https://docs.djangoproject.com/en/1.9/howto/static-files/
STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'django.contrib.staticfiles.finders.FileSystemFinder',
)
STATIC_URL = '/static/' STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'global_static'),
)
HSL_USERHASH = 'YOUR HSL USERHASH HERE' HSL_USERHASH = 'YOUR HSL USERHASH HERE'
HSL_DEPARTURE_THRESHOLD = 8 HSL_DEPARTURE_THRESHOLD = 8
+59 -52
View File
@@ -18,6 +18,10 @@ from django.conf.urls import url
from django.contrib import admin from django.contrib import admin
from django.views.generic.base import RedirectView from django.views.generic.base import RedirectView
from django.conf.urls import include from django.conf.urls import include
from django.conf.urls.static import static
from django.conf import settings
from django.contrib.staticfiles import views as static_views
# main # main
from webapp.views import main_index from webapp.views import main_index
# login # login
@@ -66,57 +70,60 @@ from members.views import application_success_index
favicon_view = RedirectView.as_view(url='static/img/favicon.ico', permanent=True) favicon_view = RedirectView.as_view(url='static/img/favicon.ico', permanent=True)
urlpatterns = [ urlpatterns = [
# main # main
url(r'^$', main_index), url(r'^$', main_index),
# admin # admin
url(r'^admin/', admin.site.urls), url(r'^admin/', admin.site.urls),
# login stuff # login stuff
url(r'^login$', login_view), url(r'^login$', login_view),
url(r'^logout$', logout_view), url(r'^logout$', logout_view),
# members # members
url(r'^members/$', member_list), url(r'^members/$', member_list),
url(r'^members/list$', member_list), url(r'^members/list$', member_list),
url(r'^members/add$', add_member), url(r'^members/add$', add_member),
url(r'^members/add_many$', add_many_members), url(r'^members/add_many$', add_many_members),
url(r'^members/edit/(?P<index>\d+)$', edit_member), url(r'^members/edit/(?P<index>\d+)$', edit_member),
url(r'^members/applications$', list_applications), url(r'^members/applications$', list_applications),
url(r'^members/edit_application/(?P<index>\d+)$', edit_application), url(r'^members/edit_application/(?P<index>\d+)$', edit_application),
url(r'^members/api/members$', mems), url(r'^members/api/members$', mems),
url(r'^members/api/member/(?P<idx>\d+)$', mem), url(r'^members/api/member/(?P<idx>\d+)$', mem),
url(r'^members/api/member/$', mem), url(r'^members/api/member/$', mem),
url(r'^members/api/csvimport$', mem_csv_import), url(r'^members/api/csvimport$', mem_csv_import),
url(r'^members/api/requests$', member_requests), url(r'^members/api/requests$', member_requests),
url(r'^members/api/request$', new_member_request), url(r'^members/api/request$', new_member_request),
url(r'^members/api/request/(?P<idx>\d+)$', handle_mem_request), url(r'^members/api/request/(?P<idx>\d+)$', handle_mem_request),
url(r'^members/api/getCSV$', mem_csv_export), url(r'^members/api/getCSV$', mem_csv_export),
url(r'^members/tommy$', tommy_blooper), url(r'^members/tommy$', tommy_blooper),
#infoscreen #infoscreen
url(r'^infoscreen/$', infodefault), url(r'^infoscreen/$', infodefault),
url(r'^infoscreen/(?P<idx>\d+)$', infoindex), url(r'^infoscreen/(?P<idx>\d+)$', infoindex),
url(r'^infoscreen/items$', info_items), url(r'^infoscreen/items$', info_items),
url(r'^infoscreen/rotation/(?P<idx>\d+)$', rotation), url(r'^infoscreen/rotation/(?P<idx>\d+)$', rotation),
url(r'^infoscreen/rotations$', rotations), url(r'^infoscreen/rotations$', rotations),
url(r'^infoscreen/instance$', createInfoInstance), url(r'^infoscreen/instance$', createInfoInstance),
url(r'^infoscreen/instance/(?P<idx>\d+)$', deleteInfoInstance), url(r'^infoscreen/instance/(?P<idx>\d+)$', deleteInfoInstance),
url(r'^infoscreen/types$', info_types), url(r'^infoscreen/types$', info_types),
url(r'^infoscreen/delete_item/(?P<type_id>\d+)/(?P<idx>\d+)$', delete_info_item), url(r'^infoscreen/delete_item/(?P<type_id>\d+)/(?P<idx>\d+)$', delete_info_item),
url(r'^infoscreen/create_external_image$', createExternalImageInfoItem), url(r'^infoscreen/create_external_image$', createExternalImageInfoItem),
url(r'^infoscreen/create_image$', create_image_item), url(r'^infoscreen/create_image$', create_image_item),
url(r'^infoscreen/create_abbitem$', createABBItem), url(r'^infoscreen/create_abbitem$', createABBItem),
url(r'^infoscreen/create_sossoitem$', createSossoItem), url(r'^infoscreen/create_sossoitem$', createSossoItem),
url(r'^infoscreen/create_hslitem$', createHslItem), url(r'^infoscreen/create_hslitem$', createHslItem),
url(r'^infoscreen/create_coffeeitem$', createCoffeeItem), url(r'^infoscreen/create_coffeeitem$', createCoffeeItem),
url(r'^infoscreen/admin$', infoscreen_admin), url(r'^infoscreen/admin$', infoscreen_admin),
url(r'^infoscreen/create_rotation$', create_rotation), url(r'^infoscreen/create_rotation$', create_rotation),
url(r'^infoscreen/delete_rotation/(?P<id>\d+)$', delete_rotation), url(r'^infoscreen/delete_rotation/(?P<id>\d+)$', delete_rotation),
url(r'^infoscreen/hsl_data$', CurrentHSLView), url(r'^infoscreen/hsl_data$', CurrentHSLView),
url(r'^infoscreen/hsl_data/settings$', hsl_timetable_settings), url(r'^infoscreen/hsl_data/settings$', hsl_timetable_settings),
#application #application
url(r'^application/$', application_index), url(r'^application/$', application_index),
url(r'^application/success$', application_success_index), url(r'^application/success$', application_success_index),
url(r'^favicon\.ico$', favicon_view), url(r'^favicon\.ico$', favicon_view),
# i18n default view for changing the active language # i18n default view for changing the active language
url(r'^i18n/', include('django.conf.urls.i18n')), url(r'^i18n/', include('django.conf.urls.i18n')),
] # staticfiles default view for static files in development
url(r'^static/(?P<path>.*)$', static_views.serve),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
+13
View File
@@ -0,0 +1,13 @@
{% load i18n %}
{% load static %}
{% load staticfiles %}
<link rel="stylesheet" href="{% static "css/footer.css" %}">
<div class="footer">
<form action="/i18n/setlang/" method="post"> {% csrf_token %}
<button id="fi-button" class="lang-button" name="language" value="fi"></button>
<button id="en-button" class="lang-button" name="language" value="en"></button>
</form>
<div>
{% trans "Copyright Aalto-yliopiston Sähköinsinöörikilta ry" %} {% now 'Y' %}
</div>
</div>