diff --git a/web/templates/tupa/maaritaKisa.html b/web/templates/tupa/maaritaKisa.html
index 00b672ac..a1d130eb 100644
--- a/web/templates/tupa/maaritaKisa.html
+++ b/web/templates/tupa/maaritaKisa.html
@@ -12,9 +12,7 @@
Sarjat:
{{ s.errors}}
{{ s }}
{% endfor %}
-
-
-
+ {% include "tupa/tallenna.html" %}
{% endblock %}
diff --git a/web/templates/tupa/maaritaVartiot.html b/web/templates/tupa/maaritaVartiot.html
index 6df9a9db..29508719 100644
--- a/web/templates/tupa/maaritaVartiot.html
+++ b/web/templates/tupa/maaritaVartiot.html
@@ -9,11 +9,9 @@ Valitse sarja ja syötä vartiot
-
-
+
+ {% include "tupa/tallenna.html" %}
{% else %}
Ei määriteltyjä sarjoja.
diff --git a/web/templates/tupa/maarita_tehtava.html b/web/templates/tupa/maarita_tehtava.html
index 421b2350..8f145fba 100755
--- a/web/templates/tupa/maarita_tehtava.html
+++ b/web/templates/tupa/maarita_tehtava.html
@@ -14,13 +14,19 @@ Uuden Tehtävän määritys
{{ tehtavaForm }}
+ Osapisteiden Kaavat:
+ {{ kaavaFormit.management_form }}
+ {% for kaava in kaavaFormit.forms %}
+ {{ kaava }}
+ {% endfor %}
+
Vartiokohtaiset syötteet:
{{ maariteFormit.management_form }}
{% for maarite in maariteFormit.forms %}
{{ maarite }}
{% endfor %}
-
-
+
+ {% include "tupa/tallenna.html" %}
{% endblock %}
diff --git a/web/templates/tupa/syota_tehtava.html b/web/templates/tupa/syota_tehtava.html
index 429201a1..df2bf3d1 100755
--- a/web/templates/tupa/syota_tehtava.html
+++ b/web/templates/tupa/syota_tehtava.html
@@ -66,7 +66,7 @@ Tehtävä: {{tehtava.nimi}}
-
+ {% include "tupa/tallenna.html" %}
{% endblock %}
diff --git a/web/tupa.db b/web/tupa.db
index 2ed712f4..6c9e50ef 100755
Binary files a/web/tupa.db and b/web/tupa.db differ
diff --git a/web/tupa/formit.py b/web/tupa/formit.py
index 28e2f1e9..413dd5f9 100644
--- a/web/tupa/formit.py
+++ b/web/tupa/formit.py
@@ -10,12 +10,34 @@
class TehtavaForm(ModelForm):
class Meta:
model = Tehtava
- exclude = ('sarja',)
+ fields = ('nimi', 'jarjestysnro','kaava')
+
class PisteSyoteForm(ModelForm):
class Meta:
model = Syote
+def luoKaavaFormit(tehtavalle=None,post=None,tyhjia=0):
+ KaavaFormSet = modelformset_factory( OsapisteKaava,extra=tyhjia,can_delete=True,exclude=('tehtava',))
+ return KaavaFormSet(post,queryset=OsapisteKaava.objects.filter(tehtava=tehtavalle) )
+
+def luoMaariteFormit(tehtavalle=None,post=None,tyhjia=0):
+ MaariteFormSet = modelformset_factory( SyoteMaarite,extra=tyhjia,can_delete=True,exclude=('tehtava',))
+ return MaariteFormSet(post,queryset=SyoteMaarite.objects.filter(tehtava=tehtavalle) )
+
+def luoVartioFormit(sarjalle,post=None,tyhjia=0):
+ VartioFormSet = modelformset_factory( Vartio,fields=('nro', 'nimi'),extra=tyhjia,can_delete=True)
+ return VartioFormSet(post,queryset=Vartio.objects.filter(sarja=sarjalle),prefix=sarjalle.nimi )
+
+class KisaForm(ModelForm):
+ class Meta:
+ model = Kisa
+
+def luoSarjaFormit(kisalle,post=None,tyhjia=0):
+ SarjaFormSet = modelformset_factory( Sarja,exclude=('kisa',),extra=tyhjia,can_delete=True )
+ formit=SarjaFormSet(post, queryset=Sarja.objects.filter(kisa=kisalle) )
+ return formit
+
class AikaSyoteForm(forms.Form) :
h = forms.IntegerField(required=False,widget=forms.TextInput(attrs={'size':'1'}))
min = forms.IntegerField(required=False,widget=forms.TextInput(attrs={'size':'1'}))
@@ -73,20 +95,3 @@ def save(self) :
self.syote.delete()
self.syote = None
-def luoMaariteFormit(tehtavalle=None,post=None,tyhjia=0):
- MaariteFormSet = modelformset_factory( SyoteMaarite,extra=tyhjia,can_delete=True,exclude=('tehtava',))
- return MaariteFormSet(post,queryset=SyoteMaarite.objects.filter(tehtava=tehtavalle) )
-
-def luoVartioFormit(sarjalle,post=None,tyhjia=0):
- VartioFormSet = modelformset_factory( Vartio,fields=('nro', 'nimi'),extra=tyhjia,can_delete=True)
- return VartioFormSet(post,queryset=Vartio.objects.filter(sarja=sarjalle),prefix=sarjalle.nimi )
-
-class KisaForm(ModelForm):
- class Meta:
- model = Kisa
-
-def luoSarjaFormit(kisalle,post=None,tyhjia=0):
- SarjaFormSet = modelformset_factory( Sarja,exclude=('kisa',),extra=tyhjia,can_delete=True )
- formit=SarjaFormSet(post, queryset=Sarja.objects.filter(kisa=kisalle) )
- return formit
-
diff --git a/web/tupa/models.py b/web/tupa/models.py
index f1b95955..aa60d8a0 100644
--- a/web/tupa/models.py
+++ b/web/tupa/models.py
@@ -113,7 +113,7 @@ class Tehtava(models.Model) :
tehtavaryhma = models.CharField(max_length=255, blank=True )
tehtavaluokka = models.CharField(max_length=255, blank=True )
rastikasky = models.TextField(blank=True )
- jarjestysnro = models.IntegerField(blank=True, null=True )
+ jarjestysnro = models.IntegerField()
kaava = models.CharField(max_length=255)
sarja = models.ForeignKey(Sarja)
@@ -193,10 +193,15 @@ class Meta:
verbose_name_plural = "Radat"
class SyoteMaarite(models.Model) :
+ TYYPPI_VAIHTOEHDOT = (
+ ('aika', 'aika'),
+ ('piste', 'piste'),
+ )
+
#gen_dia_class SyoteMaarite
nimi = models.CharField(max_length=255)
- tyyppi = models.CharField(max_length=255)
+ tyyppi = models.CharField(max_length=255, choices=TYYPPI_VAIHTOEHDOT )
kali_vihje = models.CharField(max_length=255, blank=True , null=True )
tehtava = models.ForeignKey(Tehtava)
@@ -240,4 +245,19 @@ class Meta:
verbose_name_plural = "Tuomarineuvoston tulokset"
+class OsapisteKaava(models.Model) :
+ #gen_dia_class OsapisteKaava
+
+ kaava = models.CharField(max_length=255)
+ tehtava = models.ForeignKey(Tehtava)
+
+ #end_dia_class
+ def __str__(self) :
+ return self.kaava
+ class Admin:
+ pass
+ class Meta:
+ verbose_name_plural = "Osapisteiden kaavat"
+
+
diff --git a/web/tupa/tietokanta.dia b/web/tupa/tietokanta.dia
index 9ad47b6b..293e38de 100644
Binary files a/web/tupa/tietokanta.dia and b/web/tupa/tietokanta.dia differ
diff --git a/web/tupa/views.py b/web/tupa/views.py
index e40bb32b..fabed2bf 100644
--- a/web/tupa/views.py
+++ b/web/tupa/views.py
@@ -92,7 +92,7 @@ def maaritaVartiot(request,kisa_nimi):
return HttpResponseRedirect(reverse('web.tupa.views.maaritaVartiot', args=(kisa_nimi,)))
else:
return render_to_response('tupa/maaritaVartiot.html', { 'sarja_vartiot' : sarjaVartiot })
-
+"""
def maaritaUusiTehtava(request, kisa_nimi, sarja_id) :
kisa = get_object_or_404(Kisa, nimi=kisa_nimi)
sarja = get_object_or_404(Sarja, id=sarja_id)
@@ -120,17 +120,29 @@ def maaritaUusiTehtava(request, kisa_nimi, sarja_id) :
'tehtavaForm' : tehtavaForm ,
'maariteFormit' : maariteFormit })
+"""
+
-def maaritaTehtava(request, kisa_nimi, tehtava_id):
- tehtava = get_object_or_404(Tehtava, id=tehtava_id)
- sarja= tehtava.sarja
+def maaritaTehtava(request, kisa_nimi, tehtava_id=None, sarja_id=None):
+ tehtava = None
+ sarja = None
+ if tehtava_id:
+ tehtava=get_object_or_404(Tehtava, id=tehtava_id)
+ sarja= tehtava.sarja
+ else :
+ sarja=get_object_or_404(Sarja, id=sarja_id)
- maaritteet = SyoteMaarite.objects.filter( tehtava=tehtava )
- maariteFormit = []
posti=None
if request.method == 'POST':
posti=request.POST
+ # Tehtävä
tehtavaForm = TehtavaForm( posti,instance=tehtava )
+ if tehtavaForm.is_valid() :
+ tehtava=tehtavaForm.save(commit=False)
+ tehtava.sarja=sarja
+ tehtava.save()
+
+ # Määritteet
maariteFormit=luoMaariteFormit(tehtava,posti,tyhjia=3)
if maariteFormit.is_valid() :
instances = maariteFormit.save(commit=False)
@@ -139,17 +151,20 @@ def maaritaTehtava(request, kisa_nimi, tehtava_id):
instance.save()
maariteFormit=luoMaariteFormit(tehtava,tyhjia=3)
- if tehtavaForm.is_valid() :
- tehtava=tehtavaForm.save(commit=False)
- tehtava.sarja=sarja
- tehtava.save()
-
- if not tehtava:
- return HttpResponseRedirect(reverse('web.tupa.views.maaritaValitseTehtava', args=(kisa_nimi, )))
- elif posti and tehtavaForm.is_valid() and maariteFormit.is_valid() :
- return HttpResponseRedirect(reverse('web.tupa.views.maaritaTehtava', args=(kisa_nimi,tehtava_id, )))
+ # Osapisteiden kaavat:
+ """kaavaFormit = luoKaavaFormit(tehtava,posti,tyhjia=3)
+ if kaavaFormit.is_valid() :
+ kaavat = kaavaFormit.save(commit=False)
+ for kaava in kaavat:
+ kaava.tehtava=tehtava
+ kaava.save()
+ """
+ kaavaFormit=None
+
+ if posti and tehtavaForm.is_valid() :
+ return HttpResponseRedirect("/tupa/"+kisa_nimi+"/maarita/tehtava/"+str(tehtava.id)+'/' )
else:
- return render_to_response('tupa/maarita_tehtava.html', { 'tehtava' : tehtava ,'tehtavaForm' : tehtavaForm , 'maariteFormit' : maariteFormit })
+ return render_to_response('tupa/maarita_tehtava.html', { 'tehtava' : tehtava ,'tehtavaForm' : tehtavaForm , 'maariteFormit' : maariteFormit , 'kaavaFormit' : kaavaFormit })
def syotaKisa(request, kisa_nimi):
sarjat = Sarja.objects.filter(kisa__nimi=kisa_nimi)
@@ -208,43 +223,3 @@ def sarja(request,sarja_id) :
def piirit(request,kisa_nimi) :
return HttpResponse(kisa_nimi + " PIIRIN TULOSTUS" )
-#tulosten syotto
-def syotto(request,sarja_id):
- request.POST["pisteet"]
- return render_to_response('tupa/syotto.html', {})
-
-#tulosten syotto rumalla tavalla
-def lisaa_syote(request):
-
- SyoteForm = forms.models.form_for_model(Kisa)
- t = django.template.loader.get_template('tupa/syota666.html')
- c = None
- if request.method == 'POST':
-
- form = SyoteForm(request.POST)
-
- if form.is_valid():
-
- entry = form.save(commit=False)
- entry.owner = request.user
- entry.save()
-
- form = SyoteForm()
-
-
- c = Context({
- 'form': form,
- })
- c.push()
- return HttpResponse(t.render(c))
-
- else:
-
- form = SyoteForm()
-
- c = Context({
- 'form': form,
- })
-
- return HttpResponse(t.render(c))
-
diff --git a/web/tupa/views.pyc b/web/tupa/views.pyc
index c06d3fdc..455602de 100644
Binary files a/web/tupa/views.pyc and b/web/tupa/views.pyc differ
diff --git a/web/urls.py b/web/urls.py
index b9a05bc6..ecce0315 100644
--- a/web/urls.py
+++ b/web/urls.py
@@ -6,11 +6,10 @@
urlpatterns = patterns('web.tupa.views.',
(r'^tupa/$', 'index'),
(r'^tupa/admin/(.*)', admin.site.root ),
- (r'^tupa/lisaasyote/$', 'lisaa_syote'),
(r'^tupa/(?P\w+)/$', 'kisa'),
(r'^tupa/(?P\w+)/maarita/$', 'maaritaKisa'),
(r'^tupa/(?P\w+)/maarita/tehtava/$', 'maaritaValitseTehtava'),
- (r'^tupa/(?P\w+)/maarita/tehtava/uusi/sarja/(?P\d+)/$', 'maaritaUusiTehtava'),
+ (r'^tupa/(?P\w+)/maarita/tehtava/uusi/sarja/(?P\d+)/$', 'maaritaTehtava'),
(r'^tupa/(?P\w+)/maarita/tehtava/(?P\d+)/$', 'maaritaTehtava'),
(r'^tupa/(?P\w+)/maarita/vartiot/', 'maaritaVartiot'),
(r'^tupa/(?P\w+)/syota/$', 'syotaKisa'),