diff --git a/README.md b/README.md
index d07ef090..2ceab386 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,74 @@
Kipa
====
-Kipa- / Tupa2-ohjelmisto, jota käytetään partiotaitokilpailujen tuloslaskentaan.
+Kipa- / Tupa2-ohjelmisto, jota käytetään partiotaitokilpailujen tuloslaskentaan. https://www.facebook.com/Kisapalvelu/
-Asennusohjeet: https://sites.google.com/site/kisapalvelukipa/kaeytae-ja-asenna
+Asennusohjeet, Linux: docs/kipa asennusmuistio ubuntu 2017.txt
+Windows: https://sites.google.com/site/kisapalvelukipa/kaeytae-ja-asenna
Vanhat sivustot:
* https://sites.google.com/site/kisapalvelukipa/
* http://sourceforge.net/projects/tupa2/
+**Ohjelmaa kokeiltu:**
+
+* Django v.1.11
+* Python v.2.7
+* Chrome / Firefox
+
+**Tilanne: toimivat**
+
+* Kipa -sivusto
+* Admin -sivusto
+* static files
+* migrate
+* käyttäjäautentikointi (serverilaajuinen)
+* piirienväliset pisteet
+* dia2django
+* production serveri (nginx ja uwsgi)
+
+**Ei toimi tai ei testattu:**
+
+* testit (käyttäjähallinta ei mukana ja parametrit ei välity)
+* HTTPS tarvii sertifikaatit web-serverille
+* i18n
+* muut turhat härpäkkeet, joita en osaa käyttää
+
+**Tunnetut, ei toivotut ominaisuudet (known bugs):**
+
+* Jossain harvoissa tilanteissa, samassa sarjassa olevat samannimiset vartiot saavat samat tulokset, riippumatta syötteistä.
+* Samassa sarjassa olevat samannimiset tehtävät saavat toisetensa tulokset tulosten laskennassa.
+* Jos interpoloinnissa on vain yksi vartio ja nollasuorituksen kaavana max*muk, niin ainut vartio saa 0 pistettä.
+* Yhteen tehtävään voi syöttää vain yksi käyttäjä kerrallaan, joko varsinaisia tai tarkistussyötteitä.
+* Negatiivinen aikaväli antaa tulokseski nollan.
+* Aika -syötekentässä, E- tai H- syöte rikkoo ajan muotoilun, mutta korjaantuu tallentamalla 0 (tai joku) aika.
+* Tehtävän kaavassa desimaalipilkku kaataa laskennan (kaavan tarkastus ei aukoton).
+
+**Toivotut ominaisuudet:**
+
+* Python 3 ja Django 2 -tuki
+* Docker container
+* Manuaalin päivittäminen
+* Vartioiden import taulukosta / Kuksasta (tai muusta ilmoittautumisjärjestelmästä)
+* Tuloslaskennan huomiot, tuomarineuvoston kirjaukset, kilpailijoiden tarkastuspyynnöt tehtävien / syötteiden yhteyteen
+* Tietojen tallennus taustalla
+* Tietojen varmuuskopiointi ja palautus, eli Undo / muutosten logaus
+* Kisan tilanneseuranta
+* Piirit ja lippukunnat valita listasta, ei kirjoittamalla -> lyhenteet
+* Tulosten massavienti tikulle, eli yhdestä napista kaikki formaatit ja sarjat
+* Tulosten näyttämiseen tykillä valinta, mitkä sarjat + piirien tilanne ja onko useampi sarja samalla sivulla
+* Mahdollisuus liittää kuvia (videota?) tulosten tarkastuksen yhteyteen / kommentteihin
+* Tulosseuranta / tilanneseuranta netin yli kotiväelle
+
+**Muita ohjeita:**
+* Tietokantatiedostojen (.dia) katselemiseen ja muokkaamiseen voit käyttää ilmaista 'Dia Diagram Editor' -ohjelmaa. https://sourceforge.net/projects/dia-installer/ (asennus debian/ubuntu ympäristössä: sudo apt-get install dia )
+
+* Dia2django -skriptin käyttö:
+ * Mene omaan kipa kansioon ...kipa/web/tupa/
+ * Aja komento: python dia2django.py tietokanta.dia models.py
+ * Skripti päivittää ohjelman models.py tiedoston tietokantakentät annetun .dia tiedoston mukaiseksi.
+
Lisenssi
========
diff --git a/docs/kipa asennusmuistio ubuntu 2017.txt b/docs/kipa asennusmuistio ubuntu 2017.txt
new file mode 100644
index 00000000..ae04108b
--- /dev/null
+++ b/docs/kipa asennusmuistio ubuntu 2017.txt
@@ -0,0 +1,117 @@
+######################
+# Kipa kisapalveluohjelmiston asentaminen ubuntun kaltaisiin järjestelmiin.
+#
+# Kaikki risuaita-alkuiset rivit ovat kommentteja ja niitä ei tarvitse kirjoittaa komentoriville
+#
+# Asennusta kokeiltu:
+# Ubuntu 17.10, Linux mint 18.3 ja Ubuntu Gnome 16.04 käyttöjärjestelmillä
+# Muiden pakettien versiot:
+# python 2.7
+# django 1.11
+# uwsgi 2.0
+# nginx 1.10
+#
+# Alla on ohjeet Kipan asetamiseksi sekä yhdelle koneelle django testipalvelinta käyttäen, että lähiverkkopalvelimena toimivalle koneelle nginx -nettipalvelinohjelmistoa käyttäen.
+# Kaikkia laitteita, ohjelmien asennusta ja toimintaa kannattaa kokeilla jo ennen kisapaikalle siirtymistä, kiireisten ongelmatapausten välttämiseksi
+#
+# Huomautus: Minä en ole tietoturva-alan ammattilainen ja en vastaa sinun tiedostoistasi tai koneistasi näitä tai muita ohjeita noudattaessasi. Joitain ohjeita Django projektin tietoturvaan liittyen löydät esimerkiksi: https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/web_application_security
+#
+# Asennettuasi kipa -ohjelman, voit luoda järjestelmän pääkäyttäjän komennolla: python manage.py createsuperuser
+# pääkäyttäjän tunnuksilla voit kirjautua admin -sivulle http://127.0.0.1:8000/admin/ (jos käytät palvelinta verkossa muuta ip osoite) josta voit luoda muita käyttäjiä.
+#
+######################
+# Yhden tietokoneen asennus ilman verkkokäyttöä:
+
+# järjestelmän päivittäminen
+sudo apt-get update
+sudo apt-get upgrade
+
+# Käynnistä järjestelmä uudelleen
+
+# tarvittavien pakettien asentaminen / päivittäminen
+sudo apt-get install git python2.7-dev python-pip
+sudo -H python -m pip install --upgrade pip
+sudo -H pip install setuptools
+sudo -H pip install django==1.11
+
+# Käynnistä järjestelmä uudelleen
+
+# kipa -ohjelman haku github -sivulta (aja tämä komento siinä kansiossa johon haluat tiedostot ladattavan ja sinulla on oikeudet käyttää)
+git clone https://github.com/Pena86/kipa.git
+
+# siirrytään ohjelmakansioon ja käynnistetään testipalvelin
+cd kipa/web/
+python manage.py runserver
+
+
+#Luo itsellesi palvelimen pääkäyttäjätili komennolla: (sähköpostiosoitteen ei tarvi olla toimiva, mutta pitää olla oikeaa muotoa) Luomallasi tunnuksella voit kirjautua Kipa -järjestelmään, tuoda tai luoda kisan ja luoda muita käyttäjiä.
+python manage.py createsuperuser
+
+
+# mene selaimella osoitteeseen http://127.0.0.1:8000/ ja kipa-ohjelman pitäisi olla käytössä
+# ohjelman voi sulkea komentorivillä painamalla CONTROL-C
+#
+######################
+# Kipan asentaminen palvelinkoneelle usean koneen verkkokäyttöä varten
+#
+
+# järjestelmän päivittäminen
+sudo apt-get update
+sudo apt-get upgrade
+
+# Käynnistä järjestelmä uudelleen
+
+# tarvittavien pakettien asentaminen / päivittäminen
+sudo apt-get install git python2.7-dev python-pip nginx
+sudo -H python -m pip install --upgrade pip
+sudo -H pip install setuptools
+sudo -H pip install uwsgi django==1.11
+
+# lisätään käyttäjä www-data ryhmään dialout
+sudo adduser www-data dialout
+
+# Käynnistä järjestelmä uudelleen
+
+# siirrytään hakemistoon (jos aiot ajaa kipa-ohjelmaa muusta hakemistosta, sinun pitää muokata uusi hakemistopolku ainakin kipa_nginx.conf -tiedostoon)
+cd /var/www/
+# ladataan kipa -ohjelmisto githubista
+sudo git clone https://github.com/Pena86/kipa.git
+# muutetaan kansion kipa ja sen alikansioiden ja tiedostojen omistajaksi ja ryhmäksi www-data
+sudo chown -R www-data:www-data kipa/
+
+# linkitetään kipa_nginx.conf -tiedosto nginx -ohjelman käytettäväksi
+sudo ln -s /var/www/kipa/web/kipa_nginx.conf /etc/nginx/sites-enabled/kipa_nginx.conf
+# käynnistetään nginx -ohjelma uudestaan
+sudo /etc/init.d/nginx restart
+
+# siirrytään kansioon ja ajetaan uwsgi -ohjelma (käyttäjänä www-data), joka suorittaa django -projektin tiedostoja nettipalvelinohjelmiston niitä pyytäessä
+cd /var/www/kipa/web/
+sudo -H -u www-data uwsgi --ini kipa_uwsgi.ini
+
+# mene selaimella osoitteeseen http://127.0.0.1/ ja kipa-ohjelman pitäisi olla käytössä (jos muutat asetustiedostoihin palvelinkoneen ip-osoitten, käytä sitä myös paikallisella koneella)
+# ohjelman voi sulkea komentorivillä painamalla CONTROL-C
+
+# Että voisit käyttää kipa -ohjelmaa muilla lähiverkon koneilla, tulee sinun vielä tehdä pari asiaa:
+# - Selvitä palvelinkoneen ip -osoite esim. koneen tai lähiverkkoreitittimesi asetuksista
+# - Muuta palvelinkoneen ip -osoite /var/www/kipa/web/kipa_nginx.conf -tiedoston server_name -kohtaan ja käynnistämään nginx -palvelinohjelman uudestaan komennolla sudo /etc/init.d/nginx restart
+# - Lisää palvelinkoneen ip -osoite /var/www/kipa/web/settings.py -tiedoston ALLOWED_HOSTS -kohtaan ja käynnistä uwsgi -komento (yltä) uudestaan
+# - Saatat tarvita asettaa lähiverkkoreitittimeesi portin- tai ip -osoitteen reitityksen palvelinkoneen osoitteeseen
+# nyt myös lähiverkon koneilta pitäisi päästä kipa -ohjelmaan kirjoittamalla selainohjelman osoiteriville palvelinkoneen ip-osoite.
+
+
+#Luo itsellesi palvelimen pääkäyttäjätili komennolla: (sähköpostiosoitteen ei tarvi olla toimiva, mutta pitää olla oikeaa muotoa) Luomallasi tunnuksella voit kirjautua Kipa -järjestelmään, tuoda tai luoda kisan ja luoda muita käyttäjiä.
+python manage.py createsuperuser
+
+
+# seuraavilla komennoilla saat lisää tietoa ja voit hallita nginx -ohjelman toimintaa
+sudo /etc/init.d/nginx status
+sudo /etc/init.d/nginx stop
+sudo /etc/init.d/nginx start
+nano /var/log/nginx/error.log (painamalla CONTROL-X suljet editorin)
+nano /var/log/nginx/access.log (painamalla CONTROL-X suljet editorin)
+
+# Django testipalvelimen käynnistäminen
+cd /var/www/kipa/web/
+sudo -H -u www-data python manage.py runserver
+# mene selaimella osoitteeseen http://127.0.0.1:8000/ ja kipa-ohjelman pitäisi olla käytössä
+# ohjelman voi sulkea komentorivillä painamalla CONTROL-C
diff --git a/docs/tietokanta2015.png b/docs/tietokanta2015.png
new file mode 100644
index 00000000..64f06e96
Binary files /dev/null and b/docs/tietokanta2015.png differ
diff --git a/docs/views_templates.txt b/docs/views_templates.txt
new file mode 100644
index 00000000..fc358fbc
--- /dev/null
+++ b/docs/views_templates.txt
@@ -0,0 +1,113 @@
+Mitä templateja kukin näkymä käyttää:
+
+Umpihanki » Etusivu
+
+
+
+
+
+#### Suoritusten syöttö ####
+
+Umpihanki » Syötä tuloksia (sekä) Syötä tuloksia - tarkistussyötteet
+
+
+
+ jokaiselle sarjalle
+
+Umpihanki » Syötä tuloksia » (tehtävä)
+
+
+
+
+
+Umpihanki » Tuomarineuvoston antamien tulosten määritys
+
+
+
+ jokaiselle sarjalle
+
+
+
+#### Tulokset ####
+
+Umpihanki » Tulokset sarjoittain (sarjan tulokset) (sekä) (tulosta tuloksia) (sekä) (tulokset CVS-tiedostoon)
+
+
+
+
+Umpihanki » Tulokset sarjoittain » (sarja)
+
+
+
+
+(tulosta tuloksia)
+
+
+(heijasta tuloksia)
+
+
+Umpihanki » Laskennan tilanne
+
+
+
+
+
+#### Kisan määritykset ###
+
+Umpihanki » Määritä kisa
+
+
+
+
+
+Umpihanki » Määritä vartiot
+
+
+
+
+
+
+Umpihanki » Muokkaa tehtävää
+
+
+
+ (jokaiselle sarjalle)
+
+
+Umpihanki » Muokkaa tehtävää » (tehtävä)
+
+
+
+
+ + templates/tupa/forms/...
+
+Umpihanki » Testituloksien määritys
+
+
+
+
+ (jokaiselle sarjalle)
+
+
+#### Ylläpito ####
+
+(listaa kaikki kisat)
+
+
+
+(tallenna kisa)
+
+Umpihanki » Korvaa kisa tiedostosta
+
+
+
+
+
+Umpihanki » Poista kisa
+
+
+
+
+
+#### Apua ####
+(ohje)
diff --git a/web/fixtures/tests/Piiritulos_tasapisteet_tietokanta.xml b/web/fixtures/tests/Piiritulos_tasapisteet_tietokanta.xml
new file mode 100644
index 00000000..b7c93e0f
--- /dev/null
+++ b/web/fixtures/tests/Piiritulos_tasapisteet_tietokanta.xml
@@ -0,0 +1,703 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/web/kipa_nginx.conf b/web/kipa_nginx.conf
new file mode 100644
index 00000000..323392d9
--- /dev/null
+++ b/web/kipa_nginx.conf
@@ -0,0 +1,35 @@
+# mysite_nginx.conf
+
+# the upstream component nginx needs to connect to
+upstream django {
+ server unix:///tmp/kipa.sock; # for a file socket
+ # server 127.0.0.1:8001; # for a web port socket (we'll use this first)
+}
+
+# configuration of the server
+server {
+ # the port your site will be served on
+ listen 80;
+ # the domain name it will serve for
+ server_name 127.0.0.1 # substitute your machine's IP address or FQDN, whitespace separated
+ charset utf-8;
+
+ # max upload size
+ client_max_body_size 75M; # adjust to taste
+
+ # Django media
+ location /kipamedia {
+ alias /var/www/kipa/web/media; # your Django project's media files - amend as required
+ }
+
+ #location /static {
+ # alias /var/www/kipa/web/media; # your Django project's static files - amend as required
+ #}
+
+ # Finally, send all non-media requests to the Django server.
+ location / {
+ #location /kipa { # Use this instead, if redirect not in use
+ uwsgi_pass django;
+ include /var/www/kipa/web/uwsgi_params; # the uwsgi_params file you installed
+ }
+}
diff --git a/web/kipa_uwsgi.ini b/web/kipa_uwsgi.ini
new file mode 100644
index 00000000..f1e163d4
--- /dev/null
+++ b/web/kipa_uwsgi.ini
@@ -0,0 +1,52 @@
+# mysite_uwsgi.ini file
+[uwsgi]
+
+# the user id of the process once it’s started (requires elevated premissions to run)
+#uid = www-data
+# the group id of the process once it’s started
+#gid = www-data
+
+# Django-related settings
+# the base directory (full path)
+chdir = %d
+# Django's wsgi file
+module = wsgi:application
+# the virtualenv (full path)
+if-env = VIRTUAL_ENV
+# En testannut toimiko tämä määrits näin
+#print = Your virtualenv is %(_)
+virtualenv = %(_)
+endif =
+
+# process-related settings
+# master
+master = true
+# maximum number of worker processes
+processes = 3
+# the socket (use the full path to be safe
+socket = /tmp/kipa.sock
+# ... with appropriate permissions - may be needed
+chmod-socket = 666
+# clear environment on exit
+vacuum = true
+
+# Vaatii ao.kansion luonnin ja oikeudet
+#emperor = /etc/uwsgi/vassals
+
+# create a pidfile
+#safe-pidfile = /var/run/kipa-master.pid
+
+harakiri = 60 # respawn processes taking more than 20 seconds
+#limit-as = 128 # limit the project to 128 MB
+max-requests = 5000 # respawn processes after serving 5000 requests
+# background the process & log
+# Vaatii ao.kansion luonnin ja oikeudet
+#daemonize = /var/log/uwsgi/kipa.log
+
+# Log file - kääntää outputin terminaalista tiedostoon
+#logto = /var/log/uwsgi/kipa.log
+
+
+pythonpath = /usr/lib/python2.7/dist-packages/
+#nosite = true
+
diff --git a/web/manage.py b/web/manage.py
index 5660e18f..b1a4e7c8 100755
--- a/web/manage.py
+++ b/web/manage.py
@@ -1,19 +1,19 @@
#!/usr/bin/python2
-import sys
+import sys, os
from tupa.dia2django import luoMallienRungot
-from django.core.management import execute_manager
-#try:
-import settings #
-import legacySettings # Legacy settings for exporting an legacy db
-#except ImportError:
-#import sys
-# sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
-# sys.exit(1)
+
+#import settings #
+#import legacySettings # Legacy settings for exporting an legacy db
+
if __name__ == "__main__":
- set=settings
- if len(sys.argv) :
- if sys.argv[1] == 'dumpdata':
- set=legacySettings
- execute_manager(set)
+ if len(sys.argv) and sys.argv[1] == 'dumpdata':
+ del sys.argv[1]
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "legacySettings")
+ else:
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings_dev")
+
+ from django.core.management import execute_from_command_line
+ execute_from_command_line(sys.argv)
+
diff --git a/web/media/kipa.css b/web/media/kipa.css
index f7355f16..f736546e 100644
--- a/web/media/kipa.css
+++ b/web/media/kipa.css
@@ -194,13 +194,27 @@ tr .odd:hover
background:#FF9;
}
+#kisataulukko tr td {
+ padding: 7px;
+ padding-right: 15px;
+}
+
+#kisataulukko a {
+ background: transparent url("/kipamedia/arrow_blue.gif") no-repeat scroll 0px 1px;
+ padding-left: 15px;
+}
+
+#kisataulukko tr:nth-child(even) {
+ background-color: #faffda;
+}
+
#taulukko th
{
font-size:11px;
text-align:left;
font-weight:bold;
color:#fff;
- background-color:#222;
+ background-color:#305520; /*#222;*/
/* #5169b3;*/
padding:3px; /* NOTE: th padding must be set explicitly in order to support sticky table headers in IE */
}
@@ -236,7 +250,7 @@ tr .odd:hover
font-size:x-small;
font-weight:bold;
color:#fff;
- background-color:#222;
+ background-color:#305520;/*#222;*/
/* #5169b3; oli #b9c9fe; */
vertical-align:top;
padding:5px;
@@ -249,6 +263,20 @@ tr .odd:hover
background-color:#CCC;
}
+
+#tehtava-tila
+{
+ background-color:#305520;
+ border:0;
+ padding:2;
+ color:#fff;
+}
+
+#tehtava-tila a
+{
+ color:#00a9ff;
+}
+
#tehtava-taulukko
{
font-family:"Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
@@ -370,13 +398,32 @@ tr .odd:hover
font-family:Verdana,"Lucida Grande",Lucida,sans-serif;
}
+#login {
+ float:right;
+ margin-top:-4px;
+ margin-bottom:0;
+ padding-bottom:0;
+ height:18px;
+}
+
+#messages {
+ float:right;
+ position: relative;
+ background-color: #EEE;
+ margin: auto;
+ padding-left: 5px;
+ padding-right: 5px;
+ border: 3px solid #ccc;
+ width: 400;
+}
+
#breadcrumbs
{
background:url(/kipamedia/green-bar.png);
height:15px;
margin-bottom:-1px;
padding:3px 0 3px 8px;
- position:relative;
+ /*position:relative;*/
z-index:2;
color:#5D5D5D;
font-size:11px;
@@ -439,27 +486,22 @@ a.sitetoolbarnavactive:hover { color: #0d3b65; border: 1px solid #486B8A; paddin
.aloittamatta {
background: #ffff88;
- width:150px;
}
.osittain {
background: #fc3;
- width:150px;
}
.syotetty {
background: #b9f73e;
- width:150px;
}
.tarkistettu {
background: #679b00;
- width:150px;
}
.virhe {
background: #ff4f00;
- width:150px;
}
#tulostaulukko_screen {
@@ -473,6 +515,27 @@ a.sitetoolbarnavactive:hover { color: #0d3b65; border: 1px solid #486B8A; paddin
#tulostaulukko_screen td {
vertical-align:top;
+ padding-right:10px;
+}
+
+#tulostaulukko_screen .odd {
+ background: #faffda;
+}
+
+#tulostaulukko_screen .even {
+
+}
+
+#vartiot td:first-child {
+ font-weight: bold;
+}
+
+.right {
+ text-align: right;
+}
+
+.left {
+ text-align: left;
}
#sarjakohtaiset_tulokset td
@@ -498,3 +561,13 @@ td.th_erotin {
.capitalize {text-transform:capitalize;}
+.jgrowl-{}
+.jgrowl-debug{}
+.jgrowl-info{}
+.jgrowl-success{}
+.jgrowl-warning{
+ background: #300!important;
+}
+.jgrowl-error{
+ background: #300!important;
+}
diff --git a/web/media/static.css b/web/media/static.css
index db82cbc4..84d05703 100644
--- a/web/media/static.css
+++ b/web/media/static.css
@@ -147,7 +147,7 @@ font: menu;
{
padding:10px 0;
/* CC padding */
- width:100%;
+/* width:100%; */
}
#left
diff --git a/web/requiremets.txt b/web/requiremets.txt
new file mode 100644
index 00000000..0dbf24c8
--- /dev/null
+++ b/web/requiremets.txt
@@ -0,0 +1,2 @@
+Django==1.11
+pytz==2019.3
diff --git a/web/settings.py b/web/settings.py
index ae068094..c1b038f0 100644
--- a/web/settings.py
+++ b/web/settings.py
@@ -1,15 +1,14 @@
+# encoding: utf-8
import os
-hakemisto=os.path.normpath(os.path.dirname(__file__))
-tarkistus= os.getcwd()
+hakemisto = os.path.normpath(os.path.dirname(__file__))
+tarkistus = os.getcwd()
-DEBUG = True
-TEMPLATE_DEBUG = DEBUG
+DEBUG = False
RECORDING=False
if not hakemisto == tarkistus :
#Viittaisi siihen etta kyseessa on apachen alta toimiva, joten pakotetaan debugit pois
DEBUG=False
- TEMPLATE_DEBUG = False
ADMINS = (
#('frans korhonen', 'frans.korhonen@gmail.com'),
@@ -17,12 +16,21 @@
MANAGERS = ADMINS
+'''
DATABASE_ENGINE = 'django.db.backends.sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = hakemisto + '/tupa.db' # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
+'''
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.sqlite3',
+ 'NAME': os.path.join(hakemisto, 'tupa.db'),
+ }
+}
+
# Cache
TAUSTALASKENTA = False # Tulokset lasketaan taustalla (Vaatii toimiakseen tomivan cachekokoonpanon)
@@ -39,14 +47,14 @@
TIME_ZONE = 'Europe/Helsinki'
# Language code for this installation.
-LANGUAGE_CODE = 'fi-FI'
+LANGUAGE_CODE = 'en-US'
SITE_ID = 1
# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
-USE_I18N = True
-
+USE_I18N = False
+'''
# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/"
MEDIA_ROOT = hakemisto + "/media/"
@@ -56,7 +64,7 @@
# URL that handles the media served from MEDIA_ROOT.
# Example: "http://media.lawrence.com"
MEDIA_URL = ''
-
+'''
FILE_UPLOAD_HANDLERS= ("django.core.files.uploadhandler.MemoryFileUploadHandler",
"django.core.files.uploadhandler.TemporaryFileUploadHandler",)
@@ -68,41 +76,73 @@
# Make this unique, and don't share it with anybody.
SECRET_KEY = 'shbtq($_^om(xep=5f97k2+ntb3!cqn+)%8r#s6udzqnhj$5p6'
+'''
# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.load_template_source',
'django.template.loaders.app_directories.load_template_source',
# 'django.template.loaders.eggs.load_template_source',
)
-
+'''
+'''
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
)
-
+'''
ROOT_URLCONF = 'urls'
+'''
TEMPLATE_DIRS = (
hakemisto + '/templates',
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
+'''
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.messages',
'django.contrib.sessions',
- 'django.contrib.sites',
+ #'django.contrib.sites',
'tupa',
+ 'user_management',
'django.contrib.admin',
#'django.contrib.formtools',
'django.template',
- 'django.contrib.databrowse'
+ #'django.contrib.databrowse'
+ 'django.contrib.staticfiles',
+]
+MIDDLEWARE = [
+ 'django.middleware.security.SecurityMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
+
+TEMPLATES = [
+ {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'DIRS': [hakemisto + '/templates'],
+ 'APP_DIRS': True,
+ 'OPTIONS': {
+ 'debug': DEBUG,
+ 'context_processors': [
+ 'django.template.context_processors.debug',
+ 'django.template.context_processors.request',
+ 'django.contrib.auth.context_processors.auth',
+ 'django.contrib.messages.context_processors.messages',
+ ],
+ },
+ },
]
LOGIN_URL = ('/kipa/')
@@ -110,3 +150,42 @@
TEST_RUNNER = ('tupa.tests.run_one_fixture')
+
+STATIC_URL = '/kipamedia/'
+STATIC_ROOT = os.path.join(hakemisto, "media")
+'''
+STATICFILES_DIRS = [
+ os.path.join(hakemisto, "media"),
+]
+'''
+#ALLOWED_HOSTS = ['127.0.0.1'] # Määritä tähän kaikki palvelimesi IP-osoitteet pilkulla erotettuna
+ALLOWED_HOSTS = ['*'] # Salli kaikki yhteydet
+
+WSGI_APPLICATION = 'wsgi.application'
+
+DATA_UPLOAD_MAX_NUMBER_FIELDS = None # maaritaVartiot floodaa GET/POST:in
+
+# Password validation
+# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators
+# Ottamalla käyttöön salasanan laatusäännöt, järjestelmä pakottaa käyttäjät käyttämään turvallisempia salasanoja
+'''
+AUTH_PASSWORD_VALIDATORS = [
+ {
+ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+ },
+]
+'''
+#HTTPS is not availible on devserver
+#HTTPS would need sertificates to the web server program
+#SESSION_COOKIE_SECURE = True
+#CSRF_COOKIE_SECURE = True
+#SECURE_SSL_REDIRECT = True
diff --git a/web/settings_dev.py b/web/settings_dev.py
new file mode 100644
index 00000000..51a43196
--- /dev/null
+++ b/web/settings_dev.py
@@ -0,0 +1,45 @@
+# encoding: utf-8
+from settings import *
+
+#Django testiserverillä otetaan käyttöön myös seuraavat asetukset:
+# python -Wall manage.py runserver
+
+
+DEBUG = True
+#RECORDING=False
+
+'''
+# Cache
+TAUSTALASKENTA = False # Tulokset lasketaan taustalla (Vaatii toimiakseen tomivan cachekokoonpanon)
+CACHE_TULOKSET = False # Etsitaanko tuloksia cachesta
+CACHE_TULOKSET_TIME = 1800 # Tuloscachen voimassaoloaika viimeisesta nayttokerrasta. [s]
+#CACHE_BACKEND = 'locmem:///' # Cache system for developement
+#CACHE_BACKEND = 'locmem:///' # Cache system for developement
+CACHE_BACKEND = 'db://tupa_tulos_cache'
+if not CACHE_TULOKSET :
+ CACHE_BACKEND = 'dummy:///' # No cache in use
+ TAUSTALASENTA = False
+'''
+INSTALLED_APPS += [
+
+ #'debug_toolbar', #https://django-debug-toolbar.readthedocs.io/en/stable/installation.html
+]
+
+MIDDLEWARE += [
+
+ #'debug_toolbar.middleware.DebugToolbarMiddleware', #https://django-debug-toolbar.readthedocs.io/en/stable/installation.html
+]
+
+STATIC_ROOT = None
+
+STATICFILES_DIRS = [
+ os.path.join(hakemisto, "media"),
+]
+
+INTERNAL_IPS = [
+ '127.0.0.1'
+]
+
+SESSION_COOKIE_SECURE = False
+CSRF_COOKIE_SECURE = False
+SECURE_SSL_REDIRECT = False
diff --git a/web/templates/tupa/base.html b/web/templates/tupa/base.html
index d657ff3d..44952871 100644
--- a/web/templates/tupa/base.html
+++ b/web/templates/tupa/base.html
@@ -6,13 +6,13 @@
@@ -35,19 +35,7 @@
document.getElementById(id).style.display = visibility;
}
-{% if talletettu %}
-
-
-{% endif %}
-
+{% include "tupa/messages.html" %}
@@ -56,19 +44,20 @@
-
@@ -76,15 +65,19 @@
-
diff --git a/web/templates/tupa/base_riisuttu.html b/web/templates/tupa/base_riisuttu.html
index 798a9a90..ef83dd62 100644
--- a/web/templates/tupa/base_riisuttu.html
+++ b/web/templates/tupa/base_riisuttu.html
@@ -19,18 +19,7 @@
document.getElementById(id).style.display = visibility;
}
-{% if talletettu %}
-
-
-{% endif %}
+{% include "tupa/messages.html" %}
diff --git a/web/templates/tupa/forms/aika_vali.html b/web/templates/tupa/forms/aika_vali.html
index c17abc66..ae1de9c4 100644
--- a/web/templates/tupa/forms/aika_vali.html
+++ b/web/templates/tupa/forms/aika_vali.html
@@ -1,9 +1,8 @@
-