summaryrefslogtreecommitdiffstats
path: root/core/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/forms.py')
-rw-r--r--core/forms.py44
1 files changed, 42 insertions, 2 deletions
diff --git a/core/forms.py b/core/forms.py
index 929c4e9..9a54b7b 100644
--- a/core/forms.py
+++ b/core/forms.py
@@ -1,10 +1,11 @@
from django.forms import ModelForm
-from models import Cave, Person, LogbookEntry, QM
+from models import Cave, Person, PersonExpedition, LogbookEntry, QM
import django.forms as forms
from django.forms.formsets import formset_factory
from django.contrib.admin.widgets import AdminDateWidget
import string
from datetime import date
+from tinymce.widgets import TinyMCE
class CaveForm(ModelForm):
class Meta:
@@ -45,4 +46,43 @@ class LogbookEntryForm(ModelForm):
def __init__(self, *args, **kwargs):
super(LogbookEntryForm, self).__init__(*args, **kwargs)
- self.fields['text'].help_text=self.wikiLinkHints() \ No newline at end of file
+ self.fields['text'].help_text=self.wikiLinkHints()
+
+def getTripForm(expedition):
+
+ class TripForm(forms.Form):
+ date = forms.DateField()
+ title = forms.CharField(max_length=200)
+ caves = [cave.reference() for cave in Cave.objects.all()]
+ caves.sort()
+ caves = ["-----"] + caves
+ cave = forms.ChoiceField([(c, c) for c in caves], required=False)
+ location = forms.CharField(max_length=200, required=False)
+ caveOrLocation = forms.ChoiceField([("cave", "Cave"), ("location", "Location")], widget = forms.widgets.RadioSelect())
+ html = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
+
+ def clean(self):
+ print dir(self)
+ if self.cleaned_data.get("caveOrLocation") == "cave" and not self.cleaned_data.get("cave"):
+ self._errors["cave"] = self.error_class(["This field is required"])
+ if self.cleaned_data.get("caveOrLocation") == "location" and not self.cleaned_data.get("location"):
+ self._errors["location"] = self.error_class(["This field is required"])
+ return self.cleaned_data
+
+ class PersonTripForm(forms.Form):
+ def get_name(pe):
+ if pe.nickname:
+ return pe.nickname
+ else:
+ return pe.person.first_name
+ names = [get_name(pe) for pe in PersonExpedition.objects.filter(expedition = expedition)]
+ names.sort()
+ names = ["-----"] + names
+ name = forms.ChoiceField([(n, n) for n in names])
+ TU = forms.FloatField(required=False)
+ author = forms.BooleanField(required=False)
+
+ PersonTripFormSet = formset_factory(PersonTripForm, extra=1)
+
+ return PersonTripFormSet, TripForm
+